public async Task <ApiResult> CreateCourseAsync(TrainingCourseDTO courseDTO) { var result = default(ApiResult); var course = await courses.GetEntityByConditionAsync(x => x.Title.Equals(courseDTO.Title)); if (course != null) { var message = "Course creation has failed"; var loggerMessage = $"Course with title {courseDTO.Title} already exists"; var errors = new string[] { loggerMessage }; result = ApiResult.GetErrorResult(ApiResultStatus.BadRequest, loggerMessage, message, errors); } else { var image = courseDTO.Cover; if (image.Contains("share/img/courses")) { courseDTO.Cover = imageWorker.CutImageToName(image); } course = mapperWrapper.MapEntity(courseDTO); await courses.CreateAsync(course); result = ApiResult.GetOkResult(ApiResultStatus.Ok, "Course created"); } return(result); }
public async Task AddAsync(string jobId, int courseId, int userId) { var courseJobUserData = new CourseJobUser { JobId = jobId, CourseId = courseId, UserId = userId }; await courseJobUser.CreateAsync(courseJobUserData); }
private async Task <ApiResult> GetAddCourseToUserResultAsync(SystemUser user, TrainingCourse course, SystemUsersTrainingCourses userCourse) { var result = default(ApiResult); var loggerMessage = "Adding course to user. Result:{0}"; var message = "{0} id = {1} was not found"; var errors = default(IEnumerable <string>); if (course == null) { message = string.Format(message, "Course", course.Id); loggerMessage = string.Format(loggerMessage, message); errors = new string[] { message }; result = ApiResult.GetErrorResult(ApiResultStatus.NotFound, loggerMessage, message, errors); } else if (user == null) { message = string.Format(message, "User", user.Id); loggerMessage = string.Format(loggerMessage, message); errors = new string[] { message }; result = ApiResult.GetErrorResult(ApiResultStatus.NotFound, loggerMessage, message, errors); } else { userCourse.SystemUser = user; userCourse.TrainingCourse = course; result = ApiResult.GetOkResult(ApiResultStatus.Ok); context.SystemUsersTrainingCourses.Add(userCourse); await usersCourses.CreateAsync(userCourse); var jobs = emailNotifyJob.CreateJobs(user, course, userCourse.StudyDate); foreach (var job in jobs) { await coursesJobsUsers.AddAsync(job, course.Id, user.Id); } } return(result); }