private async Task UpdateStatistics(YearStatistics yearStatistics, MonthStatistics monthStatistics, DayStatistics dayStatistics) { ApplicationDbContext.YearStatistics.Update(yearStatistics); ApplicationDbContext.MonthStatistics.Update(monthStatistics); ApplicationDbContext.DayStatistics.Update(dayStatistics); await ApplicationDbContext.SaveChangesAsync(); }
public async Task RegisterProfits(decimal profits) { DateTime currentDate = DateTime.Now; YearStatistics yearStatistics = await FindOrCreateStatistics(); MonthStatistics monthStatistics = yearStatistics.MonthStatistics.FirstOrDefault(m => m.Date.Month == currentDate.Month); DayStatistics dayStatistics = monthStatistics.DayStatistics.FirstOrDefault(d => d.Date.Day == currentDate.Day); yearStatistics.Profits += profits; monthStatistics.Profits += profits; dayStatistics.Profits += profits; await UpdateStatistics(yearStatistics, monthStatistics, dayStatistics); }
public async Task RegisterNewClientVisited() { DateTime currentDate = DateTime.Now; YearStatistics yearStatistics = await FindOrCreateStatistics(); MonthStatistics monthStatistics = yearStatistics.MonthStatistics.FirstOrDefault(m => m.Date.Month == currentDate.Month); DayStatistics dayStatistics = monthStatistics.DayStatistics.FirstOrDefault(d => d.Date.Day == currentDate.Day); ++yearStatistics.ClientsVisited; ++monthStatistics.ClientsVisited; ++dayStatistics.ClientsVisited; await UpdateStatistics(yearStatistics, monthStatistics, dayStatistics); }
private async Task <YearStatistics> FindOrCreateStatistics() { DateTime currentDate = DateTime.Now; YearStatistics yearStatistics = await GetYearStatistics(currentDate.Year); if (yearStatistics is null) { yearStatistics = new YearStatistics { Year = currentDate.Year, Date = currentDate }; ApplicationDbContext.YearStatistics.Add(yearStatistics); await ApplicationDbContext.SaveChangesAsync(); } MonthStatistics monthStatistics = yearStatistics.MonthStatistics.FirstOrDefault(m => m.Date.Month == currentDate.Month); if (monthStatistics is null) { monthStatistics = new MonthStatistics { Date = currentDate }; yearStatistics.MonthStatistics.Add(monthStatistics); ApplicationDbContext.YearStatistics.Update(yearStatistics); await ApplicationDbContext.SaveChangesAsync(); } DayStatistics dayStatistics = monthStatistics.DayStatistics.FirstOrDefault(d => d.Date.Day == currentDate.Day); if (dayStatistics is null) { dayStatistics = new DayStatistics { Date = currentDate }; monthStatistics.DayStatistics.Add(dayStatistics); ApplicationDbContext.MonthStatistics.Update(monthStatistics); await ApplicationDbContext.SaveChangesAsync(); } return(yearStatistics); }
public async Task <ActionResult <YearStatisticsViewModel> > CurrentYear() { YearStatistics yearStatistics = await _statisticsRepository.GetYearStatistics(DateTime.Now.Year); return(_mapper.Map <YearStatisticsViewModel>(yearStatistics)); }