/// <summary> /// adds a Course to DB (+ relations to trainers and Contents) /// </summary> /// <param name="jsonCourse"></param> /// <returns>the created Course as JSONCourseSend</returns> public JSONCourseSend PostCourse(JSONCourseReceive jsonCourse) { Course course = jsonConverter.ConvertJSONToCourse(jsonCourse); entities.Courses.Add(course); entities.SaveChanges(); // create trainer relations foreach (var trainerid in jsonCourse.TrainerArr) { relCourseTrainerController.CreateRelation(course.Id, trainerid); } // create content relations foreach (var content in jsonCourse.ContentArr) { relCourseContentController.CreateRelation(course.Id, content); } // create classroom relations foreach (var classroomId in jsonCourse.ClassroomArr) { relCourseClassroomController.CreateRelation(course.Id, classroomId); } // create subvention relations foreach (var subvention in jsonCourse.SubventionArr) { relCourseSubventionController.CreateRelation(course.Id, subvention); } return(jsonConverter.ConvertCourseToJSON(course)); }
public JSONCourseSend Post([FromBody] JSONCourseReceive course) { JSONCourseSend returnCourse = null; try { returnCourse = courseController.PostCourse(course); Response.StatusCode = 200; } catch (Exception ex) { Response.StatusCode = 500; Response.WriteAsync(ex.Message); } return(returnCourse); }
/// <summary> /// converts a JSONCourseReceive to Course /// </summary> /// <returns></returns> public Course ConvertJSONToCourse(JSONCourseReceive jsonCourse) { var course = new Course(); course.Title = jsonCourse.Title; course.CourseNumber = jsonCourse.CourseNumber; course.Description = jsonCourse.Description; course.Category = jsonCourse.Category; course.Start = DateTime.ParseExact(jsonCourse.Start.Replace('T', ' '), "yyyy-MM-dd HH:mm:ss", null); course.End = DateTime.ParseExact(jsonCourse.End.Replace('T', ' '), "yyyy-MM-dd HH:mm:ss", null); course.Unit = jsonCourse.Unit; course.Price = jsonCourse.Price; course.MaxParticipants = jsonCourse.MaxParticipants; course.MinParticipants = jsonCourse.MinParticipants; course.CreatedAt = DateTime.Now; course.ModifiedAt = DateTime.Now; return(course); }
/// <summary> /// updates an existing Course in DB /// </summary> /// <param name="courseId"></param> /// <param name="courseReceive"></param> /// <returns>the updated Course as JSONCourseSend</returns> public JSONCourseSend UpdateCourse(int courseId, JSONCourseReceive courseReceive) { if (entities.Courses.FirstOrDefault(x => x.Id == courseId) != null) { Course courseNew = jsonConverter.ConvertJSONToCourse(courseReceive); courseNew.Id = courseId; entities.Entry(entities.Courses.FirstOrDefault(x => x.Id == courseId)).CurrentValues.SetValues(courseNew); entities.SaveChanges(); // update trainer relations relCourseTrainerController.UpdateRelations(courseId, courseReceive.TrainerArr); // update content relations relCourseContentController.UpdateRelations(courseId, courseReceive.ContentArr); // update classroom relations relCourseClassroomController.UpdateRelations(courseId, courseReceive.ClassroomArr); // update subvention relations relCourseSubventionController.UpdateRelations(courseId, courseReceive.SubventionArr); return(jsonConverter.ConvertCourseToJSON(entities.Courses.FirstOrDefault(x => x.Id == courseId))); } else { throw new EntryCouldNotBeFoundException("The course you want to update could not be found in database"); } }