using System; using System.Linq; using System.Web.UI; using Common; public partial class Root_Invoices : Page { public int I { get; private set; } protected void Page_Load(object sender, EventArgs e) { using (var db = new DataModel()) { Trace.Warn("User.Identity.Name", User.Identity.Name); var customerLogin = db.GetCustomerLoginFromGuid(User.Identity.Name).FirstOrDefault(); if (customerLogin == null) return; var customer = db.Customers.FirstOrDefault(f => f.CustomerId == customerLogin.CustomerId); if (customer == null) return; Trace.Warn("customerLogin.CustomerId", customerLogin.CustomerId.ToString()); //var invoices = db.vwInvoicesReadyToPrints.Where(i => i.CustomerId == customerLogin.CustomerId).Distinct().OrderByDescending(o => o.Id).Take(90).ToList(); var dispatches = db.GetDispatchesReadyToPrint(customerLogin.CustomerId).OrderByDescending(o => o.DateCreated).Take(90).ToList(); // Get workload information for prelist numbers var workloadIds = dispatches.Select(d => d.WorkloadId).Distinct().ToList(); var workloads = db.Workloads.Where(w => workloadIds.Contains(w.WorkloadId)).ToDictionary(w => w.WorkloadId, w => w); // Create anonymous objects with prelist number information var invoicesWithPrelist = dispatches.Select(d => new { DeliveryId = d.DeliveryId, CustomerId = d.CustomerId, WorkloadId = d.WorkloadId, DateCreated = d.DateCreated, Dispatch = d.Dispatch, PrelistNumber = workloads.ContainsKey(d.WorkloadId) ? (string.IsNullOrEmpty(workloads[d.WorkloadId].Reference) ? workloads[d.WorkloadId].WorkloadId.ToString() : workloads[d.WorkloadId].Reference) : d.WorkloadId.ToString() }).ToList(); InvoicesForIncludeType.DataSource = invoicesWithPrelist; InvoicesForIncludeType.DataBind(); } } }