public List <OperatorByDateViewModel> GetOperatorsReport(OperatorReportRequestViewModel request)
        {
            var from = request.From.ToDateTime();
            var to   = request.To.ToDateTime(23, 59, 59);

            var quantityBookings = _bookingItemRepository.GetByDateOperator(from, to).OrderBy(x => x.Provider.Name);

            var operatorsByDateViewModel = new ConcurrentDictionary <string, OperatorByDateViewModel>();

            foreach (var bookingItem in quantityBookings)
            {
                var key = bookingItem.Provider.Name;
                if (!operatorsByDateViewModel.ContainsKey(key))
                {
                    {
                        operatorsByDateViewModel[key] = new OperatorByDateViewModel

                        {
                            OperatorName    = key,
                            QuantityBooking = quantityBookings.Count(x => x.ActivityDateTime.Year == bookingItem.ActivityDateTime.Year && x.ActivityDateTime.Month == bookingItem.ActivityDateTime.Month)
                        };
                    }
                }
            }

            return(operatorsByDateViewModel.Values.ToList().FindAll(v => v.OperatorName != "CEPAS").OrderBy(x => x.OperatorName).ToList());
        }
예제 #2
0
        public async Task <IActionResult> GetOperatorsReport([FromBody] OperatorReportRequestViewModel request)
        {
            var operatorByDateViewModel = _operatorReportsProvider.GetOperatorsReport(request);

            return(Ok(operatorByDateViewModel));
        }