示例#1
0
        public async Task <IActionResult> SearchAccounts([FromQuery] AccountParams accountParams)
        {
            try
            {
                var accounts = await accountManager.SearchAccounts(accountParams);

                if (accounts == null)
                {
                    return(NotFound("Not Found!"));
                }

                PagedList <AccountToReturnDTO> accountToReturns = new PagedList <AccountToReturnDTO>();

                foreach (var acc in accounts)
                {
                    var contacts = acc.Contacts;
                    List <ContactReturnDTO> contactsToReturn = new List <ContactReturnDTO>();

                    foreach (var c in contacts)
                    {
                        ContactReturnDTO contact = new ContactReturnDTO()
                        {
                            ContactId         = c.ContactId,
                            FirstName         = c.FirstName,
                            MiddleName        = c.MiddleName,
                            LastName          = c.LastName,
                            NameTitle         = c.NameTitle,
                            SelectedAddressId = c.SelectedAddressId,
                            AccountId         = c.AccountId.Value,
                            Notes             = c.Notes
                        };
                        contactsToReturn.Add(contact);
                    }

                    AccountToReturnDTO accountsToReturn = new AccountToReturnDTO
                    {
                        AccountId        = acc.AccountId,
                        OrganizationName = acc.OrganizationName,
                        AccountType      = acc.AccountType.Name,
                        Description      = acc.Description,
                        CreatedAt        = acc.CreatedAt,
                        UpdatedAt        = acc.UpdatedAt,
                        Contacts         = contactsToReturn
                    };
                    accountToReturns.Add(accountsToReturn);
                }

                Response.AddPagination(accountToReturns.CurrentPage, accountToReturns.PageSize, accountToReturns.TotalCount, accountToReturns.TotalPages);
                return(Ok(accountToReturns));
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#2
0
        public async Task <IActionResult> SearchContacts([FromQuery] ContactParams contactParams)
        {
            try
            {
                var contacts = await contactManager.SearchContacts(contactParams);

                if (contacts != null)
                {
                    PagedList <ContactReturnDTO> contactsToReturn = new PagedList <ContactReturnDTO>();

                    foreach (var c in contacts)
                    {
                        ContactReturnDTO cr = new ContactReturnDTO
                        {
                            AccountId         = c.AccountId,
                            ContactId         = c.ContactId,
                            FirstName         = c.FirstName,
                            LastName          = c.LastName,
                            MiddleName        = c.MiddleName,
                            NameTitle         = c.NameTitle,
                            Notes             = c.Notes,
                            SelectedAddressId = c.SelectedAddressId
                        };
                        contactsToReturn.Add(cr);
                    }

                    Response.AddPagination(contactsToReturn.CurrentPage, contactsToReturn.PageSize, contactsToReturn.TotalCount, contactsToReturn.TotalPages);
                    return(Ok(contactsToReturn));
                }
                return(NotFound());
            }
            catch (Exception)
            {
                throw;
            }
        }