public AppointmentDTO MakeAppointment(AppointmentDTO appointmentDTO) { var validatedAppointmentDTO = ValidateAndSetAppointment(appointmentDTO, AppointmentStatus.CREATED); var appointment = AppointmentConverter.FromAppointmentDTOToAppointment(validatedAppointmentDTO); _iAppointmentDao.Add(appointment); var owner = _iUserDao.FindUserById(appointmentDTO.AdvertismentOwnerId); var initiator = _iUserDao.FindUserById(appointmentDTO.InitiatorId); EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], SenderName = initiator.FirstName + " " + initiator.LastName, Receiver = owner.Email, ReceiverFirstName = owner.FirstName, ReceiverLastName = owner.LastName, EmailSubject = EmailSubjects.NewAppointment, AppointmentTitle = appointmentDTO.AdvertismentTitle, AppointmentDate = appointmentDTO.AppointmentDateTime, EmailTemplatePath = EmailTemplatesPath.MakeAppointmentTemplate }; _iMailerService.SendMailAppointments(emailModel); return(CreateAppoinmentNotification(appointment, owner, initiator)); }
public AppointmentDTO UpdateAppointmentAcceptedByInitiator(AppointmentDTO appointmentDTO) { var appointment = ValidateAndSetUpdateAppointment(appointmentDTO, AppointmentStatus.ACCEPTED_BY_INITIATOR); appointment.SeenByOwner = false; appointment.SeenByInitiator = true; var owner = _iUserDao.FindUserById(appointment.AdvertismentOwnerId); var initiator = _iUserDao.FindUserById(appointment.InitiatorId); EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], SenderName = initiator.FirstName + " " + initiator.LastName, Receiver = owner.Email, ReceiverFirstName = owner.FirstName, ReceiverLastName = owner.LastName, EmailSubject = EmailSubjects.AppointmentAccepted, AppointmentTitle = appointmentDTO.AdvertismentTitle, AppointmentDate = appointmentDTO.AppointmentDateTime, EmailTemplatePath = EmailTemplatesPath.AppointmentAcceptedTemplate }; _iMailerService.SendMailAppointments(emailModel); _iAppointmentDao.UpdateAppointment(appointment); return(CreateAppoinmentNotification(appointment, owner, initiator)); }
private void SendEmailForDoneAppointmentToInitiator(UserModel initiator, HorseAd horseAd) { EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], Receiver = initiator.Email, ReceiverFirstName = initiator.FirstName, ReceiverLastName = initiator.LastName, EmailSubject = EmailSubjects.HowWasTheAppointment, AppointmentTitle = horseAd.Title, EmailTemplatePath = EmailTemplatesPath.AppointmentDoneToInitiatorTemplate }; _iMailerService.SendMailAppointments(emailModel); }
public void CancelAppointment(CancelAppointmentModel cancelAppointmentModel) { var appointment = _iAppointmentDao.GetById(cancelAppointmentModel.AppointmentId); var initiator = appointment.Initiator; var owner = appointment.AdOwner; _iAppointmentDao.Delete(appointment); if (cancelAppointmentModel.OwnerCanceled) { EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], SenderName = owner.FirstName + " " + owner.LastName, Receiver = initiator.Email, ReceiverFirstName = initiator.FirstName, ReceiverLastName = initiator.LastName, EmailSubject = EmailSubjects.AppointmentCanceled, CancelFeedback = cancelAppointmentModel.FeedbackMessage, AppointmentTitle = cancelAppointmentModel.AdvertismentTitle, EmailTemplatePath = EmailTemplatesPath.AppointmentCanceledTemplate }; _iMailerService.SendMailAppointments(emailModel); } else { EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], SenderName = initiator.FirstName + " " + initiator.LastName, Receiver = owner.Email, ReceiverFirstName = owner.FirstName, ReceiverLastName = owner.LastName, EmailSubject = EmailSubjects.AppointmentCanceled, CancelFeedback = cancelAppointmentModel.FeedbackMessage, AppointmentTitle = cancelAppointmentModel.AdvertismentTitle, EmailTemplatePath = EmailTemplatesPath.AppointmentCanceledTemplate }; _iMailerService.SendMailAppointments(emailModel); } }
private void SendTwoDaysNotifierEmailInitiator(UserModel initiator, Appointment appointment, UserModel owner, HorseAd horseAd) { EmailModelAppointment emailModel = new EmailModelAppointment { Sender = ConfigurationManager.AppSettings["AdminEmail"], Receiver = initiator.Email, ReceiverFirstName = initiator.FirstName, ReceiverLastName = initiator.LastName, EmailSubject = EmailSubjects.AppointmentComing, AppointmentTitle = horseAd.Title, AppointmentDate = appointment.AppointmentDateTime, AppointmentLocation = horseAd.Address.Country + ", " + horseAd.Address.City + ", " + horseAd.Address.Street, AdOwnerEmail = owner.FirstName, AdOwnerPhoneNumber = owner.LastName, AdOwnerFullName = owner.FirstName + " " + owner.LastName, EmailTemplatePath = EmailTemplatesPath.AppointmentComingToInitiator }; _iMailerService.SendMailAppointments(emailModel); }
/// <summary> /// Send synchronus emails for appointments /// </summary> /// <param name="emailModel">Email Model</param> public void SendMailAppointments(EmailModelAppointment emailModel) { var message = new MailMessage(); message.From = new MailAddress(emailModel.Sender); message.Subject = emailModel.EmailSubject; message.IsBodyHtml = true; var template = ""; if (emailModel.EmailTemplatePath.IndexOf("~") > -1) { template = File.ReadAllText(HttpContext.Current.Server.MapPath(emailModel.EmailTemplatePath)); } else { template = File.ReadAllText(emailModel.EmailTemplatePath); } message.Body = Razor.Parse(template, emailModel); message.To.Add(emailModel.Receiver); message.ReplyToList.Add(emailModel.Sender); using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = true; smtpClient.SendCompleted += (s, e) => { smtpClient.Dispose(); message.Dispose(); }; smtpClient.Send(message); } }