public async Task <ActionResult <CourseDate> > PostCourseDate([FromBody] CourseDateDto courseDateDto) { Console.WriteLine("========== this is for test purposes ========="); Console.WriteLine(courseDateDto.StartDate); Console.WriteLine(courseDateDto.EndDate); Console.WriteLine(courseDateDto.ProfessorID); DateTime start = DateTime.ParseExact(courseDateDto.StartDate, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); DateTime end = DateTime.ParseExact(courseDateDto.EndDate, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); CourseDate @courseDate = new CourseDate { Title = courseDateDto.Title, Salle = courseDateDto.Salle, ProfessorID = courseDateDto.ProfessorID, Description = courseDateDto.Title, DateStart = start, DateEnd = end, TrainingID = courseDateDto.TrainingID, ModuleID = courseDateDto.ModuleID, SubjectID = courseDateDto.SubjectID, Type = courseDateDto.Title, }; _context.CourseDate.Add(@courseDate); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCourseDate", new { id = courseDate.ID }, courseDate)); }
public async Task <IActionResult> Edit(int id, [Bind("CourseDateId,Date,VenueId,ReservationInfo,Rider,CourseId")] CourseDate courseDate) { if (id != courseDate.CourseDateId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(courseDate); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CourseDateExists(courseDate.CourseDateId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CourseId"] = new SelectList(_context.Courses, "CourseId", "CourseId", courseDate.CourseId); ViewData["VenueId"] = new SelectList(_context.Venues, "VenueId", "VenueId", courseDate.VenueId); return(View(courseDate)); }
public ActionResult Create(CourseDate lesson) { DateTime firstCourse = lessonB.FirstCourseDate(lesson.CourseID); try { if (ModelState.IsValid && (firstCourse == default(DateTime) || firstCourse == lesson.FirstCourse)) { lessonB.AddLesson(lesson); return(RedirectToAction("Index")); } } catch (RetryLimitExceededException /* dex */) { //Log the error (uncomment dex variable name and add a line here to write a log.) ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator."); } if (firstCourse != default(DateTime) && firstCourse != lesson.FirstCourse) { ModelState.AddModelError("", "This course already have first date course : " + firstCourse.ToString("d")); PopulateCourseDropDownList(lesson.CourseDateID); return(View(lesson)); } PopulateCourseDropDownList(lesson.CourseDateID); return(View(lesson)); }
public async Task <ActionResult <CourseDate> > AddNewCourseDate([FromBody] CourseDate courseDate) { try { if (courseDate == null) { return(BadRequest()); } if (!await _unitOfWork.Courses.IsExist(c => c.CourseID == courseDate.CourseID)) { return(NotFound()); } int countCourseDates = await _unitOfWork.CourseDates.CountCourseDate((int)courseDate.CourseID); if (countCourseDates >= 15) { return(BadRequest()); } await _unitOfWork.CourseDates.Create(courseDate); await _unitOfWork.CommitAsync(); return(CreatedAtAction(nameof(AddNewCourseDate), new { Id = courseDate.CourseDateID }, courseDate)); } catch (Exception) { _unitOfWork.Dispose(); return(BadRequest()); } }
public async Task <IActionResult> PutCourseDate(int id, CourseDate courseDate) { if (id != courseDate.ID) { return(BadRequest()); } _context.Entry(courseDate).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CourseDateExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task AddCourseDates_updates_CourseDate_with_correct_properties() { var course = await Context.Courses.FindAsync(1); var courseDates = await Context.CourseDates.ToListAsync(); var model = new CourseViewModel(course, courseDates, "http://www.completevocaltraining.nl"); var date = new CourseDate { CourseDateId = 1, Date = new DateTime(2080, 01, 03), VenueId = 2, Venue = await Context.Venues.FindAsync(2), CourseId = 1, Course = course, ReservationInfo = "Reserveringsnr: 1335" }; model.CourseDates[1] = date; await Controller.AddCourseDates(1, model); var result = await Resultcontext.CourseDates .FirstOrDefaultAsync(cd => cd.CourseDateId == 1); result.As <CourseDate>().Should().BeEquivalentTo(date, options => options.Excluding(cd => cd.Course)); }
public ActionResult DeleteConfirmed(int id) { CourseDate lesson = lessonB.FindLesson(id); lessonB.RemoveLesson(lesson); return(RedirectToAction("Index")); }
public async Task <ActionResult> DeleteConfirmed(int id) { CourseDate courseDate = await db.CourseDates.FindAsync(id); db.CourseDates.Remove(courseDate); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "CourseDateID,FirstCourse,Day,StartHour,Duration,CourseID")] CourseDate courseDate) { if (ModelState.IsValid) { db.Entry(courseDate).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.CourseID = new SelectList(db.Courses, "CourseID", "Title", courseDate.CourseID); return(View(courseDate)); }
public async Task <IActionResult> Create([Bind("CourseDateId,Date,VenueId,ReservationInfo,Rider,CourseId")] CourseDate courseDate) { if (ModelState.IsValid) { _context.Add(courseDate); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CourseId"] = new SelectList(_context.Courses, "CourseId", "CourseId", courseDate.CourseId); ViewData["VenueId"] = new SelectList(_context.Venues, "VenueId", "VenueId", courseDate.VenueId); return(View(courseDate)); }
// GET: CourseDates/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseDate courseDate = await db.CourseDates.FindAsync(id); if (courseDate == null) { return(HttpNotFound()); } return(View(courseDate)); }
// GET: CourseDates/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseDate courseDate = await db.CourseDates.FindAsync(id); if (courseDate == null) { return(HttpNotFound()); } ViewBag.CourseID = new SelectList(db.Courses, "CourseID", "Title", courseDate.CourseID); return(View(courseDate)); }
// GET: Lesson/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseDate lesson = lessonB.FindLesson(id); if (lesson == null) { return(HttpNotFound()); } return(View(lesson)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseDate lesson = lessonB.FindLesson(id); if (lesson == null) { return(HttpNotFound()); } PopulateCourseDropDownList(lesson.CourseDateID); return(View(lesson)); }
public async Task AddCourseDates_adds_CourseDate() { var course = await Context.Courses.FindAsync(2); var courseDates = await Context.CourseDates.ToListAsync(); var model = new CourseViewModel(course, courseDates, "http://www.completevocaltraining.nl"); var date = new CourseDate { Date = new DateTime(2080, 01, 03), Venue = await Context.Venues.FindAsync(2), Course = await Context.Courses.FindAsync(2), ReservationInfo = "Reserveringsnr: 1335" }; model.CourseDates.Add(date); await Controller.AddCourseDates(2, model); Resultcontext.CourseDates.Should().HaveCount(3, because: "we seeded the Db with 2 CourseDates"); }
public async Task AddCourseDates_adds_CourseDate_with_correct_properties() { var course = await Context.Courses.FindAsync(2); var courseDates = await Context.CourseDates.ToListAsync(); var model = new CourseViewModel(course, courseDates, "http://www.completevocaltraining.nl"); var date = new CourseDate { Date = new DateTime(2080, 01, 03), Venue = await Context.Venues.FindAsync(2), Course = await Context.Courses.FindAsync(2), ReservationInfo = "Reserveringsnr: 1335" }; model.CourseDates.Add(date); await Controller.AddCourseDates(2, model); var result = await Controller.Details(2); result.As <ViewResult>().Model.As <Course>().CourseDates .FirstOrDefault().Should().BeEquivalentTo(date); }
public ActionResult EditPost(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CourseDate lessonToUpdate = lessonB.FindLesson(id); DateTime firstCourse = lessonB.FirstCourseDate(lessonToUpdate.CourseID); if (TryUpdateModel(lessonToUpdate, "", new string[] { "FirstCourse", "Day", "StartHour", "Duration" }) && (firstCourse == default(DateTime) || firstCourse == lessonToUpdate.FirstCourse)) { try { lessonB.SaveDataBase(); return(RedirectToAction("Index")); } catch (RetryLimitExceededException /* dex */) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator."); } } if (firstCourse != default(DateTime) && firstCourse != lessonToUpdate.FirstCourse) { ModelState.AddModelError("", "This course already have first date course : " + firstCourse.ToString("d")); PopulateCourseDropDownList(lessonToUpdate.CourseDateID); return(View(lessonToUpdate)); } PopulateCourseDropDownList(lessonToUpdate.CourseDateID); return(View(lessonToUpdate)); }
public async Task AddCourseDates_adds_CourseDate_to_correct_course(int id, int expected) { var course = await Context.Courses.FindAsync(id); var courseDates = await Context.CourseDates.ToListAsync(); var model = new CourseViewModel(course, courseDates, "http://www.completevocaltraining.nl"); var date = new CourseDate { Date = new DateTime(2080, 01, 03), Venue = await Context.Venues.FindAsync(2), Course = await Context.Courses.FindAsync(id), ReservationInfo = "Reserveringsnr: 1335" }; model.CourseDates.Add(date); await Controller.AddCourseDates(id, model); var result = await Controller.Details(id); result.As <ViewResult>().Model.As <Course>().CourseDates .Should().HaveCount(expected); }
public static void SeedCourses(this ModelBuilder modelBuilder) { var courses = new Course[] { new Course() { Id = 1, Name = "Cutting trees, the ins and outs" }, new Course() { Id = 2, Name = "CSS and you - a love story" }, new Course() { Id = 3, Name = "Baking mud cakes using actual mud" }, new Course() { Id = 4, Name = "Christmas eve - myth or reality?" }, new Course() { Id = 5, Name = "LEGO colors through time" }, }; modelBuilder.Entity <Course>().HasData(courses); var courseDates = new CourseDate[] { new CourseDate() { Id = 1, AvailiabilityDate = new DateTime(2017, 1, 1), CourseId = 1 }, new CourseDate() { Id = 2, AvailiabilityDate = new DateTime(2017, 10, 31), CourseId = 1 }, new CourseDate() { Id = 3, AvailiabilityDate = new DateTime(2017, 5, 25), CourseId = 2 }, new CourseDate() { Id = 4, AvailiabilityDate = new DateTime(2017, 5, 26), CourseId = 2 }, new CourseDate() { Id = 5, AvailiabilityDate = new DateTime(2017, 5, 27), CourseId = 2 }, new CourseDate() { Id = 6, AvailiabilityDate = new DateTime(2017, 1, 1), CourseId = 3 }, new CourseDate() { Id = 7, AvailiabilityDate = new DateTime(2018, 12, 10), CourseId = 3 }, new CourseDate() { Id = 8, AvailiabilityDate = new DateTime(2017, 4, 1), CourseId = 3 }, new CourseDate() { Id = 9, AvailiabilityDate = new DateTime(2017, 12, 24), CourseId = 4 }, new CourseDate() { Id = 10, AvailiabilityDate = new DateTime(2018, 12, 24), CourseId = 4 }, new CourseDate() { Id = 11, AvailiabilityDate = new DateTime(2019, 12, 24), CourseId = 4 }, new CourseDate() { Id = 12, AvailiabilityDate = new DateTime(2017, 6, 30), CourseId = 5 } }; modelBuilder.Entity <CourseDate>().HasData(courseDates); }
public List<Course> GetCourseList(DateTime startDate, DateTime endDate) { var result = new List<Course>(); MySqlConnection connection = new MySqlConnection(Properties.Settings.Default.CourseDbConnectionString); MySqlConnection priceConnection = new MySqlConnection(Properties.Settings.Default.CourseDbConnectionString); MySqlCommand command = connection.CreateCommand(); command.CommandText = @"SELECT l.id, t.veranstalter, f.fachbereich ressort, t.beginn start_t, t.von, t.ende ende_t, t.bis, t.ort ort_t,l.inhalt,l.untertitel, l.voraussetzung, l.start start_l, l.ende ende_l, l.lehrgang_nr,l.titel,l.ort ort_l, t.meldeschluss meldeschluss_t, l.meldeschluss meldeschluss_l , l.zielgruppe, l.ziel, l.leiter, l.fachbereich FROM `tbl_lehrgang` l join `tbl_fachbereich` f on l.fachbereich = f.id left outer join `tbl_termine` t on t.lehrgang = l.id where t.beginn > @startdate and t.beginn < @enddate order by titel,untertitel,inhalt,lehrgang_nr"; command.Parameters.AddWithValue("@startdate", startDate); command.Parameters.AddWithValue("@enddate", endDate); MySqlDataReader Reader; connection.Open(); Reader = command.ExecuteReader(); Course course = new Course(); CourseDate courseDate= new CourseDate(); string courseNo = string.Empty; string TitleSubtitleDesc = string.Empty; while (Reader.Read()) { if (IsNewCourseDate(Reader, courseNo)) { if (IsNewCourse(Reader, TitleSubtitleDesc)) { // general information course = new Course(); GetHost(Reader, course); course.Department = Reader.GetString("ressort"); course.Title = Reader.GetString("titel"); course.Subtitle = Reader.GetString("untertitel"); course.Description = Reader.GetString("inhalt"); course.Category = (CourseCategory)Reader.GetInt32("fachbereich"); course.Requirements = Reader.GetString("voraussetzung"); course.TargetAudience = Reader.GetString("zielgruppe"); course.AP = Reader.GetString("ziel").Contains("AP Fortbildung: Ja"); course.Juleica = Reader.GetString("ziel").Contains("JuLeiCa Fortbildung: Ja"); course.Prices = GetPriceData(priceConnection, Reader.GetInt32("id")); result.Add(course); TitleSubtitleDesc = course.Title + course.Subtitle + course.Description; } courseDate = new CourseDate(); courseDate.CourseNo = Reader.GetString("lehrgang_nr"); courseDate.CheckinDeadline = Reader.GetDateTime("meldeschluss_l"); courseDate.Supervisor = Reader.GetString("Leiter"); courseDate.CheckinDeadline = Reader.GetDateTime("meldeschluss_l"); courseDate.Id = Reader.GetInt32("id"); course.Dates.Add(courseDate); courseNo = courseDate.CourseNo; log.DebugFormat("Lehrgang {0} verarbeitet", courseDate.Id); } var part = new CoursePart() { Start = Reader.GetDateTime("start_t"), End = Reader.GetDateTime("ende_t"), Location = Reader.GetString("ort_t") }; part.Start = part.Start.Date + DateTime.ParseExact(Reader.GetString("von"), "HH:mm:ss", CultureInfo.InvariantCulture).TimeOfDay; part.End = part.End.Date + DateTime.ParseExact(Reader.GetString("bis"), "HH:mm:ss", CultureInfo.InvariantCulture).TimeOfDay; courseDate.Parts.Add(part); } course.Dates.Add(courseDate); result.Add(course); return result; }