/// <inheritdoc />
        /// <summary>
        /// The get recipients.
        /// </summary>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <param name="number">
        /// The number.
        /// </param>
        /// <returns>
        /// The <see cref="T:System.Threading.Tasks.Task" />.
        /// </returns>
        public async Task <List <UiRecipient> > GetRecipients(string name, string number)
        {
            var recipients = await this.GetRecipient(name, number);

            if (!recipients.Any())
            {
                return(new List <UiRecipient>());
            }

            var uiRecipients = new List <UiRecipient>();

            foreach (var recipient in recipients)
            {
                var uiRecipient = new UiRecipient
                {
                    Name            = recipient.Name,
                    Address         = recipient.Address,
                    RecipientNumber = recipient.RecipientNumber
                };

                uiRecipients.Add(uiRecipient);
            }

            return(uiRecipients);
        }
        /// <inheritdoc />
        /// <summary>
        /// The get recipient invoices.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="number"></param>
        /// <returns>
        /// The <see cref="T:System.Threading.Tasks.Task" />.
        /// </returns>
        public async Task <List <UiRecipient> > GetRecipientInvoices(string name, string number)
        {
            var recipients = await this.GetRecipient(name, number);

            if (!recipients.Any())
            {
                return(new List <UiRecipient>());
            }

            var uiRecipients = new List <UiRecipient>();

            foreach (var recipient in recipients)
            {
                var uiRecipient = new UiRecipient
                {
                    Name            = recipient.Name,
                    Address         = recipient.Address,
                    RecipientNumber = recipient.RecipientNumber
                };

                var invoices = recipient.Invoices.Select(
                    x => new UiInvoice
                {
                    CreatedBy   = x.CreatedBy,
                    InvoiceNo   = x.InvoiceNo,
                    Approved    = x.Approved,
                    CreatedOn   = x.CreatedOn,
                    LastUpdated = x.LastUpdated,
                    Status      = x.Status,
                    Title       = x.Title
                });

                uiRecipient.Invoices.AddRange(invoices);
                uiRecipients.Add(uiRecipient);
            }

            return(uiRecipients);
        }
Ejemplo n.º 3
0
        /// <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);
        }