public ActionResult RenderForm_EditPrayer(string nodeId)
        {
            try
            {
                //Obtain the prayer request as a model and pass to the view.
                PrayerRequest prayer = new PrayerRequest(Umbraco.TypedContent(nodeId));

                //Populate data into modell
                var prayerRequest = new PrayerRequestModel();
                prayerRequest.Prayer              = prayer.Prayer;
                prayerRequest.PrayerTitle         = prayer.PrayerTitle;
                prayerRequest.UserId              = prayer.PrayerRequestMember.Id;
                prayerRequest.Id                  = Convert.ToInt32(nodeId);
                prayerRequest.totalPrayersOffered = prayer.TotalPrayersOffered;

                //Call edit page with model data
                return(PartialView("~/Views/Partials/PrayerCorner/_editPrayer.cshtml", prayerRequest));
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(@"PrayerController.cs : RenderForm_EditPrayer()");
                sb.AppendLine("nodeId:" + nodeId);
                Common.SaveErrorMessage(ex, sb, typeof(PrayerController));


                ModelState.AddModelError("", "*An error occured while creating an edit form with your prayers.");
                return(PartialView("~/Views/Partials/PrayerCorner/_editPrayer.cshtml"));
            }
        }
示例#2
0
        private async Task NewPrayerRequest()
        {
            var prayerRequest = new PrayerRequestModel()
            {
                Request = "New Request"
            };
            await ViewModel.InsertPrayerRequest(prayerRequest);

            //ViewModel.GetPrayerRequests.Execute(null);
        }
        public ActionResult UpdatePrayerRequest(PrayerRequestModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Instantiate variables
                    IContentService contentService  = Services.ContentService;
                    IContent        icPrayerRequest = contentService.GetById(model.Id);

                    //Update data
                    icPrayerRequest.SetValue(PrayerRequest.GetModelPropertyType(x => x.PrayerTitle).PropertyTypeAlias, model.PrayerTitle);
                    icPrayerRequest.SetValue(PrayerRequest.GetModelPropertyType(x => x.Prayer).PropertyTypeAlias, model.Prayer);
                    var result = contentService.SaveAndPublishWithStatus(icPrayerRequest);

                    if (result.Success)
                    {
                        //Return to page
                        TempData["PrayerUpdatedSuccessfully"] = true;
                        return(RedirectToUmbracoPage((int)(Models.Common.siteNode.PrayerRequests)));
                    }
                    else
                    {
                        //Save error message to umbraco
                        StringBuilder sb = new StringBuilder();
                        sb.AppendLine(@"Controllers/PrayerController.cs : UpdatePrayerRequest()");
                        sb.AppendLine(@"Updating prayer request was not successful.");
                        sb.AppendLine("model:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                        sb.AppendLine("result:" + Newtonsoft.Json.JsonConvert.SerializeObject(result));
                        Exception ex = new Exception();
                        Common.SaveErrorMessage(ex, sb, typeof(PrayerController));

                        //Return with error
                        ModelState.AddModelError(string.Empty, "An error occured while updating your prayer request.");
                        return(CurrentUmbracoPage());
                    }
                }
                else
                {
                    return(CurrentUmbracoPage());
                }
            }
            catch (Exception ex)
            {
                //Save error message to umbraco
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(@"PrayerController.cs : UpdatePrayerRequest()");
                sb.AppendLine("model:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                Common.SaveErrorMessage(ex, sb, typeof(PrayerController));

                ModelState.AddModelError(string.Empty, "An error occured while updating your prayer request.");
                return(CurrentUmbracoPage());
            }
        }
        public ActionResult RenderForm_PrayerPledges(string userName)
        {
            //Intsantiate list
            List <PrayerRequestModel> lstPrayers = new List <PrayerRequestModel>();


            try
            {
                //
                IMember member = Services.MemberService.GetByUsername(userName);
                if (member != null)
                {
                    //Instantiate list
                    List <_prayerRequest> lstJsonPrayersOffered = new List <_prayerRequest>();

                    //Populate list with any existing data
                    if (member.HasProperty(Common.NodeProperties.prayersOfferedFor) && member.GetValue(Common.NodeProperties.prayersOfferedFor) != null)
                    {
                        lstJsonPrayersOffered = JsonConvert.DeserializeObject <List <_prayerRequest> >(member.GetValue(Common.NodeProperties.prayersOfferedFor).ToString());
                    }

                    //
                    foreach (_prayerRequest prayerOffered in lstJsonPrayersOffered)
                    {
                        PrayerRequestModel prayerRequest = new PrayerRequestModel();
                        IPublishedContent  ipPrayer      = Umbraco.TypedContent(prayerOffered.prayer);

                        prayerRequest.Id          = ipPrayer.Id;
                        prayerRequest.date        = Convert.ToDateTime(prayerOffered.date);
                        prayerRequest.PrayerTitle = ipPrayer.GetPropertyValue <String>(PrayerRequest.GetModelPropertyType(x => x.PrayerTitle).PropertyTypeAlias);
                        prayerRequest.Url         = ipPrayer.Url;

                        lstPrayers.Add(prayerRequest);
                    }
                }
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(@"PrayerController.cs : RenderForm_PrayerPledges()");
                sb.AppendLine("userName:"******"model:" + Newtonsoft.Json.JsonConvert.SerializeObject(lstPrayers));
                Common.SaveErrorMessage(ex, sb, typeof(PrayerController));


                ModelState.AddModelError("", "*An error occured while...");
                return(CurrentUmbracoPage());
            }


            return(PartialView("~/Views/Partials/PrayerCorner/_prayerPledges.cshtml", lstPrayers));
        }
        //Render Form
        public ActionResult RenderForm_NewPrayer(string userName)
        {
            try
            {
                //Instantiate variables
                var prayerRequest    = new PrayerRequestModel();
                var memberShipHelper = new Umbraco.Web.Security.MembershipHelper(UmbracoContext.Current);

                //Get member's ID from
                prayerRequest.UserId = memberShipHelper.GetByUsername(userName).Id;

                return(PartialView("~/Views/Partials/PrayerCorner/_newPrayer.cshtml", prayerRequest));
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(@"PrayerController.cs : RenderForm_NewPrayer()");
                sb.AppendLine("userName:"******"", "*An error occured while creating a new prayer form.");
                return(PartialView("~/Views/Partials/PrayerCorner/_newPrayer.cshtml"));
            }
        }
        public ActionResult SubmitNewPrayerRequest(PrayerRequestModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Instantiate variables
                    IContentService contentService = Services.ContentService;
                    IContent        content        = contentService.CreateContent(name: model.PrayerTitle, parentId: (int)Common.siteNode.ThePrayerCorner, contentTypeAlias: docType.PrayerRequest);

                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.PrayerTitle).PropertyTypeAlias, model.PrayerTitle);
                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.Prayer).PropertyTypeAlias, model.Prayer);
                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.PrayerRequestMember).PropertyTypeAlias, model.UserId);
                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.RequestDate).PropertyTypeAlias, DateTime.Now);
                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.BaseCalculationDate).PropertyTypeAlias, DateTime.Now);

                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.TotalPrayersOffered).PropertyTypeAlias, 0);
                    content.SetValue(PrayerRequest.GetModelPropertyType(x => x.CurrentPercentage).PropertyTypeAlias, 0);

                    var result = contentService.SaveAndPublishWithStatus(content);
                    //contentService.RePublishAll(model.UserId);


                    if (result.Success)
                    {
                        //Add Prayer Request to member's records
                        IMember member = Services.MemberService.GetById(model.UserId);
                        if (member == null)
                        {
                            //Save error message to umbraco
                            StringBuilder sb = new StringBuilder();
                            sb.AppendLine(@"Controllers/PrayerController.cs : SubmitNewPrayerRequest()");
                            sb.AppendLine(@"Member Id returned nothing.  Cannot add prayer request to member.");
                            sb.AppendLine("model:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                            Exception ex = new Exception();
                            Common.SaveErrorMessage(ex, sb, typeof(PrayerController));
                        }
                        else
                        {
                            //Instantiate list
                            List <Models._prayerRequest> lstPrayerRequests = new List <Models._prayerRequest>();

                            //Populate list with any existing data
                            if (member.HasProperty(NodeProperties.prayerRequests) && member.GetValue(NodeProperties.prayerRequests) != null)
                            {
                                lstPrayerRequests = JsonConvert.DeserializeObject <List <Models._prayerRequest> >(member.GetValue(NodeProperties.prayerRequests).ToString());
                            }

                            //Add latest prayer request to
                            Models._prayerRequest newRequest = new Models._prayerRequest();
                            newRequest.prayer = content.Id.ToString();
                            newRequest.date   = DateTime.Now.ToString("yyyy-MM-dd");
                            lstPrayerRequests.Add(newRequest);

                            //Add data to member and save
                            member.SetValue(NodeProperties.prayerRequests, JsonConvert.SerializeObject(lstPrayerRequests));
                            Services.MemberService.Save(member);
                        }

                        //Return to page
                        TempData["NewPrayerCreatedSuccessfully"] = true;
                        return(RedirectToUmbracoPage((int)(Models.Common.siteNode.PrayerRequests)));
                    }
                    else
                    {
                        //Save error message to umbraco
                        StringBuilder sb = new StringBuilder();
                        sb.AppendLine(@"Controllers/PrayerController.cs : SubmitNewPrayerRequest()");
                        sb.AppendLine("model:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                        sb.AppendLine("result:" + Newtonsoft.Json.JsonConvert.SerializeObject(result));
                        Exception ex = new Exception();
                        Common.SaveErrorMessage(ex, sb, typeof(PrayerController));

                        //Return with error
                        ModelState.AddModelError(string.Empty, "An error occured while creating your prayer request.");
                        return(CurrentUmbracoPage());
                    }
                }
                else
                {
                    return(CurrentUmbracoPage());
                }
            }
            catch (Exception ex)
            {
                //Save error message to umbraco
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(@"PrayerController.cs : SubmitNewPrayerRequest()");
                sb.AppendLine("model:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                Common.SaveErrorMessage(ex, sb, typeof(PrayerController));

                ModelState.AddModelError(string.Empty, "An error occured while submitting your prayer request.");
                return(CurrentUmbracoPage());
            }
        }
        public async Task InsertPrayerRequest(PrayerRequestModel prayerRequest)
        {
            await _prayerRequestContext.InsertPrayerRequest(prayerRequest);

            await FetchPrayerRequests();
        }