private async Task FillViewData(string userId) { // Fetch the user/customer var user = await _dbRead.SingleAsync <VODUser>(u => u.Id.Equals(userId)); Customer = new UserDTO { Id = user.Id, Email = user.Email }; // Fetch the user's courses and course ids _dbRead.Include <UserCourse>(); var userCourses = await _dbRead.GetAsync <UserCourse>(uc => uc.UserId.Equals(userId)); var usersCourseIds = userCourses.Select(c => c.CourseId).ToList(); Courses = userCourses.Select(c => c.Course).ToList(); // Fetch courses that the user doesn't already have access to var availableCourses = await _dbRead.GetAsync <Course>(uc => !usersCourseIds.Contains(uc.Id)); AvailableCourses = availableCourses.ToSelectList("Id", "Title"); }
public async Task <TDestination> SingleAsync <TSource, TDestination>(Expression <Func <TSource, bool> > expression, bool include = false) where TSource : class where TDestination : class { if (include) { _dbRead.Include <TSource>(); } var entities = await _dbRead.SingleAsync(expression); return(_mapper.Map <TDestination>(entities)); }
public async Task <bool> DeleteAsync <TSource>(Expression <Func <TSource, bool> > expression) where TSource : class { try { var entity = await _dbRead.SingleAsync <TSource>(expression); _dbWrite.Delete(entity); return(await _dbWrite.SaveChangesAsync()); } catch { return(false); } }
public async void Test1() { //_db.Include<Download>(); //_db.Include<Module, Course>(); var result1 = await _dbReadService.SingleAsync <Download>(d => d.Id.Equals(3)); var result2 = await _dbReadService.GetAsync <Download>(include : true); // Fetch all // Fetch all that matches the Lambda expression var result3 = await _dbReadService.GetAsync <Download>(d => d.ModuleId.Equals(1)); var result4 = await _dbReadService.AnyAsync <Download>(d => d.ModuleId.Equals(1)); // True if a record is found }
public async Task <Video> GetVideoAsync(string userId, int videoId) { //пользователь не может получить видео тех курсов которых у него нет var video = await _dbReadService.SingleAsync <Video>(v => v.Id.Equals(videoId), true); if (video == null) { return(default);
public async Task <Course> GetCourse(string userId, int courseId) { _db.Include <Course, Module>(); var userCourse = await _db.SingleAsync <UserCourse>(c => c.UserId.Equals(userId) && c.CourseId.Equals(courseId)); if (userCourse == null) { return(default);
public async Task <bool> DeleteAsync <TSource>(Expression <Func <TSource, bool> > expression) where TSource : class { try { //TODO: TWO Queries to delete entity???? //_dbWriteService.Delete(new Entity{Id = }) var entity = await _dbReadService.SingleAsync <TSource>(expression); _dbWriteService.Delete(entity); return(await _dbWriteService.SaveChangesAsync()); } catch (Exception ex) { return(false); } }
public async Task <Character> GetCharacter(string userId, int characterID) { _dbRead.Include <UserCharacter>(); _dbRead.Include <Character>(); var userCharacter = await _dbRead.SingleAsync <UserCharacter>(uc => uc.UserId.Equals(userId) && uc.CharacterId.Equals(characterID)); if (userCharacter == null) { return(default);
public async Task <IActionResult> OnPostRemoveAsync(int courseId, string userId) { try { var userCourse = await _dbReadService.SingleAsync <UserCourse>(uc => uc.UserId.Equals(userId) && uc.CourseId.Equals(courseId)); if (userCourse != null) { _dbWriteService.Delete(userCourse); await _dbWriteService.SaveChangesAsync(); } } catch { } await FillViewData(userId); return(Page()); }
public async Task <Boolean> DeleteAsync(int id) { try { //TODO: TWO Queries to delete entity???? //_dbWriteService.Delete(new Entity{Id = }) var entity = await _dbReadService.SingleAsync <Course>(d => d.Equals(id)); _dbWriteService.Delete(entity); return(await _dbWriteService.SaveChangesAsync()); } catch (Exception) { return(false); } }