public bool AddClassTimetable(ClassTimetableDto dto)
        {
            try
            {
                var classType = _context.ClassTypes.FirstOrDefault(x => x.Name == dto.ClassTypeName);

                if (classType == null)
                {
                    _logger.Warn($"ClassType name {dto.ClassTypeName} does not match anything found in database");
                    return(false);
                }

                var classTimetable = new ClassTimetable()
                {
                    Id          = Guid.NewGuid().ToString(),
                    ClassType   = classType,
                    ClassTypeId = classType.Id,
                    Weekday     = dto.Weekday,
                    StartTime   = new DateTime(2000, 1, 1, dto.StartHour, dto.StartMinutes, 0),
                    EndTime     = new DateTime(2000, 1, 1, dto.EndHour, dto.EndMinutes, 0)
                };

                _context.ClassTimetable.Add(classTimetable);
                _context.SaveChanges();

                _logger.Info($"ClassTimetable {classTimetable.ClassType.Name} starting at {classTimetable.StartTime.ToShortTimeString()} on {classTimetable.Weekday} has been successfully created");

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(false);
            }
        }
예제 #2
0
        public IHttpActionResult Post(ClassTimetable classTimetable)
        {
            var item = ClassTimetableRepo.Post(classTimetable);

            if (item != null)
            {
                return(Ok(item));
            }
            return(NotFound());
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,StartTime,EndTime,Weekday")] ClassTimetable classTimetable)
        {
            if (ModelState.IsValid)
            {
                db.Entry(classTimetable).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(classTimetable));
        }
        // GET: ClassTimetable/Delete/5
        public async Task <ActionResult> Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ClassTimetable classTimetable = await db.ClassTimetable.FindAsync(id);

            if (classTimetable == null)
            {
                return(HttpNotFound());
            }
            return(View(classTimetable));
        }
        public async Task <ActionResult> Create(ClassTimetableViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var classTimetable = new ClassTimetable();
                classTimetable.Id = Guid.NewGuid().ToString();
                classTimetable.ScheduledClassType = db.ScheduledClassTypes.FirstOrDefault(x => x.Id == viewModel.ScheduledClassId);
                classTimetable.StartTime          = new DateTime(2050, 1, 1, viewModel.StartTimeHours, viewModel.StartTimeMinutes, 0);
                classTimetable.EndTime            = new DateTime(2050, 1, 1, viewModel.EndTimeHours, viewModel.EndTimeMinutes, 0);
                classTimetable.Weekday            = viewModel.Weekday;
                db.ClassTimetable.Add(classTimetable);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
예제 #6
0
        public ClassTimetable Post(ClassTimetable timetable)
        {
            var item = timetable.GetDataObject();

            using (var dbContext = new SMSEntities())
            {
                if (item.Id == 0)
                {
                    dbContext.timetables.Add(item);
                    dbContext.SaveChanges();
                }
                else
                {
                    dbContext.Entry(item).State = EntityState.Modified;
                    dbContext.SaveChanges();
                }
            }
            timetable.Id = item.Id;
            return(timetable);
        }