private ListModelBase <PcpSummaryLogReportModel, PcpSummaryLogReportModelFilter> PcpSummaryLogReport(CorporateAccount account, DateTime dateFrom, DateTime dateTo, string directoryPath, string fileName)
        {
            var filter = new PcpSummaryLogReportModelFilter
            {
                DateFrom     = dateFrom,
                DateTo       = dateTo,
                HealthPlanId = account.Id,
                Tag          = account.Tag
            };

            _logger.Info("Generating Summary Log for " + account.Tag);

            var dataGen = new ExportableDataGenerator <PcpSummaryLogReportModel, PcpSummaryLogReportModelFilter>(_pcpSummaryLogReportService.GetPcpSummaryLogReport, _logger);

            var model = dataGen.GetData(filter);


            //if (model != null && !model.Collection.IsNullOrEmpty())
            //{
            //    var exporter = ExportableDataGeneratorProcessManager<ViewModelBase, ModelFilterBase>.GetCsvExporter<PcpSummaryLogReportModel>();

            //    _logger.Info("Record count" + model.Collection.Count());

            //    if (File.Exists(directoryPath + fileName) && !FirstReportGenerated)
            //        File.Delete(directoryPath + fileName);

            //    FirstReportGenerated = _baseExportableReportHelper.GenerateCsv(directoryPath + fileName, exporter, model.Collection, skipHeader: FirstReportGenerated);


            //    _logger.Info("Destination file " + directoryPath + fileName);
            //}
            //else
            //{
            //    _logger.Info("No Record Found for Tag" + account.Tag);
            //}

            _logger.Info("Completed Summary Log for " + account.Tag);

            return(model);
        }
Example #2
0
        public IEnumerable <ShippingDetail> GetEventCustomerShippingDetailForFilter(int pageNumber, int pageSize, PcpSummaryLogReportModelFilter filter, IEnumerable <long> shippingOptions, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);


                var query = (from ec in linqMetaData.EventCustomers
                             join ecod in linqMetaData.EventCustomerOrderDetail on ec.EventCustomerId equals ecod.EventCustomerId
                             join sdod in linqMetaData.ShippingDetailOrderDetail on ecod.OrderDetailId equals sdod.OrderDetailId
                             join sd in linqMetaData.ShippingDetail on sdod.ShippingDetailId equals sd.ShippingDetailId
                             join ea in linqMetaData.EventAccount on ec.EventId equals ea.EventId
                             where ec.AppointmentId.HasValue && !ec.NoShow && ec.LeftWithoutScreeningReasonId == null &&
                             ea.AccountId == filter.HealthPlanId &&
                             ecod.IsActive && sdod.IsActive &&
                             sd.ShipmentDate.HasValue &&
                             (sd.Status == (long)ShipmentStatus.Delivered || sd.Status == (long)ShipmentStatus.Shipped) &&
                             (shippingOptions.Contains(sd.ShippingOptionId))

                             select new { ec, sd });

                if (filter.DateFrom.HasValue || filter.DateTo.HasValue)
                {
                    var fromDate = filter.DateFrom.HasValue ? filter.DateFrom.Value : DateTime.Now;
                    var toDate   = filter.DateTo.HasValue ? filter.DateTo.Value : DateTime.Now;

                    query = from q in query
                            where q.sd.ShipmentDate >= fromDate && q.sd.ShipmentDate <= toDate
                            select q;
                }

                if (!string.IsNullOrWhiteSpace(filter.Tag))
                {
                    var customerIds = (from cp in linqMetaData.CustomerProfile where cp.Tag == filter.Tag select cp.CustomerId);

                    query = (from q in query where customerIds.Contains(q.ec.CustomerId) select q);
                }


                var queryForShipping = from q in query orderby q.sd.ShipmentDate ascending, q.ec.EventId ascending, q.ec.CustomerId ascending select q.sd;
                totalRecords = queryForShipping.Count();

                var entities = queryForShipping.TakePage(pageNumber, pageSize).ToArray();
                return(Mapper.MapMultiple(entities));
            }
        }