public FileResult CCGMembers(int?ccgId, bool getAll = false, string query = null, bool allAccess = false, int?memberFilter = (int)MemberFilter.None, int?dataDownloadFileType = (int)ExportDataFileType.Xls) { var fileType = dataDownloadFileType != null ? (ExportDataFileType)dataDownloadFileType : ExportDataFileType.Xls; // Get members collection from db // TODO action result not needed here ActionResult actionResult; var members = _membersService.GetMembersList(ccgId, getAll, query, allAccess, User.Identity.Name, out actionResult).ToList(); // Filter members var filter = memberFilter != null ? (MemberFilter)memberFilter : MemberFilter.None; _membersService.FilterMembers(ref members, filter, unitOfWork.AppUserRepository.FindUserByEmail(User.Identity.Name)); switch (fileType) { case ExportDataFileType.Xls: // Export excel file to user's browser return(_service.ExportCCGMembersAsXls(members)); case ExportDataFileType.Csv: break; } //TODO temporary return(new FileContentResult(new byte[] { }, "")); }
public ActionResult ContactSelected(int?ccgId, bool getAll, string query, bool allAccess, bool selectAll = false, params int?[] memberIds) { IEnumerable <CCGMember> members = new List <CCGMember>(); string userEmail = User.Identity.Name; #region Get selected members if (selectAll) { ActionResult actionResult; members = _membersService.GetMembersList(ccgId, getAll, query, allAccess, userEmail, out actionResult); // User may not get authorized and redirected if (actionResult != null) { return(actionResult); } } else // multi-selected members but not all { // Get members from data store where id's match those in view model. if (memberIds != null && memberIds.Length != 0) { members = _membersService.GetSelecteMembers(memberIds); } } #endregion // Map list of domain models back to list of view models. var selectedMembersVM = Mapper.Map <IList <ListMembersViewModel> >(members); // For dropdown list var contactTypes = unitOfWork.ContactTypeRepository.GetContactTypesSorted(); // Deafult selected contact type: 'District Newsletter' var defaultSelected = contactTypes .SingleOrDefault(ct => ct.Name.Equals("District Newsletter", StringComparison.CurrentCultureIgnoreCase) || ct.Name.Contains("Newsletter")); var bulkContactMembers = new List <BulkContactMember>(); _service.AddToBulkContactMembers(selectedMembersVM, bulkContactMembers); #region Create view model var bulkContactViewModel = new BulkContactViewModel { Members = bulkContactMembers, ContactTypes = new SelectList(contactTypes, "Id", "Name", defaultSelected?.Id), CreateContactVM = new CreateContactRecordViewModel { ContactDate = DateTime.Now }, NoMembersSelected = selectedMembersVM.Count == 0 }; #endregion return(View("ContactSelected", bulkContactViewModel)); }
// GET: CcgMembers public ActionResult Index(int?ccgId, int?page = 1, int?itemsPerPage = 10, bool selectAll = false, bool listAll = false, bool getAll = false, string query = null, bool allAccess = false, int?memberFilter = (int)MemberFilter.None) { IList <MultiSelectList> items = new List <MultiSelectList>(); var filter = memberFilter != null ? (MemberFilter)memberFilter : MemberFilter.None; #region Set query string params to pass back to view // Pass params to view for features such as pagination ViewBag.ItemsPerPage = itemsPerPage; ViewBag.Page = page; ViewBag.CCGId = ccgId; ViewBag.GetAll = getAll; ViewBag.AllAccess = allAccess; ViewBag.IsSelectAll = selectAll; ViewBag.MemberFilter = filter; ViewBag.Query = query; #endregion if (ccgId != null) { var ccg = unitOfWork.CCGRepository.Find(g => g.Id == ccgId); ViewBag.CCGName = _ccgService.SetCCGViewName(ccg); } ActionResult actionResult; var members = _service.GetMembersList(ccgId, getAll, query, allAccess, User.Identity.Name, out actionResult).ToList(); // User may not get authorized and redirected if (actionResult != null) { return(actionResult); } // Filter members _service.FilterMembers(ref members, filter, unitOfWork.AppUserRepository.FindUserByEmail(User.Identity.Name)); // Map to view model and return view. var memberList = Mapper.Map <IList <ListMembersViewModel> >(members); // Validate phone and cell numbers; assign empty string if invalid _service.ValidatePhoneNumbers(memberList); // Set img src and member-has-photo flag _service.SetImgSrcAndHasPhotoFlag(memberList); // Set the IsMemberDeacon flag for each member. If user is not member's // deacon, also sets the href links for the phone numbers. _service.SetIsMemberDeaconFlag(memberList, unitOfWork.AppUserRepository.FindUserByEmail(User.Identity.Name)); // List all records in the view on one page if (listAll) { itemsPerPage = memberList.Count(); } // Select all if 'select all' is selected. if (selectAll) { _service.SelectAll(memberList); } // Get CCGs and users for filter menu var ccgs = unitOfWork.CCGRepository.FindAll().ToList(); // Set CCG name with deacon name(s). eg., CCG10 ===> CCG10_Bolden _ccgService.SetCCGViewName(ccgs); // Add 'All CCGs' option to menu ccgs.Insert(0, new CCG { Id = -1, CCGName = "All CCGs" }); ViewBag.CCGs = new SelectList(ccgs, "Id", "CcgName"); // Convert view model list to PagedList for pagination. return(View(memberList.ToPagedList(page ?? 1, itemsPerPage ?? 10))); }