public ActionResult Create(CreateContactRecordViewModel viewModel) { // Ensures records displayed even if subject/comments are empty. // The search query searches for "" if none is given by user. if (viewModel.Subject == null) { viewModel.Subject = ""; } if (viewModel.Comments == null) { viewModel.Comments = ""; } // Sanitize data input with AntiXssEncoder // eg.: example: " ==> " viewModel = (CreateContactRecordViewModel)_service.SanitizeContactRecordViewModel(viewModel); var contactRecord = Mapper.Map <ContactRecord>(viewModel); if (ModelState.IsValid) { // Set timestamp contactRecord.Timestamp = DateTime.Now; // Assign user id to contact record property var user = unitOfWork.AppUserRepository.FindUserByEmail(User.Identity.Name); contactRecord.AppUserId = user.Id; unitOfWork.ContactRecordRepository.Add(contactRecord); if (contactRecord.PassAlong) { // TODO should this go to leadership and pastor? // Send pastor a notification var pastors = unitOfWork.AppUserRepository.FindUsersByRole(AppUserRole.Pastor); foreach (var pastor in pastors) { NotifyOfPassAlongContact(pastor.UserName, contactRecord.DeaconFullName); } } return(Redirect(viewModel.ReturnUrl)); } var contactTypes = unitOfWork.ContactTypeRepository.GetContactTypesSorted(); viewModel.ContactTypes = new SelectList(contactTypes, "Id", "Name"); return(View(viewModel)); }
// GET: ContactRecords/Create public ActionResult Create(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var contactTypes = unitOfWork.ContactTypeRepository.GetContactTypesSorted(); var member = unitOfWork.MemberRepository.FindMemberById(id); // Default value for drop down list var contactType = unitOfWork.ContactTypeRepository.Find(ct => ct.Name.Equals("Church")); var viewModel = new CreateContactRecordViewModel { CCGMemberId = (int)id, ContactDate = DateTime.Now, MemberFullName = $"{member.FirstName} {member.LastName}", ContactTypeId = contactType.Id, ContactTypes = new SelectList(contactTypes, "Id", "Name") }; return(View(viewModel)); }