Example #1
0
        public ActionResult Support(SupportFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewSupportImpl(viewModel, string.Empty));
            }
            var supportRequestLog = SupportRequestLogModelExtensions.Create(CurrentFirmaSession);

            viewModel.UpdateModel(supportRequestLog, CurrentFirmaSession);
            HttpRequestStorage.DatabaseEntities.AllSupportRequestLogs.Add(supportRequestLog);
            SupportRequestLogModelExtensions.SendMessage(supportRequestLog, Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType, HttpRequestStorage.DatabaseEntities, FirmaWebConfiguration.DefaultSupportPersonID);
            SetMessageForDisplay("Support request sent.");
            if (CurrentFirmaSession.IsAnonymousUser())
            {
                // This is a rare place in the system where an anonymous user writes to the DB.
                // If this becomes more commonplace we can work out a more general solution.
                HttpRequestStorage.DatabaseEntities.SaveChangesWithNoAuditing(CurrentFirmaSession.TenantID);
            }
            else
            {
                // Logged in user, normal audit trail on save
                SitkaDbContext.SaveChanges();
            }

            return(new ModalDialogFormJsonResult());
        }
Example #2
0
        private PartialViewResult ViewSupport(SupportRequestTypeEnum?supportRequestTypeEnum, string optionalPrepopulatedDescription)
        {
            var currentPageUrl = string.Empty;

            if (Request.UrlReferrer != null)
            {
                currentPageUrl = Request.UrlReferrer.ToString();
            }
            else if (Request.Url != null)
            {
                currentPageUrl = Request.Url.ToString();
            }

            var viewModel = new SupportFormViewModel(currentPageUrl, supportRequestTypeEnum);

            if (!IsCurrentUserAnonymous())
            {
                viewModel.RequestPersonName  = CurrentPerson.GetFullNameFirstLast();
                viewModel.RequestPersonEmail = CurrentPerson.Email;
                if (CurrentPerson.Organization != null)
                {
                    viewModel.RequestPersonOrganization = CurrentPerson.Organization.OrganizationName;
                }
                viewModel.RequestPersonPhone = CurrentPerson.Phone;
            }
            viewModel.RequestDescription = optionalPrepopulatedDescription;
            return(ViewSupportImpl(viewModel, string.Empty));
        }
Example #3
0
        private PartialViewResult ViewSupportImpl(SupportFormViewModel viewModel, string successMessage)
        {
            var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder);

            var supportRequestTypes =
                allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder)
                .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.GetSubjectLine());

            var viewData = new SupportFormViewData(successMessage, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList());

            return(RazorPartialView <SupportForm, SupportFormViewData, SupportFormViewModel>(viewData, viewModel));
        }
Example #4
0
        public ActionResult RequestOrganizationNameChange(SupportFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewSupportImpl(viewModel, string.Empty));
            }
            var supportRequestLog = SupportRequestLog.Create(CurrentPerson);

            viewModel.UpdateModel(supportRequestLog, CurrentPerson);
            HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog);
            supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType);
            SetMessageForDisplay("Support request sent.");
            return(Redirect(SitkaRoute <OrganizationController> .BuildUrlFromExpression(x => x.Index())));
        }
        public ActionResult SubmitSupport(SupportFormViewModel details)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var email = details.Email;

                    // Ensure one signature per email address
                    if (signatureService.Validate(email))
                    {
                        return View();
                    }

                    // Create signature
                    var signature = new Signature()
                    {
                        Firstname = details.Firstname,
                        Surname = details.Surname,
                        Email = email,
                        Postcode = details.Postcode,
                        ChildsDOB = details.ChildDOB
                    };

                    // Add
                    signatureService.Add(signature);

                    // Send confirmation email
                    emailService.Send(email, "Thank-you for your support!", "Thank-you for supporting our bid for Roundhay Park Primary School");

                    // Add to subscribers list if they request more info
                    if(details.MoreInfoConfirmed)
                    {
                        subscriptionService.Add(new Subscription() { Email = email });

                        emailService.Send(email, "Thank-you for subscribing!", "Thank-you for subscribing to receive more infomation on the progress of our bid! If you would like to unsubscribe please let us know via email.");
                    }

                    return PartialView("_Success");
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            var modelStateErrors = ModelState.Values.SelectMany(v => v.Errors);

            return View();
        }
Example #6
0
        public ActionResult Support(SupportFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewSupportImpl(viewModel, string.Empty));
            }
            var supportRequestLog = SupportRequestLog.Create(CurrentPerson);

            viewModel.UpdateModel(supportRequestLog, CurrentPerson);
            HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog);
            supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType);
            SetMessageForDisplay("Support request sent.");
            return(Redirect(viewModel.ReturnUrl));
        }
Example #7
0
        private ViewResult ViewSupportImpl(SupportFormViewModel viewModel, string successMessage)
        {
            var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder).ToList();

            var supportRequestTypes =
                allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder)
                .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.SupportRequestTypeDisplayName);
            var neptunePage = NeptunePage.GetNeptunePageByPageType(NeptunePageType.RequestSupport);
            var cancelUrl   = Request.UrlReferrer != null?Request.UrlReferrer.ToString() : SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index());

            viewModel.ReturnUrl = cancelUrl;
            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            var viewData = new SupportFormViewData(CurrentPerson, neptunePage, successMessage, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList(), cancelUrl);

            return(RazorView <SupportForm, SupportFormViewData, SupportFormViewModel>(viewData, viewModel));
        }
Example #8
0
        public ViewResult RequestOrganizationNameChange()
        {
            var currentPageUrl = string.Empty;

            if (Request.UrlReferrer != null)
            {
                currentPageUrl = Request.UrlReferrer.ToString();
            }
            else if (Request.Url != null)
            {
                currentPageUrl = Request.Url.ToString();
            }

            var viewModel = new SupportFormViewModel(currentPageUrl, SupportRequestTypeEnum.RequestOrganizationNameChange);

            if (!IsCurrentUserAnonymous())
            {
                viewModel.RequestPersonName  = CurrentPerson.GetFullNameFirstLast();
                viewModel.RequestPersonEmail = CurrentPerson.Email;
                if (CurrentPerson.Organization != null)
                {
                    viewModel.RequestPersonOrganization = CurrentPerson.Organization.OrganizationName;
                }
                viewModel.RequestPersonPhone = CurrentPerson.Phone;
            }
            viewModel.RequestDescription = string.Empty;
            var allSupportRequestTypes = SupportRequestType.All.OrderBy(x => x.SupportRequestTypeSortOrder).ToList();

            var supportRequestTypes =
                allSupportRequestTypes.OrderBy(x => x.SupportRequestTypeSortOrder)
                .ToSelectListWithEmptyFirstRow(x => x.SupportRequestTypeID.ToString(CultureInfo.InvariantCulture), x => x.SupportRequestTypeDisplayName);
            var neptunePage = NeptunePage.GetNeptunePageByPageType(NeptunePageType.RequestSupport);
            var cancelUrl   = Request.UrlReferrer != null?Request.UrlReferrer.ToString() : SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Index());

            viewModel.ReturnUrl = cancelUrl;
            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            var viewData = new SupportFormViewData(CurrentPerson, neptunePage, string.Empty, IsCurrentUserAnonymous(), supportRequestTypes, allSupportRequestTypes.Select(x => new SupportRequestTypeSimple(x)).ToList(), cancelUrl);

            return(RazorView <Views.Help.RequestOrganizationNameChange, SupportFormViewData, SupportFormViewModel>(viewData, viewModel));
        }
Example #9
0
 public ActionResult RequestOrganizationNameChange(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
Example #10
0
 public ActionResult ProposalFeedback(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
Example #11
0
 public ActionResult MissingFundingSource(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
 public ActionResult MissingOrganization(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
Example #13
0
 public ActionResult RequestToChangePrivileges(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
        public ActionResult RequestProjectPrimaryContactChange(ProjectPrimaryKey projectPrimaryKey, SupportFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewSupportImpl(viewModel, string.Empty));
            }
            var supportRequestLog = SupportRequestLog.Create(CurrentPerson);

            viewModel.UpdateModel(supportRequestLog, CurrentPerson);
            HttpRequestStorage.DatabaseEntities.SupportRequestLogs.Add(supportRequestLog);
            supportRequestLog.SendMessage(Request.UserHostAddress, Request.UserAgent, viewModel.CurrentPageUrl, supportRequestLog.SupportRequestType, projectPrimaryKey.EntityObject);
            SetMessageForDisplay("Support request sent.");
            return(new ModalDialogFormJsonResult());
        }
Example #15
0
 public ActionResult RequestOrganizationAddedToKeystone(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
Example #16
0
 public ActionResult UpdateFeedback(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }
 public ActionResult MissingGrantAllocation(SupportFormViewModel viewModel)
 {
     return(Support(viewModel));
 }