public ActionResult OrderPaintCard(string brand = "") { var viewModel = new OrderPaintCardViewModel { SelectedBrand = brand }; var loggedInUser = LoggedInUser(); if (loggedInUser != null) { var person = _personService.GetByUserAccount(loggedInUser).FirstOrDefault(); _mappingEngine.Map(person, viewModel.Person); var address = _addressService.GetAddresses(loggedInUser).FirstOrDefault(); _mappingEngine.Map(address, viewModel.Address); } return(PartialView(viewModel)); }
public ActionResult OrderPaintCard(OrderPaintCardViewModel viewModel, string returnUrl) { if (string.IsNullOrEmpty(returnUrl) && string.IsNullOrEmpty(viewModel.Person.FirstName)) { var loggedInUser = LoggedInUser(); if (loggedInUser != null) { var person = _personService.GetByUserAccount(loggedInUser).FirstOrDefault(); _mappingEngine.Map(person, viewModel.Person); var address = _addressService.GetAddresses(loggedInUser).FirstOrDefault(); _mappingEngine.Map(address, viewModel.Address); } return(PartialView(viewModel)); } viewModel.Person.Title = viewModel.Address.Title; viewModel.Person.FirstName = viewModel.Address.FirstName; viewModel.Person.LastName = viewModel.Address.LastName; ModelState.Clear(); TryValidateModel(viewModel); if (ModelState.IsValid) { var person = _mappingEngine.Map <Person>(viewModel.Person); var address = _mappingEngine.Map <Address>(viewModel.Address); var enquiryType = _enquiryTypeService.Get(new { FormID = "OrderPaintCard" }).FirstOrDefault(); var enquiry = new Enquiry { UserAgent = Request.UserAgent, FormXML = _serializer.GetXml(viewModel), EnquiryTypeID = enquiryType.Id, SiteId = ColonyContext.CurrentSite.Id, Title = enquiryType.DynamicTitle.Replace("$FirstName", address.FirstName) .Replace("$LastName", address.LastName) }; enquiry = _enquiryService.Create(enquiry); var enquiryRecipients = _enquiryRecipientService.Get(new { SiteID = ColonyContext.CurrentSite.Id, EnquiryTypeID = enquiryType.Id }); if (enquiryRecipients != null && enquiryRecipients.Any()) { // send to admin var emailAddresses = string.Join(";", enquiryRecipients.Select(x => x.EmailAddress)); _mailerService.Send(emailAddresses, ColonyContext.CurrentSite.DefaultSenderEmail, string.Format("{0} - Paint Card Request", ColonyContext.CurrentSite.Name), "PaintCardRequestAdminEmail", viewModel); } if (Request.IsAjaxRequest()) { return(Json(new { success = enquiry != null && enquiry.Id != 0 })); } return(Redirect(returnUrl)); } return(PartialView(viewModel)); }