Cats.Services.EarlyWarning.ReliefRequisitionService.GetRequisitionsSentToLogistics C# (CSharp) Метод

GetRequisitionsSentToLogistics() публичный Метод

public GetRequisitionsSentToLogistics ( ) : List
Результат List
        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();
        }