public IActionResult Index(int pageIndex = 0)
        {
            var filterViewModel = new ContactFilterViewModel()
            {
                Username  = User?.Identity?.Name,
                PageIndex = pageIndex > 0 ? pageIndex : 1,
                PageSize  = 2
            };

            ViewData["pageIndex"] = filterViewModel.PageIndex;

            var contctViewModel = this.contactDomain.GetAllContacts(filterViewModel);

            ViewData["totalItems"] = contctViewModel.TotalItems;
            return(View(contctViewModel.Items));
        }
        public ContactViewModel GetAllContacts(ContactFilterViewModel filterViewModel)
        {
            var outputModel = new ContactViewModel();

            outputModel.PageIndex = filterViewModel.PageIndex;

            var allContacts = this.context.UserContacts.Include(uc => uc.UserProfile).Where(uc => uc.UserProfile.Username == filterViewModel.Username).ToList();

            if (filterViewModel != null && !string.IsNullOrEmpty(filterViewModel.SearchString))
            {
                allContacts = allContacts.Where(up => up.FirstName.Contains(filterViewModel.SearchString) || up.LastName.Contains(filterViewModel.SearchString)).ToList();
            }

            outputModel.TotalItems = allContacts.Count;

            if (filterViewModel != null && filterViewModel.PageIndex > 0 && filterViewModel.PageSize > 0)
            {
                outputModel.Items = allContacts.Skip((filterViewModel.PageIndex - 1) * filterViewModel.PageSize).Take(filterViewModel.PageSize).ToList();
            }

            return(outputModel);
        }
        public ContactListViewModel GetFilteredContacts(ContactFilterViewModel vm, string userId)
        {
            var contactsDeals     = _repo.Query <DealContact>().Where(d => d.Deal.UserId == userId).Where(d => d.DealId == vm.DealId).Select(c => c.Contact).ToList();
            var contactsCompanies = _repo.Query <Contact>().Where(d => d.Company.UserId == userId).Where(c => c.CompanyId == vm.CompanyId).ToList();
            var contactsTasks     = _repo.Query <TaskContact>().Where(d => d.UserTask.UserId == userId).Where(t => t.TaskId == vm.TaskId).Select(c => c.Contact).ToList();
            var contactsFiltered  = new List <Contact>();

            if (vm.DealId != 0)
            {
                if (vm.CompanyId != 0)
                {
                    if (vm.TaskId != 0)
                    {
                        contactsFiltered = contactsDeals.Intersect(contactsDeals).Intersect(contactsCompanies).Intersect(contactsTasks).ToList();
                    }
                    else
                    {
                        contactsFiltered = contactsDeals.Intersect(contactsDeals).Intersect(contactsCompanies).ToList();
                    }
                }
                else if (vm.TaskId != 0)
                {
                    contactsFiltered = contactsDeals.Intersect(contactsDeals).Intersect(contactsTasks).ToList();
                }
                else
                {
                    contactsFiltered = _repo.Query <DealContact>().Where(d => d.DealId == vm.DealId).Select(c => c.Contact).ToList();
                }
            }
            else if (vm.TaskId != 0)
            {
                if (vm.CompanyId != 0)
                {
                    if (vm.DealId != 0)
                    {
                        contactsFiltered = contactsTasks.Intersect(contactsTasks).Intersect(contactsCompanies).Intersect(contactsDeals).ToList();
                    }
                    else
                    {
                        contactsFiltered = contactsTasks.Intersect(contactsTasks).Intersect(contactsCompanies).ToList();
                    }
                }
                else if (vm.DealId != 0)
                {
                    contactsFiltered = contactsTasks.Intersect(contactsTasks).Intersect(contactsDeals).ToList();
                }
                else
                {
                    contactsFiltered = _repo.Query <TaskContact>().Where(t => t.TaskId == vm.TaskId).Select(c => c.Contact).ToList();
                }
            }
            else if (vm.CompanyId != 0)
            {
                if (vm.TaskId != 0)
                {
                    if (vm.DealId != 0)
                    {
                        contactsFiltered = contactsCompanies.Intersect(contactsCompanies).Intersect(contactsTasks).Intersect(contactsDeals).ToList();
                    }
                    else
                    {
                        contactsFiltered = contactsCompanies.Intersect(contactsCompanies).Intersect(contactsTasks).ToList();
                    }
                }
                else if (vm.DealId != 0)
                {
                    contactsFiltered = contactsCompanies.Intersect(contactsCompanies).Intersect(contactsDeals).ToList();
                }
                else
                {
                    contactsFiltered = _repo.Query <Contact>().Where(c => c.CompanyId == vm.CompanyId).ToList();
                }
            }

            var deals        = _repo.Query <Deal>().Where(d => d.UserId == userId).ToList();
            var companies    = _repo.Query <Company>().Where(co => co.UserId == userId).ToList();
            var tasks        = _repo.Query <UserTask>().Where(t => t.UserId == userId).ToList();
            var interactions = _repo.Query <ContactInteraction>().ToList();

            var contactListViewModel = new ContactListViewModel
            {
                Companies    = companies,
                Contacts     = contactsFiltered,
                Deals        = deals,
                Interactions = interactions,
                Tasks        = tasks,
            };

            return(contactListViewModel);
        }
Esempio n. 4
0
 public ContactViewModel GetAllContacts(ContactFilterViewModel filterViewModel)
 {
     throw new NotImplementedException();
 }
Esempio n. 5
0
 public ContactFilter()
 {
     InitializeComponent();
     BindingContext = new ContactFilterViewModel();
 }
Esempio n. 6
0
 public ContactViewModel GetAllContacts(ContactFilterViewModel filterViewModel)
 {
     return(this.repository.GetAllContacts(filterViewModel));
 }
        public IHttpActionResult PostFilteredContacts(ContactFilterViewModel vm)
        {
            var userId = this.User.Identity.GetUserId();

            return(Ok(_repo.GetFilteredContacts(vm, userId)));
        }