public PartialViewResult Index(ContactInputModel inputModel) { if (ModelState.IsValid) { var user = new Customer { FullName = inputModel.FullName, Email = inputModel.Email.ToLower(), Telephone = inputModel.Telephone }; var note = new Note { Message = inputModel.Message }; customerService.EnquiryRequest(user, note); return PartialView("SendMessage"); } var viewModel = new ContactViewModel { FullName = inputModel.FullName, Email = inputModel.Email.ToLower(), Telephone = inputModel.Telephone, Message = inputModel.Message }; return PartialView("Index", viewModel); }
public void SendAssignWorkerMessage(Job job, Customer worker) { var templateBody = TemplateBody(templateSettings.GetAssignWorker()); var replacementKeyValues = new List<KeyValuePair<string, string>> { new KeyValuePair<string, string>("{{BaseUrl}}", templateSettings.GetBasePath()), new KeyValuePair<string, string>("{{BaseAdminUrl}}", templateSettings.GetAdminBasePath()), new KeyValuePair<string, string>("{{FullName}}", worker.FullName), new KeyValuePair<string, string>("{{HoursEffort}}", job.Quote.HoursEffort.ToString()), new KeyValuePair<string, string>("{{AmountPaid}}", job.Quote.AmountPaidToWorker.ToString()), new KeyValuePair<string, string>("{{CompletionDate}}", job.EstimatedCompletion.ToString()), new KeyValuePair<string, string>("{{JobUrl}}", string.Format("Jobs/Job/{0}", job.Id)) }; string body = templateManager.PopulateTemplate(templateBody, replacementKeyValues); Logger.Info("Sending Assign Worker Message"); string subject = string.Format("Job Assignment: {0}", job.Reference); var toAddress = emailAddressSettings.CreateEmailAddress(worker.Email, worker.FullName); var fromAddress = emailAddressSettings.GetInfoEmailAddress(); if (emailer.TrySendMail(toAddress, fromAddress, subject, body)) { Logger.Info("Send succeeded"); } }
public void AssignWorker(Job job, Customer worker) { job.Worker = worker; job.AssignedToWorker = DateTime.Now; SaveJob(job); notifier.SendAssignWorkerMessage(job, worker); Logger.Info("Assigned job to worker"); }
public void EnquiryResponse(Customer user, Note note) { var existingCustomer = customerRepository.FindBy(user.Email); if (existingCustomer != null) { existingCustomer.Notes.Add(note); customerRepository.Update(existingCustomer); user = existingCustomer; } else { user.Notes.Add(note); customerRepository.Add(user); } customerRepository.UnitOfWork.Commit(); notifier.SendEnquiryResponseMessage(user, note); }
public void AddCustomer(Customer user) { customerRepository.Add(user); customerRepository.UnitOfWork.Commit(); }
public void SaveCustomer(Customer user) { customerRepository.Update(user); customerRepository.UnitOfWork.Commit(); Logger.Info("Customer Saved"); }
public void Referral(Customer referrer, IList<Customer> referred) { referrer.Notes.Add(new Note { Message = string.Format("Referred {0} friends", referred.Count) }); AddCustomer(referrer); var promotionService = new PromotionService(repositoryFactory); var promotion = promotionService.AddReferralPromotion(referred.Count); notifier.SendReferralPromotionMessageToUser(promotion, referrer); foreach (var user in referred) { user.Notes.Add(new Note { Message = string.Format("Referred by {0}", referrer.Email) }); AddCustomer(user); notifier.SendWelcomeMessageToReferred(referrer, user); } }
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus; var user = Membership.CreateUser(model.Email.ToLower(), model.Password, model.Email.ToLower(), null, null, true, null, out createStatus); if (user != null && createStatus == MembershipCreateStatus.Success) { Roles.AddUserToRole(user.UserName, "worker"); var customer = new Customer { FullName = model.FullName, Email = model.Email.ToLower(), Telephone = model.Telephone }; customerService.AddCustomer(customer); FormsAuthentication.SetAuthCookie(model.Email, false /* createPersistentCookie */); return RedirectToAction("Index", "Jobs"); } else { ModelState.AddModelError("", ErrorCodeToString(createStatus)); } } // If we got this far, something failed, redisplay form return View(model); }