public async Task <ActionResult <GetResult> > Get([FromBody] GetRequest request) { if (!await _authManager.HasAppPermissionsAsync(Types.AppPermissions.SettingsAnalysisAdminLogin)) { return(Unauthorized()); } var lowerDate = TranslateUtils.ToDateTime(request.DateFrom); var higherDate = TranslateUtils.ToDateTime(request.DateTo, DateTime.Now); var successStats = await _statRepository.GetStatsAsync(lowerDate, higherDate, StatType.AdminLoginSuccess); var failureStats = await _statRepository.GetStatsAsync(lowerDate, higherDate, StatType.AdminLoginFailure); var getStats = new List <GetStat>(); var totalDays = (higherDate - lowerDate).TotalDays; for (var i = 0; i <= totalDays; i++) { var date = lowerDate.AddDays(i).ToString("M-d"); var success = successStats.FirstOrDefault(x => x.CreatedDate.HasValue && x.CreatedDate.Value.ToString("M-d") == date); var failure = failureStats.FirstOrDefault(x => x.CreatedDate.HasValue && x.CreatedDate.Value.ToString("M-d") == date); getStats.Add(new GetStat { Date = date, Success = success?.Count ?? 0, Failure = failure?.Count ?? 0 }); } var days = getStats.Select(x => x.Date).ToList(); var successCount = getStats.Select(x => x.Success).ToList(); var failureCount = getStats.Select(x => x.Failure).ToList(); return(new GetResult { Days = days, SuccessCount = successCount, FailureCount = failureCount }); }
public async Task <ActionResult <GetResult> > Get([FromBody] GetRequest request) { if (!await _authManager.HasAppPermissionsAsync(Types.AppPermissions.SettingsAnalysisUser)) { return(Unauthorized()); } var lowerDate = TranslateUtils.ToDateTime(request.DateFrom); var higherDate = TranslateUtils.ToDateTime(request.DateTo, DateTime.Now); var registerStats = await _statRepository.GetStatsAsync(lowerDate, higherDate, StatType.UserRegister); var loginStats = await _statRepository.GetStatsAsync(lowerDate, higherDate, StatType.UserLogin); var getStats = new List <GetStat>(); var totalDays = (higherDate - lowerDate).TotalDays; for (var i = 0; i <= totalDays; i++) { var date = lowerDate.AddDays(i).ToString("M-d"); var register = registerStats.FirstOrDefault(x => x.CreatedDate.HasValue && x.CreatedDate.Value.ToString("M-d") == date); var login = loginStats.FirstOrDefault(x => x.CreatedDate.HasValue && x.CreatedDate.Value.ToString("M-d") == date); getStats.Add(new GetStat { Date = date, Register = register?.Count ?? 0, Login = login?.Count ?? 0 }); } var days = getStats.Select(x => x.Date).ToList(); var registerCount = getStats.Select(x => x.Register).ToList(); var loginCount = getStats.Select(x => x.Login).ToList(); return(new GetResult { Days = days, RegisterCount = registerCount, LoginCount = loginCount }); }