public async Task <ApiResult> GetByUserIdAsync(int id) { var userCourses = await usersCourses.GetEntitiesByCondition(x => x.SystemUserId.Equals(id)) .Include(x => x.TrainingCourse) .ToArrayAsync(); var data = mapperWrapper.MapModels(userCourses); var result = ApiResult.GetOkResult(ApiResultStatus.Ok, data: data); return(result); }
public async Task <ApiResult> DeleteAsync(int courseId, int userId) { var result = default(ApiResult); var message = "Unsabscribe has failed"; var errors = new string[] { $"{message}. Contact administrator, please" }; var loggerMessage = $"{message}. CourseId = {courseId}, UserId = {userId}"; var courseJobs = await courseJobUser.GetEntitiesByCondition(x => x.CourseId.Equals(courseId) && x.UserId.Equals(userId)) .ToArrayAsync(); if (!courseJobs.Any()) { result = ApiResult.GetErrorResult(ApiResultStatus.BadRequest, loggerMessage, message, errors); } else { var removeJobResult = false; foreach (var courseJob in courseJobs) { removeJobResult = backgroundJobClient.Delete(courseJob.JobId); if (removeJobResult) { await courseJobUser.DeleteAsync(courseJob); } else { result = ApiResult.GetErrorResult(ApiResultStatus.BadRequest, loggerMessage, message, errors); return(result); } } var userCourse = await usersCourses.GetEntityByConditionAsync(x => x.SystemUserId.Equals(userId) && x.TrainingCourseId.Equals(courseId)); await usersCourses.DeleteAsync(userCourse); result = ApiResult.GetOkResult(ApiResultStatus.Ok); } return(result); }