Exemple #1
0
        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"));
     }
 }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
                }
            }
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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)));
        }
Exemple #8
0
        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);
                }
            }
        }
Exemple #10
0
 public EmailMessage(string subject, string body, string from, string to, long?emailSenderUserId)
     : this(subject, body, from, EmailsHelper.SplitAndTrimEmails(to), emailSenderUserId)
 {
 }
Exemple #11
0
        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);
                }
            }
        }