コード例 #1
0
 private void ModifyCourseSteps(BrainWaveCourseUpload brainWaveCourseUpload)
 {
     var stepsInDb = _db.Steps.Where(step => step.CourseId == brainWaveCourseUpload.CourseId);
     int i = -1;
     brainWaveCourseUpload.CourseSteps.ForEach(step => {
         i++;
         var dbStepUpdate = stepsInDb.SingleOrDefault(dbStep => dbStep.Index == i);
         if (dbStepUpdate == null)
         {
             _db.Steps.Add(new BrainWaveCourseStep
             {
                 CourseId = brainWaveCourseUpload.CourseId,
                 Index = i,
                 Html = step.StepContent,
                 Title = step.Title
             });
         }
         else
         {
             dbStepUpdate.Html = step.StepContent;
             dbStepUpdate.Title = step.Title;
         }
         ModifyStepFiles(step, brainWaveCourseUpload.CourseId, i);
     });
     stepsInDb.Where(step => step.Index > i)
              .ToList()
              .ForEach(step => _db.Steps.Remove(step));
 }
コード例 #2
0
        private BrainWaveCourse UpdateBrainWaveCourseEntry(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            var courseInDb =
                _db.Courses.FirstOrDefault(course => course.CourseId == brainWaveCourseUpload.CourseId);

            if (courseInDb == null)
            {
                return null;
            }

            courseInDb.CourseAuthor = brainWaveCourseUpload.CourseAuthor;
            courseInDb.CourseDescription = brainWaveCourseUpload.CourseDescription;
            courseInDb.CourseEstimatedTime = brainWaveCourseUpload.CourseEstimatedTime;
            courseInDb.CourseName = brainWaveCourseUpload.CourseName;

            return courseInDb;
        }
コード例 #3
0
        private BrainWaveCourse ModifyCourse(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            ModifyCourseSteps(brainWaveCourseUpload);

            var courseInDb = UpdateBrainWaveCourseEntry(brainWaveCourseUpload);

            return courseInDb;
        }
コード例 #4
0
        private BrainWaveCourse AddCourse(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            var brainWaveCourse = AddBrainWaveCourseEntry(brainWaveCourseUpload);

            AddCourseStepsEntries(brainWaveCourse.CourseId, brainWaveCourseUpload.CourseSteps);

            _db.SaveChanges();

            return brainWaveCourse;
        }
コード例 #5
0
        private BrainWaveCourse AddBrainWaveCourseEntry(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            // Assemble the database object from the transfer object
            var brainWaveCourse = new BrainWaveCourse()
            {
                CourseName = brainWaveCourseUpload.CourseName,
                CourseDescription = brainWaveCourseUpload.CourseDescription,
                CourseEstimatedTime = brainWaveCourseUpload.CourseEstimatedTime,
                CourseAuthor = brainWaveCourseUpload.CourseAuthor
            };

            _db.Courses.Add(brainWaveCourse);
            _db.SaveChanges();

            return brainWaveCourse;
        }
コード例 #6
0
        public IHttpActionResult PutBrainWaveCourse(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var brainWaveCourse = AddCourse(brainWaveCourseUpload);

            try
            {
                _db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (BrainWaveCourseExists(brainWaveCourse.CourseId))
                {
                    return Conflict();
                }
                else
                {
                    throw;
                }
            }

            return CreatedAtRoute("DefaultAPI", new { courseId = brainWaveCourse.CourseId}, brainWaveCourse);
        }
コード例 #7
0
        public IHttpActionResult PostBrainWaveCourse(BrainWaveCourseUpload brainWaveCourseUpload)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            BrainWaveCourse brainWaveCourse = ModifyCourse(brainWaveCourseUpload);

            _db.SaveChanges();

            return CreatedAtRoute("DefaultApi", new { id = brainWaveCourse.CourseId }, brainWaveCourse);
        }