Esempio n. 1
0
        public async Task SendAsync(User sender, User recipient, SalesReport report)
        {
            var message = MailHelper.CreateSingleEmail(
                new EmailAddress(sender.Email, $"{sender.FirstName} {sender.LastName}"),
                new EmailAddress(recipient.Email, $"{recipient.FirstName} {recipient.LastName}"),
                "Raport sprzedaży",
                report.ToString(),
                report.ToHtml());


            logger.Info($"Wysyłanie raportu do {recipient.FirstName} {recipient.LastName} <{recipient.Email}>...");

            var response = await client.SendEmailAsync(message);

            if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
            {
                /// ReportSent?.Invoke(this, new ReportSentEventArgs(DateTime.Now));

                logger.Info($"Raport został wysłany.");
            }
            else
            {
                logger.Error($"Błąd podczas wysyłania raportu.");

                throw new ApplicationException("Błąd podczas wysyłania raportu.");
            }
        }
Esempio n. 2
0
        private static SalesReport Create(IEnumerable <Order> orders)
        {
            SalesReport salesReport = new SalesReport();

            salesReport.TotalAmount = orders.Sum(o => o.Total);

            return(salesReport);
        }
Esempio n. 3
0
        public SalesReport Build()
        {
            SalesReport salesReport = Create(orders);

            salesReport.Title = title;

            return(salesReport);
        }
Esempio n. 4
0
        public async Task SendSalesReportEmailAsync(DateTime date)
        {
            var orders = orderService.Get(date.AddDays(-7), date);

            if (!orders.Any())
            {
                return;
            }

            salesReportBuilder.AddOrders(orders);
            salesReportBuilder.AddOrders(orders);

            SalesReport report = salesReportBuilder.Build();

            // dotnet add package SendGrid
            SendGridClient client = new SendGridClient(apikey);


            var recipients = userService.GetBosses();

            recipients = recipients.Where(r => !string.IsNullOrEmpty(r.Email));

            var sender = userService.GetBot();

            foreach (var recipient in recipients)
            {
                var message = MailHelper.CreateSingleEmail(
                    new EmailAddress(sender.Email, $"{sender.FirstName} {sender.LastName}"),
                    new EmailAddress(recipient.Email, $"{recipient.FirstName} {recipient.LastName}"),
                    "Raport sprzedaży",
                    report.ToString(),
                    report.ToHtml());


                Logger.Info($"Wysyłanie raportu do {recipient.FirstName} {recipient.LastName} <{recipient.Email}>...");

                var response = await client.SendEmailAsync(message);

                if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
                {
                    ReportSent?.Invoke(this, new ReportSentEventArgs(DateTime.Now));

                    Logger.Info($"Raport został wysłany.");
                }
                else
                {
                    Logger.Error($"Błąd podczas wysyłania raportu.");

                    throw new ApplicationException("Błąd podczas wysyłania raportu.");
                }
            }
        }
        public SalesReport Create()
        {
            if (!orders.Any())
            {
                throw new ApplicationException();
            }

            SalesReport salesReport = new SalesReport();

            salesReport.TotalAmount = orders.Sum(o => o.Total);

            return(salesReport);
        }
Esempio n. 6
0
        public async Task SendSalesReportEmailAsync(DateTime date)
        {
            var orders = orderService.Get(date.AddDays(-7), date);

            if (!orders.Any())
            {
                return;
            }

            salesReportBuilder.AddOrders(orders);

            SalesReport report = salesReportBuilder.Build();

            var sender = userService.GetBot();

            var recipients = userService.GetBosses();

            await mailService.Send(report, sender, recipients);
        }
Esempio n. 7
0
        public async Task SendSalesReportEmailAsync(DateTime date)
        {
            var criteria = new OrderSearchCriteria(date.AddDays(-7), date);

            var orders = orderService.Get(criteria);

            if (!orders.Any())
            {
                return;
            }

            salesReportBuilder.Add(orders);

            SalesReport report = salesReportBuilder.Create();

            IEnumerable <User> recipients = userService.GetBossesRecipients();

            var sender = userService.GetBot();

            foreach (var recipient in recipients)
            {
                await client.SendAsync(sender, recipient, report);
            }
        }