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 <ApiResult> UpdateAccountAsync(AccountUpdateData accountUpdateData) { var result = default(ApiResult); var id = accountUpdateData.User.Id; var user = await users.GetByIdAsync(id); if (user == null) { var message = "User was not found"; var loggerMessage = $"User id = {id} was not found"; var errors = new string[] { message }; result = ApiResult.GetErrorResult(ApiResultStatus.NotFound, loggerMessage, message, errors); } else { if (accountUpdateData.IsEmailChanged) { await SendConfirmUpdateEmailMessageAsync(user, accountUpdateData.User.Email); } if (accountUpdateData.AnyFieldChanged) { var newUser = mapperWrapper.MapEntity(accountUpdateData.User); //user = UpdateHelper<SystemUser>.Update(context.Model, user, newUser); user = await users.UpdateAsync(user, newUser); //await context.SaveChangesAsync(); } var data = await GetAccountData(user); result = ApiResult.GetOkResult(ApiResultStatus.Ok, data: data); } return(result); }
public async Task <ApiResult> AddCourseToUserAsync(SystemUsersTrainingCoursesDTO userCourseDTO) { var courseId = userCourseDTO.TrainingCourseId; var userId = userCourseDTO.SystemUserId; var userCourse = mapperWrapper.MapEntity(userCourseDTO); var course = await courses.GetByIdAsync(courseId); var user = await users.GetByIdAsync(userId); var result = await GetAddCourseToUserResultAsync(user, course, userCourse); return(result); }