public List<RegionalRequisitionsSummary> GetRequisitionsSentToLogistics()
{
//var app3 = _unitOfWork.ReliefRequisitionRepository.FindBy(r => r.Status == 3);
var app = _unitOfWork.ReliefRequisitionRepository.FindBy(t => t.Status >= 2 );
var ds =
(
from a in app
group a by new { a.RegionID,a.AdminUnit.Name} into regionalRequistions
select new
{
regionalRequistions.Key.Name,
ProgramBased = from a in regionalRequistions
group a by new {a.ProgramID,a.Program} into final
select new
RegionalRequisitionsSummary()
{
RegionID = regionalRequistions.Key.RegionID,
RegionName = regionalRequistions.Key.Name,
DateLastModified = regionalRequistions.Select(d=>d.ApprovedDate).Last(),
NumberOfHubUnAssignedRequisitions =
_unitOfWork.ReliefRequisitionRepository.FindBy(s => (s.RegionID == regionalRequistions.Key.RegionID && s.ProgramID == final.Key.ProgramID && s.Status==2)).Count,
NumberOfTotalRequisitions = regionalRequistions.Count(p=>p.ProgramID == final.Key.ProgramID),
ProgramType = final.Key.Program.Name
//Percentage = (NumberOfHubAssignedRequisitions / regionalRequistions.Count()) * 100,
}
}
);
return (from d in ds
from e in d.ProgramBased
select new RegionalRequisitionsSummary()
{
RegionID = e.RegionID,
RegionName = e.RegionName,
DateLastModified = e.DateLastModified,
NumberOfHubUnAssignedRequisitions = e.NumberOfHubUnAssignedRequisitions,
NumberOfTotalRequisitions = e.NumberOfTotalRequisitions,
ProgramType = e.ProgramType,
Percentage = e.NumberOfHubUnAssignedRequisitions / e.NumberOfTotalRequisitions * 100
//Percentage
}).ToList();
}