public ActionResult Edit(PrayerRequestViewModel viewModel) { // Sanitize data input with AntiXssEncoder viewModel = _service.SanitizePrayerRequestViewModel(viewModel); if (ModelState.IsValid) { var contactRecord = unitOfWork.ContactRecordRepository.FindById(viewModel.Id); // Only the user who made the contact can edit it var user = unitOfWork.AppUserRepository.FindUserByEmail(User.Identity.Name); if (user.Id != contactRecord.AppUserId) { return(View("EditDenied")); } // update properties contactRecord.ContactDate = viewModel.ContactDate; contactRecord.Private = viewModel.Private; contactRecord.Subject = viewModel.Subject; contactRecord.Comments = viewModel.Comments; unitOfWork.ContactRecordRepository.Update(contactRecord); return(Redirect(viewModel.ReturnUrl)); } return(View(viewModel)); }
public ActionResult DeleteConfirmed(PrayerRequestViewModel viewModel) { var prayerRequest = unitOfWork.ContactRecordRepository.FindById(viewModel.Id); unitOfWork.ContactRecordRepository.Delete(prayerRequest); return(Redirect(viewModel.ReturnUrl)); }
public PrayerRequestViewModel SanitizePrayerRequestViewModel(PrayerRequestViewModel viewModel) { viewModel.Comments = AntiXssEncoder.HtmlEncode(viewModel.Comments, false); viewModel.PassAlongComments = AntiXssEncoder.HtmlEncode(viewModel.PassAlongComments, false); viewModel.Subject = AntiXssEncoder.HtmlEncode(viewModel.Subject, false); viewModel.PassAlongComments = AntiXssEncoder.HtmlEncode(viewModel.PassAlongFollowUpComments, false); return(viewModel); }
public IActionResult PrayerRequest() { var context = HttpContext; var model = new PrayerRequestViewModel(context) { ReCaptchaSiteKey = "6LdO2OQUAAAAADb3Nim540MD-o81QEZ5UxTGkgDe" }; model.Title = "Submit a Prayer Request"; model.PrayerRequest = new PrayerRequest(); return(View(model)); }
public PrayerRequests(PrayerRequestViewModel vm) { BindingContext = vm; ToolbarItems.Add(new ToolbarItem("New", null, async() => await NewPrayerRequest())); Content = new StackLayout { Children = { new Label { Text = "Prayer Requests" }, GetRepeaterView() } }; ViewModel.GetPrayerRequests.Execute(null); }
// GET: PrayerRequestViewModels/Create public ActionResult Create(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var member = unitOfWork.MemberRepository.FindMemberById(id); var viewModel = new PrayerRequestViewModel { CCGMemberId = (int)id, ContactDate = DateTime.Now, MemberFullName = $"{member.FirstName} {member.LastName}" }; return(View(viewModel)); }
public ActionResult Create(PrayerRequestViewModel prayerRequestViewModel) { if (!ModelState.IsValid) { return(View(prayerRequestViewModel)); } // Ensures records displayed even if subject/comments are empty. // The search query searches for "" if none is given by user. if (prayerRequestViewModel.Subject == null) { prayerRequestViewModel.Subject = ""; } if (prayerRequestViewModel.Comments == null) { prayerRequestViewModel.Comments = ""; } // Sanitize data input with AntiXssEncoder prayerRequestViewModel = _service.SanitizePrayerRequestViewModel(prayerRequestViewModel); var contactRecord = Mapper.Map <ContactRecord>(prayerRequestViewModel); // Used to find contact type object string contacTypePR = "Prayer Request"; // Get contact type object that matches 'Prayer Request' var contactType = unitOfWork.ContactTypeRepository .Find(t => t.Name.Equals(contacTypePR, StringComparison.CurrentCultureIgnoreCase)); contactRecord.ContactTypeId = contactType.Id; 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); // Send pastor/leadership a notification about prayer request NotifyOfPrayerRequest(contactRecord.DeaconFullName); return(Redirect(prayerRequestViewModel.ReturnUrl)); }
public async Task <IActionResult> PrayerRequest(PrayerRequestViewModel requestModel) { requestModel.Title = "Submit a Prayer Request"; SiteVerifyResult reCaptchaVerifyResult = null; if (requestModel == null) { ModelState.AddModelError("", "requestModel was Null"); } else if (requestModel.ReCaptchaResponse == null) { ModelState.AddModelError("", "requestModel.ReCaptchaResponse was Null"); } else { try { reCaptchaVerifyResult = await _ReCaptchaService.VerifyReCaptchaAsync(requestModel.ReCaptchaResponse); } catch (Exception) { } } if (reCaptchaVerifyResult != null) { if (reCaptchaVerifyResult.ResultStatus != ReCaptcha.enums.ResultStatus.Ok || reCaptchaVerifyResult.IsVerified == false) { var resultCd = reCaptchaVerifyResult.ResultStatus switch { ResultStatus.Ok => "Ok", ResultStatus.BadRequest => "Bad Request", ResultStatus.Conflict => "Conflict", ResultStatus.Error => "Error", ResultStatus.NotFound => "Not Found", ResultStatus.Unauthorized => "Unauthorized", _ => "Unknown" }; ModelState.AddModelError(string.Empty, resultCd + " " + reCaptchaVerifyResult.ResultStatusMessages[0].Message); } } if (!ModelState.IsValid) { return(View(requestModel)); } await _RequestsService.InsertAPrayerRequestAsync(requestModel.PrayerRequest); var msg = "Thank you for your prayer request. Your request will be reviewed by a knight and included in our group prayer at our council meeting. "; msg += "If your request was marked urgent, your request may be forwarded to brother knights to include with their individual prayer intentions."; var postSavePopup = new PopupModel() { Title = "Prayer Request Submitted", Body = msg, Buttons = new PopupButtonModel[] { new PopupButtonModel(Core.Enums.ButtonType.Close) } }; var _popupJson = JsonSerializer.Serialize(postSavePopup); return(RedirectToAction("Index", new RouteValueDictionary( new { controller = "Home", action = "Index", popupJson = _popupJson }))); } }