コード例 #1
0
        public HttpResponseMessage MessageUser(EmailVm emailInfo)
        {
            bool           result = AccountHelper.Sendemail(emailInfo);
            HttpStatusCode status = result ? HttpStatusCode.OK : HttpStatusCode.Forbidden;

            return(Request.CreateResponse(status, result));
        }
コード例 #2
0
        public async Task <ActionResult> SendEmail(IFormCollection collection, EmailVm emailVm)
        {
            try
            {
                var employees = await adminService.GetEmployeesToEmail();

                switch (emailVm.SelectedOption)
                {
                case "all":
                {
                    await emailService.SendEmail(employees.Select(x => x.Email), emailVm.Subject, emailVm.Message);
                }
                break;

                case "position":
                    await emailService.SendEmail(employees.Where(x => x.Position == emailVm.Position).Select(y => y.Email), emailVm.Subject, emailVm.Message);

                    break;

                case "employee":
                    await emailService.SendEmail(new List <string> {
                        emailVm.Email
                    }, emailVm.Subject, emailVm.Message);

                    break;
                }


                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
コード例 #3
0
        public ActionResult CreateAddress(string addyType, int churchId)
        {
            AddressInfoVm info        = null;
            var           partialView = string.Empty;

            switch (addyType.ToLower())
            {
            case "address":
                info        = new AddressVm();
                partialView = "_Address.cshtml";
                break;

            case "email":
                info        = new EmailVm();
                partialView = "_Email.cshtml";
                break;

            case "phone":
                info        = new PhoneVm();
                partialView = "_Phone.cshtml";
                break;
            }

            info.Id         = new Random().Next(-100, -1);
            info.IdentityId = churchId;

            return(PartialView("/Views/Shared/AddressInfo/" + partialView, info));
        }
コード例 #4
0
        private static EmailListVm MapToEmailListVm(this List <Email> emails, List <KeyValuePair <int, string> > emailTypes)
        {
            Func <Email, bool>         func         = null;
            EmailListVm                emailListVm  = new EmailListVm();
            KeyValuePair <int, string> keyValuePair = emailTypes.FirstOrDefault <KeyValuePair <int, string> >();

            emailListVm.AdditionalEmails     = new List <EmailVm>();
            emailListVm.DefaultEmailTypeName = keyValuePair.Value;
            emailListVm.DefaultEmailTypeId   = new long?((long)keyValuePair.Key);
            if (emails != null && emails.Any <Email>())
            {
                Email leadTypeEmail = emails.FirstOrDefault <Email>((Email m) => {
                    long?emailTypeId = m.EmailTypeId;
                    long key         = (long)keyValuePair.Key;
                    return(emailTypeId.GetValueOrDefault() == key & emailTypeId.HasValue);
                });
                if (leadTypeEmail != null)
                {
                    emailListVm.DefaultEmailId = leadTypeEmail.Id;
                    emailListVm.DefaultEmail   = leadTypeEmail.Value;
                }
                List <Email>       emails1 = emails;
                Func <Email, bool> func1   = func;
                if (func1 == null)
                {
                    Func <Email, bool> func2 = (Email m) => {
                        long?id             = m.Id;
                        long?defaultEmailId = emailListVm.DefaultEmailId;
                        return(!(id.GetValueOrDefault() == defaultEmailId.GetValueOrDefault() & id.HasValue == defaultEmailId.HasValue));
                    };
                    Func <Email, bool> func3 = func2;
                    func  = func2;
                    func1 = func3;
                }
                foreach (Email email in emails1.Where <Email>(func1))
                {
                    EmailVm emailVm = new EmailVm()
                    {
                        Id          = email.Id,
                        EmailTypeId = email.EmailTypeId,
                        Email       = email.Value,
                        EmailTypes  = emailTypes.ToSelectListItemList(email.EmailTypeId)
                    };
                    emailListVm.AdditionalEmails.Add(emailVm);
                }
            }
            if (!emailListVm.AdditionalEmails.Any <EmailVm>())
            {
                EmailVm emailVm1 = new EmailVm()
                {
                    EmailTypes = emailTypes.ToSelectListItemList()
                };
                emailListVm.AdditionalEmails.Add(emailVm1);
            }
            return(emailListVm);
        }
コード例 #5
0
        public async Task <ApiResponse> ForgotPassword(EmailVm model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                throw new MyNotFoundException(ApiResponseDescription.USER_NOT_FOUND);
            }

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            byte[] tokenGeneratedBytes = Encoding.UTF8.GetBytes(token);
            var    codeEncoded         = WebEncoders.Base64UrlEncode(tokenGeneratedBytes);

            var url = "http://localhost:5000/forgotPassword" + "?email=" + user.Email + "&token=" + codeEncoded;

            SendEmail.Send(user.Email, "Password reset request", url);

            return(new ApiResponse(true));
        }
コード例 #6
0
        public async Task SendEmailAsync(EmailVm message)
        {
            // Plug in your email service here to send an email.
            string      schoolName   = "Designer's Choice";
            string      emailsetting = ConfigurationManager.AppSettings["GmailUserName"];
            MailMessage email        = new MailMessage(new MailAddress($"noreply{emailsetting}", $"(Daily Sales for {DateTime.Now.ToShortDateString()}, do not reply)"),
                                                       new MailAddress(message.Destination));

            email.Subject = message.Subject;
            email.Body    = message.Body;

            email.IsBodyHtml = true;

            using (var mailClient = new EmailSetUpServices())
            {
                //In order to use the original from email address, uncomment this line:
                email.From = new MailAddress(mailClient.UserName, $"(do not reply)@{schoolName}");

                await mailClient.SendMailAsync(email);
            }
        }
コード例 #7
0
        public async Task <List <EmailVm> > GetEmails(string email, DateTime?from, DateTime?to, EmailType type)
        {
            var emails = await _emailRepository.GetEmails(email, from, to, type);

            var result = new List <EmailVm>();

            foreach (var item in emails)
            {
                var newEmail = new EmailVm();
                newEmail.Bcc             = item.Bcc.GetContactsInStringFormat();
                newEmail.Body            = item.Body;
                newEmail.Cc              = item.Cc.GetContactsInStringFormat();
                newEmail.Date            = item.Date;
                newEmail.EmailStatus     = item.EmailStatus.ToString();
                newEmail.EmailType       = type;
                newEmail.From            = item.From.GetContactsInStringFormat();
                newEmail.HtmlBody        = item.HtmlBody;
                newEmail.Importance      = item.Importance;
                newEmail.InReplyTo       = item.InReplyTo;
                newEmail.MessageId       = item.MessageId;
                newEmail.Priority        = item.Priority;
                newEmail.ReadByMatcher   = item.ReadByMatcher;
                newEmail.ReadStatus      = item.ReadStatus.ToString();
                newEmail.ReplyTo         = item.ReplyTo.GetContactsInStringFormat();
                newEmail.ResentBcc       = item.ResentBcc.GetContactsInStringFormat();
                newEmail.ResentCc        = item.ResentCc.GetContactsInStringFormat();
                newEmail.ResentDate      = item.ResentDate;
                newEmail.ResentFrom      = item.ResentFrom.GetContactsInStringFormat();
                newEmail.ResentMessageId = item.ResentMessageId;
                newEmail.ResentReplyTo   = item.ResentReplyTo.GetContactsInStringFormat();
                newEmail.ResentSender    = item.ResentSender;
                newEmail.ResentTo        = item.ResentTo.GetContactsInStringFormat();
                newEmail.Subject         = item.Subject;
                newEmail.To              = item.To.GetContactsInStringFormat();
                newEmail.UniqueId        = item.UniqueId;
                newEmail.XPriority       = item.XPriority;
                result.Add(newEmail);
            }
            return(result);
        }
コード例 #8
0
        public IHttpActionResult Post(Korisnici k)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                string tempLozinka = k.LozinkaHash;
                k.LozinkaHash = AccountHelper.GenerateHash(tempLozinka, k.LozinkaSalt);
                ctx.Korisnici.Add(k);
                ctx.SaveChanges();
                EmailVm email = new EmailVm();
                email.To      = k.Email;
                email.Subject = "Dobrodošli u Express Salad Bar";
                email.Body    =
                    "Poštovani " + k.Ime + " " + k.Prezime + ", <br/><br/>" +
                    "Želimo Vam srdačnu dobrodošlicu na sistem Express Salad Bar." +
                    "<br/>Ukoliko imate bilo kakvih pitanja ili sugestija, molimo Vas da nas kontaktirate putem email adrese: [email protected]" +
                    "<br/><br/>Podaci sa kojim se prijavljujete na sistem: " +
                    "<br/><b>Email:</b> " + k.Email +
                    "<br/><b>Lozinka:</b> " + tempLozinka +
                    "<br/>Pripadate ulozi: Osoblje" +
                    "<br/>Molimo Vas nakon prijave da promijenite Vašu lozinku." +
                    "<br/><br/><br/>Lijep pozdrav," +
                    "<br/>Vaš Express Salad Bar.";
                AccountHelper.Sendemail(email);
            }
            catch (DbUpdateException e)
            {
                SqlException ex = e.InnerException.InnerException as SqlException;

                HttpResponseMessage error = ExceptionHandler.CreatedHttpResponseException(ExceptionHandler.HandleException(ex), HttpStatusCode.Conflict);
                throw new HttpResponseException(error);
            }


            return(Ok(k));
        }
コード例 #9
0
ファイル: PersonController.cs プロジェクト: ArkhamEng/Argos
        public ActionResult AddEmail()
        {
            var model = new EmailVm(AppCache.Instance);

            return(PartialView("_Email", model));
        }
コード例 #10
0
        public async Task <IActionResult> OrderEmails([FromRoute] int eventId, [FromServices] StandardEmailSender emailSender, [FromServices] IRegistrationService registrationService, [FromBody] EmailVm vm)
        {
            var registrations = await registrationService.GetRegistrationsWithOrders(eventId);

            var emailTasks = registrations.Select(r =>
            {
                var message = new EmailMessage
                {
                    Name    = r.ParticipantName,
                    Email   = r.User.Email,
                    Subject = vm.Subject,
                    Message = vm.Message
                };
                if (r.HasOrder)
                {
                    StringBuilder builder = new StringBuilder();
                    builder.AppendLine("<br>");
                    builder.AppendLine("<h4>Ordre</h4>");

                    r.Orders.ForEach(
                        (o) => o.OrderLines?.ForEach(
                            (line) => builder.AppendLine($"<br>{line.ProductName}")
                            )
                        );

                    message.Message += builder.ToString();
                }
                return(emailSender.SendStandardEmailAsync(message));
            });
            await Task.WhenAll(emailTasks);

            return(Ok());
        }
コード例 #11
0
        public async Task <ActionResult> NotifyByEmail()
        {
            string  productBuilder  = String.Empty;
            string  quantityBuilder = String.Empty;
            decimal total           = 0;

            var emailVm    = new EmailVm();
            var dailySales = await _db.Sales.Include(i => i.SaleDetails).Include(i => i.Customer).AsNoTracking()
                             .Where(x => x.SaleDate.Year == DateTime.Now.Year &&
                                    x.SaleDate.Month == DateTime.Now.Month &&
                                    x.SaleDate.Day == DateTime.Now.Day)
                             .OrderBy(o => o.SaleDate).ToListAsync();

            var    rows      = new StringBuilder();
            string SalesBody = "<strong> Hello Ma, </strong><br />" +
                               $"<strong>Daily Sales Report for {DateTime.Now.ToShortDateString()} </strong>" +
                               "<br > Please find can find breakup below " +
                               "<table border=\"1\">" +
                               "<tr>" +
                               "<th>Sales Rep Name</td>" +
                               "<th>Customer's Name</td>" +
                               "<th>Phone Number</td>" +
                               "<th>Items Bought</td>" +
                               "<th>Quantity Bought</td>" +
                               "<th>Amount</td>" +
                               "</tr>";

            rows.Append(SalesBody);
            foreach (Sale sales in dailySales)
            {
                foreach (var product in sales.SaleDetails.OrderBy(o => o.ProductId))
                {
                    productBuilder  += $"{product.Product.Name}, ";
                    quantityBuilder += ($"{product.Quantity}, ");
                    total           += product.Quantity * product.UnitPrice;
                }
                rows.Append("<tr>" +
                            $"<td>{sales.Customer.Email}</td>" +
                            $"<td>{sales.Customer.FullName}</td>" +
                            $"<td>{sales.Customer.PhoneNumber}</td>" +
                            $"<td>{productBuilder}</td>" +
                            $"<td>{quantityBuilder}</td>" +
                            $"<td>{total}</td>" +
                            "</tr>");

                productBuilder  = String.Empty;
                quantityBuilder = String.Empty;
                total           = 0;
            }
            rows.Append("</table>");

            var items = await _db.Products.AsNoTracking().Include(i => i.Category).ToListAsync();

            string itemLeft = "<br/><br ><br >" +
                              $"<strong>List of Product/Items that are less than three in Stock as at {DateTime.Now.ToShortDateString()}</strong>" +
                              "<br > you can find breakup below " +
                              "<table border=\"1\">" +
                              "<tr>" +
                              "<th>Product Name</td>" +
                              "<th>Section</td>" +
                              "<th>Product Category</td>" +
                              "<th>Quantity Remaining</td>" +
                              "</tr>";

            rows.Append(itemLeft);

            foreach (var product in items.Where(s => s.StockQuantity <= 3))
            {
                rows.Append("<tr>" +
                            $"<td>{product.Name}</td>" +
                            $"<td>{product.Category.StoreSection.SectionName}</td>" +
                            $"<td>{product.Category.Name}</td>" +
                            $"<td>{product.StockQuantity}</td>" +
                            "</tr>");
            }
            rows.Append("</table>");
            string finishItem = "<br/><br ><br >" +
                                $"<strong>List of Product/Items that is finished from Stock {DateTime.Now.ToShortDateString()}</strong>" +
                                "<br > you can find breakup below " +
                                "<table border=\"1\">" +
                                "<tr>" +
                                "<th>Product Name</td>" +
                                "<th>Section</td>" +
                                "<th>Product Category</td>" +
                                "<th>Quantity Remaining</td>" +
                                "</tr>";

            rows.Append(finishItem);

            foreach (var product in items.Where(s => s.StockQuantity <= 0))
            {
                rows.Append("<tr>" +
                            $"<td>{product.Name}</td>" +
                            $"<td>{product.Category.StoreSection.SectionName}</td>" +
                            $"<td>{product.Category.Name}</td>" +
                            $"<td>{product.StockQuantity}</td>" +
                            "</tr>");
            }
            rows.Append("</table>");

            emailVm.Body        = rows.ToString();
            emailVm.Destination = "*****@*****.**";
            emailVm.Subject     = $"Sales report for {DateTime.Now.ToShortDateString()} for Amudu Bello Office";

            await SendEmailAsync(emailVm);

            return(RedirectToAction("Index", "Home"));
        }
コード例 #12
0
 public async Task <IActionResult> ForgotPassword(EmailVm model) =>
 Ok(await _userService.ForgotPassword(model));
コード例 #13
0
        public HttpResponseMessage Naruci(NaruciVm naruci)
        {
            Korisnici isUserExists = AccountHelper.GetKorisnikById(naruci.KorisnikId);

            if (isUserExists == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, "Korisnik nije pronadjen"));
            }

            // Provjera korisnika da li je on povjerljiv, ukoliko nije ispisati odgovarajucu poruku o nepovjerljivosti
            if (!isUserExists.Povjerljiv)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Nepovjerljiv korisnik"));
            }



            MContext ctx = new MContext();

            List <KorpaStavke> conditionKs = ctx.KorpaStavke.Where(ks => ks.Korpa.Aktivna == true && ks.Korpa.KorisnikId == naruci.KorisnikId).ToList();

            // Provjera da li je korisnicka korpa prazna - radi sigurnosti na server strani
            if (conditionKs.Count <= 0)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Korisnicka korpa je prazna!"));
            }

            // Dobavljanje aktivne korpe korisnika
            Korpa korisnikKorpa = ctx.Korpa.FirstOrDefault(x => x.Aktivna && x.KorisnikId == naruci.KorisnikId);

            // korisnikKorpa.Sifra = KorpaHelper.GetSifra();

            // Preuzimanje zakazanog vremena dolaska
            korisnikKorpa.VrijemeDolaska = naruci.DatumDolaska;

            // Promijeniti status korpe u false
            korisnikKorpa.Aktivna = false;

            // oduzmi sastojcima na stanju
            List <int> SalataIds = ctx.KorpaStavke.Where(x => x.KorpaId == korisnikKorpa.Id).Select(y => y.SalataId).ToList();

            foreach (var i in SalataIds)
            {
                List <int> sastojciIds = ctx.SalataStavke.Where(x => x.SalataId == i).Select(y => y.SastojakId).ToList();
                foreach (var n in sastojciIds)
                {
                    Sastojci s = ctx.Sastojci.Where(x => x.Id == n).FirstOrDefault();
                    float    g = s.Gramaza;
                    s.Stanje = s.Stanje - g;
                    ctx.SaveChanges();
                }
            }


            // Snimiti promjene
            ctx.SaveChanges();

            /* Ukoliko je sve proslo uredu, potrebno je korisniku poslati email sa sifrom narudzbe */

            EmailVm mailVm = new EmailVm();

            mailVm.Body    = "Poštovani, </br>Uspješno ste izvršili narudžbu. Vaša šifra narudžbe je: " + korisnikKorpa.Sifra;
            mailVm.Subject = "Express Salad Bar";
            mailVm.To      = isUserExists.Email;
            // Slanje emaila sa sfirom narudjbe i odredjenim detaljima narudzbe
            AccountHelper.Sendemail(mailVm);

            return(Request.CreateErrorResponse(HttpStatusCode.OK, "Narudžba je uspješno realizovana, provjerite Vaš email"));
        }