using DeviceRepair.Models.Enum;
using System.Collections.Generic;
using System.Linq;
namespace DeviceRepair.Models.Common
{
///
/// 当前年度计划完成进度
///
public class CurrentYearPlanSchedule
{
public CurrentYearPlanSchedule()
{
TimeOut = 0;
Complete = 0;
Current = 0;
Future = 0;
}
public CurrentYearPlanSchedule(IList Datas) : this()
{
if (Datas == null || Datas.Count > 0)
{
Datas.ToList().ForEach(item =>
{
for (int i = 0; i < 12; i++)
{
string fileName = $"{(new System.Globalization.CultureInfo("en-US")).DateTimeFormat.MonthNames[i].Substring(0, 3)}Status";
if (item.GetType().GetProperty(fileName) == null)
return;
EnumPlanCompleteStatus value = (EnumPlanCompleteStatus)item.GetType().GetProperty(fileName).GetValue(item, null);
switch (value)
{
case EnumPlanCompleteStatus.None:
break;
case EnumPlanCompleteStatus.TimeOut:
TimeOut += 1;
break;
case EnumPlanCompleteStatus.Complete:
Complete += 1;
break;
case EnumPlanCompleteStatus.Current:
Current += 1;
break;
case EnumPlanCompleteStatus.Future:
Future += 1;
break;
default:
break;
}
}
});
}
}
///
/// 总数
///
public int Total { get; set; }
///
/// 已超时
///
public int TimeOut { get; set; }
///
/// 已完成
///
public int Complete { get; set; }
///
/// 当前月待处理
///
public int Current { get; set; }
///
/// 未来处理
///
public int Future { get; set; }
public void CalcTotal()
{
Total = TimeOut + Complete + Current + Future;
}
public override string ToString()
{
return $"全年欲保养数:{Total}当月待保养数:{Current}全年已完成:{Complete}已超时数:{TimeOut}全年待完成数:{Current + Future}";
}
}
}