Привет, у меня в домене хранилища много дублирования кода, например:
public CommonModel GetLocations(IModelWithCurrentUser<xyz> model)
{
var sqlParameters = SqlHelpers.GetReportSqlParameters(model);
var outputParameters = new Dictionary<string, object>() { { "TotalCount", default(int) } };
var result = _queryExecutor.QueryWithOutputParameters<Locations>(PermissionsQueries.GetLocations, sqlParameters, outputParameters);
var totalCount = Convert.ToInt32(outputParameters["TotalCount"]);
return RepositoryConverter.ToCommonDSModel(result, model.Content, totalCount);
}
Я пытался создать общий метод, подобный этому:
public CommonModel GetSqlReport<T>(IModelWithCurrentUser<xyz> model, string queryName)
{
var sqlParameters = SqlHelpers.GetReportSqlParameters(model);
var outputParameters = new Dictionary<string, object>() { { "TotalCount", default(int) } };
var result = _queryExecutor.QueryWithOutputParameters<T>(queryName, sqlParameters, outputParameters);
var totalCount = Convert.ToInt32(outputParameters["TotalCount"]);
return RepositoryConverter.ToCommonDSModel(result, model.Content, totalCount);
}
Но, к сожалению, яво время компиляции кода возникла ошибка: невозможно преобразовать из 'System.Collections.Generic.List T' в 'System.Collections.Generic.List role' в методе
return RepositoryConverter.ToCommonDSModel(result, model.Content, totalCount);
Метод RespoitoryConverter ToCommonDSModel перегружаетсяВот несколько примеров типа списка:
public static CommonModel ToCommonDSModel(List<Roles> data, xyz dtoModel, long itemsCount)
public static CommonModel ToCommonDSModel(List<Locations> data, xyz dtoModel, long itemsCount)
public static CommonModel ToCommonDSModel(List<abc> data, xyz dtoModel, long itemsCount)
Мой вопрос: как я могу удалить дублирование кода в моем домене хранилища?