public ReportRequistionModel GetRequisitions(DateTimeOffset start, DateTimeOffset end, int?organisationId, IEnumerable <int> localAdminCustomerUnits = null, int?brokerId = null)
        {
            var requisitions         = _dbContext.Requisitions.GetRequisitionsForReports(start.Date, end.Date, organisationId, localAdminCustomerUnits, brokerId);
            var requisitionPricerows = _dbContext.RequisitionPriceRows.GetRequisitionPriceRowsForRequisitionReport(start.Date, end.Date, organisationId, localAdminCustomerUnits, brokerId);
            var mealbreaks           = _dbContext.MealBreaks.GetMealBreaksForReport(start.Date, end.Date, organisationId, localAdminCustomerUnits, brokerId);
            var requestIds           = requisitions.Select(r => r.RequestId).ToList();
            var requestPricerows     = _dbContext.RequestPriceRows.GetRequestPriceRowsForRequisitionReport(requestIds);

            return(ReportRequistionModel.GetModelFromRequisitions(requisitions, mealbreaks, requisitionPricerows, requestPricerows, brokerId.HasValue));
        }
        public static IEnumerable <ReportRequisitionRow> GetRequisitionsExcelFileRows(ReportRequistionModel requistionModel, ReportType reportType)
        {
            var isBroker = EnumHelper.Parent <ReportType, ReportGroup>(reportType) == ReportGroup.BrokerReport;

            NullCheckHelper.ArgumentCheckNull(requistionModel, nameof(GetRequisitionsExcelFileRows), nameof(StatisticsService));
            return(requistionModel.Requisitions
                   .Select(r => new ReportRequisitionRow
            {
                OrderNumber = r.OrderNumber,
                ReportDate = r.ReportDate,
                BrokerName = r.BrokerName,
                Language = r.Language,
                Region = r.Region,
                InterpreterId = r.InterpreterId,
                ReportPersonToDisplay = r.ReportPerson,
                AssignmentDate = r.AssignmentDate,
                Status = r.RequisitionStatus.GetDescription(),
                CustomerName = r.CustomerName,
                AssignmentType = r.AssignmentType.GetDescription(),
                InterpreterCompetenceLevel = (CompetenceAndSpecialistLevel?)r.CompetenceLevel ?? CompetenceAndSpecialistLevel.NoInterpreter,
                HasMealbreaks = requistionModel.HasMealbreaks.Contains(r.RequisitionId),
                WaisteTime = r.WaisteTime,
                WaisteTimeIWH = r.WaisteTimeIWH,
                Price = requistionModel.RequisitionPrices?.SingleOrDefault(pr => pr.RequisitionId == r.RequisitionId).Price ?? 0,
                Outlay = requistionModel.RequisitionPrices?.SingleOrDefault(pr => pr.RequisitionId == r.RequisitionId).Outlay ?? 0,
                PreliminaryCost = requistionModel.RequestPrices?.SingleOrDefault(pr => pr.RequestId == r.RequestId).Price ?? 0,
                CarCompensation = r.CarCompensation,
                PerDiem = r.PerDiem,
                Department = r.Department,
                CustomerUnitName = r.CustomerUnitName,
                TaxCard = r.TaxCard.HasValue ? r.TaxCard.Value.GetDescription() : string.Empty,
                ReferenceNumber = r.ReferenceNumber,
                InterpreterLocation = r.InterpreterLocation.HasValue ? ((InterpreterLocation)r.InterpreterLocation.Value).GetDescription() : string.Empty,
                AllowExceedingTravelCost = r.AllowExceedingTravelCost.HasValue ? isBroker ? EnumHelper.Parent <AllowExceedingTravelCost, TrueFalse>(r.AllowExceedingTravelCost.Value).GetDescription() : r.AllowExceedingTravelCost.Value.GetDescription() : string.Empty
            }).ToList().OrderBy(row => row.OrderNumber));
        }