J'ai plusieurs méthodes dans un de mes contrôleurs qui fait cela:Comment puis-je utiliser le principe DRY dans ASP.NET MVC pour refactoriser ce code?
ViewData["Customers"] = LoadCustomers();
ViewData["Employees"] = LoadEmployees();
ViewData["Statuses"] = LoadStatuses();
etc......
Voici LoadCustomers(), mais LoadEmployees, LoadStatuses et tous les autres sont pratiquement exactement la même logique:
private static SelectList LoadCustomers()
{
IList<Customer> customers;
try
{
IServiceCallService scService = new ServiceCallService();
customers = scService.GetCustomers();
Customer c = new Customer
{
ID = "",
Name = "-- Select a Facility --"
};
customers.Insert(0, c);
}
catch
{
customers = new List<Customer>();
Customer c = new Customer
{
ID = "",
Name = "-- No Facilities on File --"
};
customers.Insert(0, c);
}
return new SelectList(customers, "ID", "Name");
}
Comment puis-je mieux écrire ce code, donc je n'ai pas besoin d'une nouvelle méthode chaque fois que j'ajoute une nouvelle liste de sélection?
Vous devriez également vous débarrasser de ce bloc try/catch. Il va manger toutes les exceptions, peu importe leur gravité. Si vous obtenez une erreur catastrophique, alors vous ne voulez pas * continuer *! –