Beispiel #1
0
        public async Task <IActionResult> GetContacts([FromQuery] ContactParams userParams)
        {
            var values = await _repository.GetContacts(userParams);

            Response.AddPagination(values.CurrentPage, values.PageSize, values.TotalCount, values.TotalPages);
            return(Ok(values));
        }
Beispiel #2
0
        public async Task <PagedList <Contact> > GetContacts(ContactParams contactParams)
        {
            var contactsList = _context.Contacts.AsQueryable();

            contactsList = contactsList.OrderByDescending(c => c.CreatedOn);
            return(await PagedList <Contact> .CreateAsync(contactsList, contactParams.PageNumber, contactParams.PageSize));
        }
        public async Task <IActionResult> GetContacts([FromQuery] ContactParams contactParams)
        {
            var response = await this._contactService.GetContactsListAsync(contactParams);

            Response.AddPagination(response.CurrentPage, response.PageSize, response.TotalCount, response.TotalPages);

            return(Ok(response));
        }
Beispiel #4
0
        public async Task <IActionResult> GetContacts([FromQuery] ContactParams contactParams)
        {
            var contacts = await _contactRepository.GetContacts(contactParams);

            var contactsToReturn = _mapper.Map <IEnumerable <ContactForListDto> >(contacts);

            Response.AddPagination(contacts.CurrentPage, contacts.PageSize,
                                   contacts.TotalCount, contacts.TotalPages);

            return(Ok(contactsToReturn));
        }
Beispiel #5
0
        public async Task <PagedList <ContactListData> > GetContactsListAsync(ContactParams model)
        {
            var contactsListData = this.Context.Contacts
                                   .Select(c => new ContactListData
            {
                Id   = c.Id,
                Name = c.Name
            })
                                   .OrderBy(c => c.Name);

            return(await PagedList <ContactListData> .CreateAsync(contactsListData, model.PageNumber, model.PageSize));
        }
Beispiel #6
0
        public async Task <PagedList <Contact> > GetContacts(ContactParams contactParams)
        {
            var contacts = _context.Contacts.OrderByDescending(u => u.Id).AsQueryable();

            if (!string.IsNullOrEmpty(contactParams.SearchText))
            {
                contacts = contacts.Where(

                    x => (EF.Functions.Like(x.FirstName, "%" + contactParams.SearchText + "%") ||
                          EF.Functions.Like(x.LastName, "%" + contactParams.SearchText + "%") ||
                          EF.Functions.Like(x.Address, "%" + contactParams.SearchText + "%") ||
                          EF.Functions.Like(x.TelephoneNumber, "%" + contactParams.SearchText + "%")
                          )

                    );
            }
            return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize));
        }
Beispiel #7
0
        public async Task <PagedList <Contact> > SearchContacts(ContactParams contactParams)
        {
            var contacts = dataContext.Contact.AsQueryable();

            if (contactParams.ContactId > 0)
            {
                contacts = contacts.Where(c => c.ContactId == contactParams.ContactId);
                return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize));
            }

            if (!String.IsNullOrEmpty(contactParams.FirstName))
            {
                contacts = contacts.Where(c => c.FirstName.Contains(contactParams.FirstName));
            }

            if (!String.IsNullOrEmpty(contactParams.MiddleName))
            {
                contacts = contacts.Where(c => c.MiddleName.Contains(contactParams.MiddleName));
            }

            if (!String.IsNullOrEmpty(contactParams.LastName))
            {
                contacts = contacts.Where(c => c.LastName.Contains(contactParams.LastName));
            }

            if (!String.IsNullOrEmpty(contactParams.NameTitle))
            {
                contacts = contacts.Where(c => c.NameTitle.Contains(contactParams.NameTitle));
            }

            if (contactParams.AccountId > 0)
            {
                contacts = contacts.Where(c => c.AccountId == contactParams.AccountId);
            }

            if (contactParams.CreatedAt != null)
            {
                contacts = contacts.Where(c => c.CreatedAt >= contactParams.CreatedAt);
            }

            return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize));
        }
Beispiel #8
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;
            }
        }
Beispiel #9
0
        public DataResult GetDataAsync([FromBody] ContactParams searchParam)
        {
            ContactServices contactManager = new ContactServices();

            return(contactManager.GetCSVFile(searchParam));
        }
        public DataResult GetCSVFile(ContactParams searchParam)
        {
            string            currentPath = Directory.GetCurrentDirectory();
            List <SampleData> dataList    = new List <SampleData>();
            bool isFirtLine = true;

            using (var reader = new StreamReader(currentPath + "/SampleData.csv"))
            {
                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine();
                    if (isFirtLine)
                    {
                        isFirtLine = false;
                        continue;
                    }

                    var values = line.Split(',');
                    if (values.Length > 10)
                    {
                        if (!string.IsNullOrEmpty(searchParam.SearchKey))
                        {
                            if ((!string.IsNullOrEmpty(values[0]) && values[0].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) ||
                                (!string.IsNullOrEmpty(values[1]) && values[1].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) ||
                                (!string.IsNullOrEmpty(values[9]) && values[9].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) ||
                                (!string.IsNullOrEmpty(values[7]) && values[7].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())))
                            {
                                /// <summary>
                                /// We can clean inpudate data here to make sure that we get correct data, such as: email, phone
                                /// For this case, I just clean email value
                                /// </summary>

                                if (ContactUtilities.IsValidEmail(values[9]))
                                {
                                    dataList.Add(new SampleData
                                    {
                                        FirstName   = values[0],
                                        LastName    = values[1],
                                        CompanyName = values[2],
                                        Address     = values[3],
                                        City        = values[4],
                                        State       = values[5],
                                        Post        = values[6],
                                        Phone1      = values[7],
                                        Phone2      = values[8],
                                        Email       = values[9],
                                        Web         = values[10],
                                    });
                                }
                            }
                        }
                        else
                        {
                            if (ContactUtilities.IsValidEmail(values[9]))
                            {
                                dataList.Add(new SampleData
                                {
                                    FirstName   = values[0],
                                    LastName    = values[1],
                                    CompanyName = values[2],
                                    Address     = values[3],
                                    City        = values[4],
                                    State       = values[5],
                                    Post        = values[6],
                                    Phone1      = values[7],
                                    Phone2      = values[8],
                                    Email       = values[9],
                                    Web         = values[10],
                                });
                            }
                        }
                    }
                }
            }

            int itemTotal = dataList.Count;
            int pageTotal = itemTotal / searchParam.PageSize;
            List <SampleData> dataResult = new List <SampleData>();

            if (!string.IsNullOrEmpty(searchParam.SearchKey))
            {
                dataResult = dataList.Skip(0).Take(searchParam.PageSize).ToList();
            }
            else
            {
                int realPageIndex = searchParam.PageIndex - 1;
                dataResult = dataList.Skip(realPageIndex * searchParam.PageSize).Take(searchParam.PageSize).ToList();
            }

            return(new DataResult
            {
                Contacts = dataResult,
                PageTotal = pageTotal,
                ItemTotal = itemTotal
            });
        }