Пример #1
0
        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);
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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");
        }
Пример #4
0
        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);
        }
Пример #5
0
 public void AddCustomer(Customer user)
 {
     customerRepository.Add(user);
     customerRepository.UnitOfWork.Commit();
 }
Пример #6
0
        public void SaveCustomer(Customer user)
        {
            customerRepository.Update(user);
            customerRepository.UnitOfWork.Commit();

            Logger.Info("Customer Saved");
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
        }