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); }
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)); } }