async public Task RunAsync(MemCheckDbContext dbContext) { var user = dbContext.Users.Where(user => user.UserName == "Voltan").Single(); if (realCode) { var chronos = new List <double>(); for (int i = 0; i < 5; i++) { var realCodeChrono = Stopwatch.StartNew(); var userDecks = new GetDecksWithLearnCounts(dbContext).Run(user.Id); logger.LogInformation($"{userDecks.First().CardCount} cards"); logger.LogInformation($"{userDecks.First().Description}"); logger.LogInformation($"{userDecks.First().ExpiredCardCount} expired"); logger.LogInformation($"{userDecks.First().UnknownCardCount} unknown"); logger.LogInformation($"{userDecks.First().NextExpiryUTCDate} next expiry"); logger.LogInformation($"{userDecks.Count()} decks in {realCodeChrono.Elapsed}"); chronos.Add(realCodeChrono.Elapsed.TotalSeconds); } logger.LogInformation($"Average time: {chronos.Average()} seconds"); } else { var chrono = Stopwatch.StartNew(); //var logLines = await GetCardsToRepeatAsync(user.Id, deck.Id, new Guid[0], new Guid[0]); //chrono.Stop(); //foreach (var logLine in logLines) // logger.LogInformation(logLine); logger.LogInformation($"Ran in {chrono.Elapsed}"); } await Task.CompletedTask; }
public async Task <IActionResult> GetAllAsync() { try { var user = await userManager.GetUserAsync(HttpContext.User); if (user == null) { return(Ok(new GetAllViewModel(null, false, 0, new GetAllDeckViewModel[0], DateTime.UtcNow))); } var userDecks = new GetDecksWithLearnCounts(dbContext).Run(user.Id); var anythingToLearn = userDecks.Any(deck => deck.ExpiredCardCount > 0 || deck.UnknownCardCount > 0); var cardCount = userDecks.Sum(deck => deck.CardCount); return(Ok(new GetAllViewModel(user.UserName, anythingToLearn, cardCount, userDecks.Select(deck => new GetAllDeckViewModel(deck)), DateTime.UtcNow))); } catch (Exception e) { return(ControllerError.BadRequest(e, this)); } }