public async Task <IHttpActionResult> PostEducation(EducationBindingModel model) { var userId = this.User.Identity.GetUserId(); ApplicationUser currentUser = await this.Data.Users.All().FirstOrDefaultAsync(us => us.Id == userId); if (userId == null) { return(this.BadRequest("Invalid session token.")); } if (model == null) { return(this.BadRequest("Invalid input data")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var degree = await this.Data.Degrees.All() .FirstOrDefaultAsync(d => d.Name == model.DegreeName); if (degree == null) { var errorMessage = "Invalid degree name.Posiible degree names: " + "Juris Doctor (J.D.) ," + "Doctor of Medicine (M.D.) ," + "Master's of Business Administration (M.B.A) ," + "Engineer's Degree ," + "High School" + "Doctor of Philosophy (Ph.D.) ," + "Associate's Degree ," + "Master's Degree ," + "Bachelor's Degree ," + "Bachelor's Degree ,"; return(this.BadRequest(errorMessage)); } await this.Data.SaveChangesAsync(); Education education = new Education() { Name = model.Name, StartDate = model.StartDate, EndDate = model.EndDate, Grade = model.Grade, Location = model.Location, Users = new List <ApplicationUser>() { currentUser }, DegreeId = degree.Id, }; this.Data.Educations.Add(education); await this.Data.SaveChangesAsync(); return(this.StatusCode(HttpStatusCode.Created)); }
public void CreateOrUpdate(EducationBindingModel model) { using (var context = new Database()) { using (var transaction = context.Database.BeginTransaction()) { try { Education element = context.Educations.FirstOrDefault(rec => rec.Id == model.Id); if (model.Id.HasValue) { if (element == null) { throw new Exception("Элемент не найден"); } } else { element = new Education(); context.Educations.Add(element); } element.ClientId = model.ClientId; element.DateOfBuying = model.DateOfBuying; element.Duration = model.Duration; element.FinalCost = model.FinalCost; element.Status = model.Status; context.SaveChanges(); var groupCourses = model.EducationCourses .GroupBy(rec => rec.CourseId) .Select(rec => new { CourseId = rec.Key, Count = rec.Sum(r => r.Count) }); foreach (var groupCourse in groupCourses) { context.EducationCourses.Add(new EducationCourse { EducationId = element.Id, CourseId = groupCourse.CourseId, Count = groupCourse.Count }); context.SaveChanges(); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } }
public void SaveEducationPaymentsToPdfFile(string fileName, EducationBindingModel visit, string email) { var Visits = visitLogic.Read(visit).ToList(); string title = "Список курсов в период с " + visit.DateFrom.ToString() + " по " + visit.DateTo.ToString(); SaveToPdf.CreateDoc(new PdfInfo { FileName = fileName, Title = title, Educations = visitLogic.Read(visit).ToList(), Payments = GetEducationPayments(visit) }); SendMail(email, fileName, title); }
public Dictionary <int, List <PaymentViewModel> > GetEducationPayments(EducationBindingModel model) { var visits = visitLogic.Read(model).ToList(); Dictionary <int, List <PaymentViewModel> > payments = new Dictionary <int, List <PaymentViewModel> >(); foreach (var visit in visits) { var visitPayments = paymentLogic.Read(new PaymentBindingModel { EducationId = visit.Id }).ToList(); payments.Add(visit.Id, visitPayments); } return(payments); }
public void Delete(EducationBindingModel model) { using (var context = new Database()) { Education element = context.Educations.FirstOrDefault(rec => rec.Id == model.Id.Value); if (element != null) { context.Educations.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } }
public List <EducationViewModel> Read(EducationBindingModel model) { using (var context = new Database()) { return(context.Educations.Where(rec => rec.Id == model.Id || (rec.ClientId == model.ClientId) && (model.DateFrom == null && model.DateTo == null || rec.DateOfBuying >= model.DateFrom && rec.DateOfBuying <= model.DateTo)) .Select(rec => new EducationViewModel { Id = rec.Id, ClientId = rec.ClientId, Duration = rec.Duration, FinalCost = rec.FinalCost, DateOfBuying = rec.DateOfBuying, LeftSum = rec.FinalCost - context.Payments.Where(recP => recP.EducationId == rec.Id).Select(recP => recP.Sum).Sum(), Status = rec.Status, EducationCourses = GetVisitCourseViewModel(rec) }) .ToList()); } }
public ActionResult NewEducation(Guid profileId, EducationBindingModel form) { var profile = _uow.Profiles.FindById(profileId); profile.AddEducation(form.Specialization, form.ProgramDescription, form.EducationPlace, form.Duration, form.StartDate, form.EndDate); _uow.Save(); return RedirectToAction<UserProfileController>(c => c.Index()); }
public ActionResult NewEducation(Guid profileId) { var vm = new EducationBindingModel() { ProfileId = profileId, StartDate = new MonthYear(Month.Jan, DateTime.Now.Year), EndDate = new MonthYear(Month.Jan, DateTime.Now.Year) }; return View(vm); }