Example #1
0
        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));
        }
Example #2
0
        // 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));
        }