Пример #1
0
        public IHttpActionResult PutLearningPlan(int id, LearningPlanDTO item)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != item.Id)
            {
                return(BadRequest());
            }

            var currentUser     = AppUserManager.FindById(User.Identity.GetUserId());
            var coachingProgram = GetCoachingPrograms(currentUser)
                                  .FirstOrDefault(i => i.Id == item.Id);

            if (id != item.Id)
            {
                return(BadRequest("Learning Program Not Found"));
            }

            coachingProgram.LearningPlan = item.LearningPlan;
            AppDb.Entry(coachingProgram).Property(i => i.LearningPlan).IsModified = true;
            coachingProgram.UpdatedAt = DateTime.Now;
            AppDb.Entry(coachingProgram).Property(i => i.UpdatedAt).IsModified = true;

            try
            {
                AppDb.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CoachingProgramExists(id, currentUser))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #2
0
        public IHttpActionResult PostSendEmailWithPDF(int id, PostSendEmailWithPDFRequest request)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());
            var program     = GetCoachingPrograms(currentUser)
                              .FirstOrDefault(i => i.Id == id);
            var lp = new LearningPlanDTO
            {
                Id              = program.Id,
                LearningPlan    = program.LearningPlan,
                UpdatedAt       = program.UpdatedAt,
                CoachingProgram = program,
            };

            var emailHtml = ViewRenderer.RenderView("~/Views/Email/Send Learning Plan as PDF.cshtml",
                                                    new System.Web.Mvc.ViewDataDictionary {
                { "Program", program },
            });

            using (var fileStream = new MemoryStream())
            {
                var coacheeName = String.Format("{0} {1}", currentUser.FirstName, currentUser.LastName);
                var subject     = String.Format("right.now. Coaching Learning Plan for {0}", coacheeName);

                var html      = ViewRenderer.RenderView("~/Views/LearningPlanPDF.cshtml", lp);
                var converter = new SelectPdf.HtmlToPdf();
                converter.Options.MarginTop    = 35;
                converter.Options.MarginBottom = 35;
                var doc = converter.ConvertHtmlString(html);
                doc.Save(fileStream);
                fileStream.Position = 0;
                var attachment = new Attachment(fileStream, subject, "application/pdf");

                EmailSender.SendEmail(request.recipients, subject, emailHtml, attachment);
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }