コード例 #1
0
        public IPagedList <Contact> GetListByFilter(ContactSearchFilter filter)
        {
            List <Contact> contactList = new List <Contact>();

            using (ClientManagementContext db = new ClientManagementContext())
            {
                var query = db.Contacts
                            .Where(f =>
                                   (f.Status != StatusConstants.Deleted) &&
                                   (filter.UserRoleId == null || filter.UserRoleId == 0 || f.Users.Any(a => a.RoleId == filter.UserRoleId)) &&
                                   (filter.SearchTerm == string.Empty || f.FirstName.Contains(filter.SearchTerm.Trim()) ||
                                    f.Email.Contains(filter.SearchTerm.Trim()) ||
                                    f.CellPhone.Contains(filter.SearchTerm.Trim())));
                filter.TotalCount = query.Count();

                //sorting
                Func <Contact, object> OrderByStringField = null;

                switch (filter.SortColumn)
                {
                case "FirstName":
                    OrderByStringField = p => p.FirstName;
                    break;

                case "Email":
                    OrderByStringField = p => p.Email;
                    break;

                case "CellPhone":
                    OrderByStringField = p => p.CellPhone;
                    break;

                default:
                    OrderByStringField = p => p.FirstName;
                    break;
                }
                //end sorting

                var finalQuery = filter.SortDirection == "ASC" ? query.OrderBy(OrderByStringField) : query.OrderByDescending(OrderByStringField);

                contactList = finalQuery.Skip((filter.PageNumber - 1) * filter.PageSize)
                              .Take(filter.PageSize)
                              .AsParallel()
                              .ToList();
            }

            return(new StaticPagedList <Contact>(contactList, filter.PageNumber, filter.PageSize, filter.TotalCount));
        }
コード例 #2
0
        public ActionResult List(ContactSearchFilter filter)
        {
            filter.SearchTerm    = filter.SearchTerm ?? string.Empty;
            filter.SortColumn    = "FirstName";
            filter.SortDirection = "ASC";
            filter.UserRoleId    = UserRoleConstants.Customer;

            var contactList = _contactService.GetListByFilter(filter);

            var model = new ContactListViewModel
            {
                Contacts     = contactList,
                SearchFilter = filter
            };

            return(View(model));
        }
コード例 #3
0
        public ActionResult List(int?pageNumber, string searchTerm, string sort = "FirstName", string sortdir = "ASC")
        {
            pageNumber = pageNumber ?? 1;

            var filter = new ContactSearchFilter
            {
                PageNumber    = (int)pageNumber,
                SearchTerm    = searchTerm ?? string.Empty,
                SortColumn    = sort,
                SortDirection = sortdir,
                UserRoleId    = UserRoleConstants.Customer
            };

            var contactList = _contactService.GetListByFilter(filter);

            var model = new ContactListViewModel
            {
                Contacts     = contactList,
                SearchFilter = filter
            };

            return(Request.IsAjaxRequest() ? (ActionResult)PartialView("_ContactList", model) : View(model));
        }
コード例 #4
0
ファイル: ContactController.cs プロジェクト: KKPBank/CSM
        public ActionResult CustomerContactList(ContactSearchFilter searchFilter)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("Search CustomerContactList").Add("CustomerId", searchFilter.CustomerId).ToInputLogString());

            try
            {
                if (ModelState.IsValid)
                {
                    _commonFacade   = new CommonFacade();
                    _customerFacade = new CustomerFacade();
                    CustomerContactViewModel contactVM = new CustomerContactViewModel();
                    contactVM.SearchFilter = searchFilter;

                    contactVM.ContactList = _customerFacade.GetContactList(contactVM.SearchFilter);
                    ViewBag.PageSize      = contactVM.SearchFilter.PageSize;
                    ViewBag.PageSizeList  = _commonFacade.GetPageSizeList();

                    Logger.Info(_logMsg.Clear().SetPrefixMsg("CustomerContactList").ToSuccessLogString());
                    return(PartialView("~/Views/Contact/_CustomerContactList.cshtml", contactVM));
                }

                return(Json(new
                {
                    Valid = false,
                    Error = string.Empty,
                    Errors = GetModelValidationErrors()
                }));
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search CustomerContactList").Add("Error Message", ex.Message).ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
コード例 #5
0
 public IEnumerable <ContactEntity> GetContactList(ContactSearchFilter searchFilter)
 {
     _customerDataAccess = new CustomerDataAccess(_context);
     return(_customerDataAccess.GetContactList(searchFilter));
 }