public static AliasDetailsView ToDetailsView(this Alias alias) { if (alias == null) { return(null); } var detailsView = new AliasDetailsView { Id = alias.Id, Name = alias.Name, DateOfCreation = alias.DateOfCreation, Points = alias.Points, Time = alias.Time, Wpm = alias.Wpm, Accuracy = alias.Accuracy, Rank = alias.Rank, }; if (alias.Performances.Count == 0) { return(detailsView); } var topPerformancesQuery = from p in alias.Performances .OrderByDescending(p => p.Points) .Take(10) select p; var recentPerformancesQuery = from p in alias.Performances .OrderByDescending(p => p.DateOfCompletion) .Take(10) select p; var topPerformances = topPerformancesQuery.Select(perf => perf.ToListView()).ToList(); var recentPerformances = recentPerformancesQuery.Select(perf => perf.ToListView()).ToList(); detailsView.TopPerformances = topPerformances; detailsView.RecentPerformances = recentPerformances; return(detailsView); }
public async Task <bool> Patch(long id, AliasDetailsView alias) { var query = from a in _context.Aliases .Where(a => a.Id == id) select a; var dbAlias = await query.SingleOrDefaultAsync(); if (dbAlias == null) { return(false); } dbAlias.Points = alias.Points; dbAlias.Time = alias.Time; dbAlias.Wpm = alias.Wpm; dbAlias.Accuracy = alias.Accuracy; await _context.SaveChangesAsync(); return(true); }