/// <inheritdoc /> /// <summary> /// The track invoice. /// </summary> /// <param name="invoiceNo"> /// The invoice No. /// </param> /// <returns> /// The <see cref="T:System.Threading.Tasks.Task" />. /// </returns> public async Task <UiInvoice> GetInvoice(string invoiceNo) { var invoice = await this.invoiceRepository.FindById(invoiceNo); if (invoice == null) { return(new UiInvoice()); } var uiInvoice = new UiInvoice { Title = invoice.Title, CreatedBy = invoice.CreatedBy, Approved = invoice.Approved, Status = invoice.Status, CreatedOn = invoice.CreatedOn, InvoiceNo = invoice.InvoiceNo, LastUpdated = invoice.LastUpdated, UpdatedBy = invoice.UpdatedBy }; var invoiceItems = invoice.InvoiceItems; if (invoiceItems.Any()) { var uiInvoiceItems = invoiceItems.Select( x => new UiInvoiceItem { Name = x.Name, Amount = x.Amount, Description = x.Description }); uiInvoice.InvoiceItems.AddRange(uiInvoiceItems); } var authorities = invoice.Authorities; if (authorities.Any()) { var uiAuthorities = authorities.Select( x => new UiAuthority { Name = x.Name, Department = x.Department, Approved = x.Approved, ApprovedOn = x.ApprovedOn }); uiInvoice.Authorities.AddRange(uiAuthorities); } return(uiInvoice); }
/// <inheritdoc /> /// <summary> /// The get user invoice. /// </summary> /// <param name="user"> /// The user. /// </param> /// <returns> /// The <see cref="T:System.Threading.Tasks.Task" />. /// </returns> public async Task <UiUserInvoice> GetUserInvoices(string user) { var invoices = await this.invoiceRepository.FindByCreator(user); if (!invoices.Any()) { return(new UiUserInvoice()); } var userInvoices = new UiUserInvoice(); if (invoices.Any()) { foreach (var invoice in invoices) { var uiInvoice = new UiInvoice { InvoiceNo = invoice.InvoiceNo, Approved = invoice.Approved, CreatedBy = invoice.CreatedBy, CreatedOn = invoice.CreatedOn, Title = invoice.Title, LastUpdated = invoice.LastUpdated, UpdatedBy = invoice.UpdatedBy, Status = invoice.Status }; var recipient = invoice.Recipient; var uiRecipient = new UiRecipient { Name = recipient.Name, Address = recipient.Address, RecipientNumber = recipient.RecipientNumber }; uiInvoice.Recipient = uiRecipient; var authorities = invoice.Authorities; if (authorities.Any()) { var uiAuthorities = invoice.Authorities.Select( x => new UiAuthority { Name = x.Name, Department = x.Department, Approved = x.Approved, ApprovedOn = x.ApprovedOn }); uiInvoice.Authorities.AddRange(uiAuthorities); } var invoiceItems = invoice.InvoiceItems; if (invoiceItems.Any()) { var uiInvoiceItems = invoiceItems.Select( x => new UiInvoiceItem { Name = x.Name, Amount = x.Amount, Description = x.Description }); uiInvoice.InvoiceItems.AddRange(uiInvoiceItems); } userInvoices.InvoicesCreatedByUser.Add(uiInvoice); } } var relatedAuthorities = await this.authorityRepository.FindRelatedInvoices(user); if (relatedAuthorities.Any()) { foreach (var auth in relatedAuthorities) { var invoice = auth.Invoice; var uiInvoice = new UiInvoice { InvoiceNo = invoice.InvoiceNo, Approved = invoice.Approved, CreatedBy = invoice.CreatedBy, CreatedOn = invoice.CreatedOn, Title = invoice.Title, LastUpdated = invoice.LastUpdated, UpdatedBy = invoice.UpdatedBy, Status = invoice.Status }; var recipient = invoice.Recipient; var uiRecipient = new UiRecipient { Name = recipient.Name, Address = recipient.Address, RecipientNumber = recipient.RecipientNumber }; uiInvoice.Recipient = uiRecipient; var invoiceItems = invoice.InvoiceItems; if (invoiceItems.Any()) { var uiInvoiceItems = invoiceItems.Select( x => new UiInvoiceItem { Name = x.Name, Amount = x.Amount, Description = x.Description }); uiInvoice.InvoiceItems.AddRange(uiInvoiceItems); } userInvoices.InvoicesApprovedByUser.Add(uiInvoice); } } return(userInvoices); }