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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            CourseDate lesson = lessonB.FindLesson(id);

            lessonB.RemoveLesson(lesson);

            return(RedirectToAction("Index"));
        }
Beispiel #8
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            CourseDate courseDate = await db.CourseDates.FindAsync(id);

            db.CourseDates.Remove(courseDate);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Beispiel #9
0
        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));
        }
Beispiel #10
0
        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));
        }
Beispiel #11
0
        // 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));
        }
Beispiel #12
0
        // 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));
        }
Beispiel #13
0
        // 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));
        }
Beispiel #14
0
        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);
        }
Beispiel #17
0
        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;
        }