Я хочу использовать универсальный класс, чтобы сократить мои коды, потому что
1) GetMaintData (int taskID) RelTypeId и RefMaintenance
2) GetAliSpReqs (int taskID) RelTypeId и RefAliSpReq
если вы посмотрите ниже метод, вы можете увидеть только данные TypeId и Ref. Я думаю, что я могу написать новые чистые коды с помощью общего класса, как это:
http://www.thereforesystems.com/dynamic-sort-with-linq/
public void GetData<TKey>(List<TaskRelation> cities, Func<TaskRelation, TKey> selector)
{
//include all GetMaintData,GetAliSpReqs,GetZone,GetAccess
}
public class EngGetCalculatedTaskField
{
private static TaskMaintenanceDataDataContext engTaskCtx { get; set; }
public EngGetCalculatedTaskField()
{
engTaskCtx = new TaskMaintenanceDataDataContext();
}
public string GetMaintData(int taskID)
{
var query = engTaskCtx.TaskRelations.Where(r => r.TaskId == taskID &&
r.RelTypeId == 12).Select(r => r.RefMaintenance.shortdesc);
return string.Join("; ", query.ToArray());
}
public string GetAliSpReqs(int taskID)
{
var query = engTaskCtx.TaskRelations.Where(r => r.TaskId == taskID
&& r.RelTypeId == 13)
.Select(r => r.RefAliSpReq.shortdesc);
return string.Join("; ", query.ToArray());
}
public string GetAccess(int taskID)
{
var query = engTaskCtx.TaskRelations.Where(r => r.TaskId == taskID
&& r.RelTypeId == 15)
.Select(r => r.RefAccessPanel.shortdesc);
return string.Join("; ", query.ToArray());
}
public string GetZone(int taskID)
{
var query = engTaskCtx.TaskRelations.Where(r => r.TaskId == taskID
&& r.RelTypeId == 14)
.Select(r => r.RefZone.shortdesc);
return string.Join("; ", query.ToArray());
}