private void SendEmailAdmin(IList <Book> booksLate, BookTotalStatusDTO status)
        {
            var htmlTable = "<TABLE border=1 cellpadding=3 cellspacing=0><TR bgcolor='#ffff00'><TD><b>LIVRO</b></TD><TD><b>DIAS NA <BR>VITRINE</b></TD><TD><b>TOTAL <br>INTERESSADOS</b></TD><TD><b>DOADOR</b></TD><TD><b>FACILITADOR</b></TD><TD><b>ANOTAÇÕES</b></TD></TR>";

            foreach (var book in booksLate)
            {
                var notes = book.FacilitatorNotes?.Replace("\n", "<BR>");

                htmlTable += string.Format("<TR><TD>{0}<BR>{1}</TD><TD>{2}</TD><TD>{3}</TD><TD>{4}<BR>{5}<BR>{6}<BR>{7}</TD><TD>{8}<BR>{9}<BR>{10}<BR>{11}</TD><TD>{12}</TD></TR>",
                                           book.Title,
                                           book.Status,
                                           book.DaysInShowcase(),
                                           book.TotalInterested(),
                                           book.User.Name, book.User.Email, book.User.Phone, book.User.Linkedin,
                                           book.UserFacilitator.Name, book.UserFacilitator.Email, book.UserFacilitator.Phone, book.UserFacilitator.Linkedin,
                                           notes);
            }

            htmlTable += "</TABLE>";

            var emailSubject = "SHAREBOOK - STATUS DO DIA.";

            var vm = new {
                htmlTable,
                totalWaitingApproval = status.TotalWaitingApproval,
                totalLate            = booksLate.Count,
                totalOk = status.TotalOk
            };
            var emailBodyHTML = _emailTemplate.GenerateHtmlFromTemplateAsync("LateDonationNotification", vm).Result;

            _emailService.SendToAdmins(emailBodyHTML, emailSubject).Wait();
        }
Beispiel #2
0
        public BookTotalStatusDTO GetTotalStatus()
        {
            var groupedStatus = _repository.Get()
                                .GroupBy(b => b.Status)
                                .Select(g => new
            {
                Status = g.Key,
                Total  = g.Count()
            })
                                .ToList();

            var status = new BookTotalStatusDTO();

            status.TotalWaitingApproval = groupedStatus.Where(g => g.Status == BookStatus.WaitingApproval).Any()
                ? groupedStatus.Where(g => g.Status == BookStatus.WaitingApproval).FirstOrDefault().Total
                : 0;

            status.TotalOk = groupedStatus
                             .Where(g => g.Status == BookStatus.WaitingSend || g.Status == BookStatus.Sent || g.Status == BookStatus.Received)
                             .Sum(g => g.Total);

            return(status);
        }