У меня есть существующий код контроллера в .net core 2.0
следующим образом:
[Route("api/[controller")]
public class UserController: Controller
{
DBConnect c = null;
KeyCheck chk = null;
public UserController(IOptions<SystemSettings> settings)
{
c = new DBConnect(settings);
chk = new KeyCheck();
}
public CoreResponse EditUser(string key, [FromBody]User input) {
// duplicate part start
CoreResponse response = new CoreResponse();
response.status = "fail";
response.errors = new List<string>();
if (!chk.isValidKey(c, key)) {
response.errors.Add("Invalid Key")
}
// duplicate part end
// query exection logic here
response.status = "success"
// query execution end
return response;
}
}
Часть прокомментировала начало повторяющейся части и конец дублированной части повторяется в каждом отдельном месте. Я хотел бы удалить эту часть и стать чем-то вроде этого. Возможно ли это и как это можно сделать. Или какой-либо другой совет по рефакторингу этого кода?
[CheckKey]
public CoreResponse EditUser(string token, [FromBody]User input) {
CoreResponse response = new CoreResponse();
// query exection logic here
response.status = "success"
// query execution end
return response;
}