public NewsletterSubscription(string email, string language) : base() { if (string.IsNullOrWhiteSpace(email)) { throw new ArgumentNullException(nameof(email)); } if (!EmailsHelper.IsEmailFormatValid(email)) { throw new ArgumentException(nameof(email)); } if (string.IsNullOrWhiteSpace(language)) { throw new ArgumentNullException(nameof(language)); } if (language.ToLower().Trim() != "fr" && language.ToLower().Trim() != "en") { throw new ArgumentOutOfRangeException(nameof(language)); } this.EmailAddress = email.ToLower().Trim(); this.Language = language.ToLower().Trim(); }
public ActionResult Send(ContactForm contactForm) { if (!ModelState.IsValid) { return(View("Index", contactForm)); } else { //send email EmailsHelper.SendEmail(db.Settings.FirstOrDefault(s => s.Key.Equals(Constant.ApplicationEmail, StringComparison.InvariantCultureIgnoreCase)).Value, "Formularz kontaktowy", ($"Zgłoszenie od {contactForm.FirstName} {contactForm.LastName} nr.tel: {contactForm.TextArea} o treści {contactForm.TextArea}")); return(RedirectToAction("Index", "Home")); } }
public ActionResult Create([Bind(Include = "Id,Payment,Shipment,Address")] Order order) { if (ModelState.IsValid) { if (Request.Cookies.AllKeys.Contains("Cart")) { var cookie = Request.Cookies["Cart"]; var items = JsonConvert.DeserializeObject <List <CartItem> >(cookie.Value); var userId = User.Identity.GetUserId(); order.CreationDate = DateTime.Now; order.UserId = userId; order.Status = "Nowe"; order.Order_Product = items.Select(i => new Order_Product { ProductId = i.Product.Id, Amount = i.Count }).ToList(); db.Orders.Add(order); db.SaveChanges(); Response.Cookies.Remove("Cart"); cookie.Expires = DateTime.Now.AddDays(-10); cookie.Value = null; Response.SetCookie(cookie); var receiverEmail = db.AspNetUsers.Find(userId)?.Email; var message = string.Empty; double sum = 0; foreach (var product in items) { sum += (double)(product.Count * product.Product.Price); message += $"Nazwa produktu: {product.Product.Name}, Cena: {product.Product.Price}, Ilosc: {product.Count}, Suma: {((double)(product.Count * product.Product.Price)).ToString()}"; } message += $"Suma zamówienia: {sum.ToString()}, Sposób dostawy: {order.Shipment}, Metoda płatności: {order.Payment}"; EmailsHelper.SendEmail(receiverEmail, "Potwierdzenie zamówienia", message); return(RedirectToAction("Index")); } } return(View(order)); }
public virtual ActionResult Create(ClientModel model, [Bind(Prefix = "Transit")] TransitEditModel transitModel) { if (!EmailsHelper.Validate(model.Emails)) { ModelState.AddModelError("Emails", @"Emails format is invalid"); } if (!ModelState.IsValid) { BindBag(null); return(View()); } long clientId = 0; var passwordDefined = !string.IsNullOrWhiteSpace(model.Authentication.NewPassword); if (passwordDefined) { try { clientId = _manager.Add(model, transitModel); if (model.ContractFile != null) { MergeContract(model, clientId); } } catch (DublicateLoginException) { ModelState.AddModelError("Login", Validation.LoginExists); } } else { ModelState.AddModelError("NewPassword", Validation.EmplyPassword); } if (!ModelState.IsValid) { BindBag(null); return(View()); } return(RedirectToAction(MVC.Client.Edit(clientId))); }
private IEnumerable <RecipientData> GetRecipients(IEnumerable <RoleType> roles, long clientId) { foreach (var role in roles) { switch (role) { case RoleType.Admin: { var recipients = _admins.GetAll() .Select(user => new RecipientData(user.Email, user.Language, RoleType.Admin)); foreach (var recipient in recipients) { yield return(recipient); } break; } case RoleType.Manager: { var recipients = _managers.GetAll() .Select(user => new RecipientData(user.Email, user.Language, RoleType.Manager)); foreach (var recipient in recipients) { yield return(recipient); } break; } case RoleType.Client: var client = _clients.Get(clientId); foreach (var email in EmailsHelper.SplitAndTrimEmails(client.Emails)) { yield return(new RecipientData(email, client.Language, role)); } break; case RoleType.Sender: case RoleType.Broker: case RoleType.Forwarder: case RoleType.Carrier: throw new NotSupportedException("Only client and admin can be recipient of client event"); default: throw new InvalidOperationException("Unknown role " + role); } } }
public ActionResult Edit(Order order) { if (ModelState.IsValid) { var currentOrder = db.Orders.Find(order.Id); var oldStatus = currentOrder.Status; currentOrder.Status = order.Status; db.SaveChanges(); var receiverEmail = db.AspNetUsers.Find(order.UserId)?.Address; if (!string.IsNullOrEmpty(receiverEmail)) { EmailsHelper.SendEmail(receiverEmail, "Zmiana statusu zamówienia", $"Status Twojego zamówienia został zmieniony z '{oldStatus}' na '{order.Status}'"); } return(RedirectToAction("IndexAdmin")); } ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Email", order.UserId); return(View(order)); }
public virtual ActionResult Edit(long?id, ClientModel model, [Bind(Prefix = "Transit")] TransitEditModel transitModel) { if (!EmailsHelper.Validate(model.Emails)) { ModelState.AddModelError("Emails", @"Emails format is invalid"); } if (!ModelState.IsValid) { BindBag(id); return(View()); } var client = _clients.GetCurrentClientData(id); try { ClientCantChangeDefaultSenderId(model, client); ClientCantChangeCalculationSettings(model, client); _manager.Update(client.ClientId, model, transitModel); MergeContract(model, client.ClientId); } catch (DublicateLoginException) { ModelState.AddModelError("Login", Validation.LoginExists); } if (!ModelState.IsValid) { BindBag(id); return(View()); } return(RedirectToAction(MVC.Client.Edit(client.ClientId))); }
public void Send(long applicationId, long userId) { var bill = _bills.Get(applicationId); var application = _applications.Get(applicationId); var subject = string.Format("Счет на оплату № {0} от {1}", bill.Number, bill.SaveDate.ToString("dd MMMM yyyy")); var body = subject; var from = EmailsHelper.DefaultFrom; var to = _admins.GetAll().Select(x => x.Email).ToArray() .Union(EmailsHelper.SplitAndTrimEmails(application.ClientEmails)) .Distinct() .ToArray(); var files = new[] { _pdf.Get(applicationId) }; foreach (var item in to) { _mail.Send(new EmailMessage(subject, body, from, item, userId) { Files = files, }); } }
private IEnumerable <RecipientData> GetRecipients(IEnumerable <RoleType> roles, EventDataForEntity data) { foreach (var role in roles) { switch (role) { case RoleType.Admin: { var recipients = _admins.GetAll() .Select(user => new RecipientData(user.Email, user.Language, RoleType.Admin)); foreach (var recipient in recipients) { yield return(recipient); } } break; case RoleType.Manager: { var recipients = _managers.GetAll() .Select(user => new RecipientData(user.Email, user.Language, RoleType.Manager)); foreach (var recipient in recipients) { yield return(recipient); } } break; case RoleType.Broker: var brokerId = _awbs.Get(data.EntityId).Single().BrokerId; if (brokerId.HasValue) { var broker = _brokers.Get(brokerId.Value); yield return(new RecipientData(broker.Email, broker.Language, role)); } break; case RoleType.Sender: foreach (var email in _awbs.GetSenderEmails(data.EntityId)) { yield return(new RecipientData(email.Email, email.Language, RoleType.Client)); } break; case RoleType.Client: foreach (var emailData in _awbs.GetClientEmails(data.EntityId)) { foreach (var email in EmailsHelper.SplitAndTrimEmails(emailData.Email)) { yield return(new RecipientData(email, emailData.Language, RoleType.Client)); } } break; case RoleType.Forwarder: foreach (var email in _awbs.GetForwarderEmails(data.EntityId)) { yield return(new RecipientData(email.Email, email.Language, RoleType.Client)); } break; case RoleType.Carrier: foreach (var email in _awbs.GetCarrierEmails(data.EntityId)) { yield return(new RecipientData(email.Email, email.Language, RoleType.Client)); } break; default: throw new InvalidOperationException("Unknown role " + role); } } }
public EmailMessage(string subject, string body, string from, string to, long?emailSenderUserId) : this(subject, body, from, EmailsHelper.SplitAndTrimEmails(to), emailSenderUserId) { }
private IEnumerable <RecipientData> GetRecipients(ApplicationData application, IEnumerable <RoleType> roles) { foreach (var role in roles) { switch (role) { case RoleType.Admin: foreach ( var recipient in _admins.GetAll().Select(user => new RecipientData(user.Email, user.Language, RoleType.Admin))) { yield return(recipient); } break; case RoleType.Manager: foreach ( var recipient in _managers.GetAll().Select(user => new RecipientData(user.Email, user.Language, RoleType.Manager))) { yield return(recipient); } break; case RoleType.Sender: if (application.SenderId.HasValue) { var sender = _senders.Get(application.SenderId.Value); yield return(new RecipientData(sender.Email, sender.Language, role)); } break; case RoleType.Broker: if (application.AirWaybillId.HasValue) { var awb = _awbs.Get(application.AirWaybillId.Value).Single(); if (awb.BrokerId.HasValue) { var broker = _brokers.Get(awb.BrokerId.Value); yield return(new RecipientData(broker.Email, broker.Language, role)); } } break; case RoleType.Forwarder: var forwarder = _forwarders.Get(application.ForwarderId); yield return(new RecipientData(forwarder.Email, forwarder.Language, role)); break; case RoleType.Carrier: var carrier = _carriers.Get(application.CarrierId); yield return(new RecipientData(carrier.Email, carrier.Language, role)); break; case RoleType.Client: var client = _clients.Get(application.ClientId); foreach (var email in EmailsHelper.SplitAndTrimEmails(client.Emails)) { yield return(new RecipientData(email, client.Language, role)); } break; default: throw new InvalidOperationException("Unknown role " + role); } } }