public async Task <RevenueForecasts?> GetRevenueForecastAsync(FullUserInfo fullUserInfo) { var cashedUserInfo = _mapper.Map <CachedUserInfo>(fullUserInfo); var hash = _hashingService.GetHash(cashedUserInfo); var forecastId = await _redisAccessService.GetAsync(await hash); if (forecastId == null) { return(null); } var actualUserInfo = await _databaseAccessService.GetUserInfoByForecastId(forecastId); var actualCachedUserInfo = _mapper.Map <CachedUserInfo>(actualUserInfo); if (actualCachedUserInfo.Equals(cashedUserInfo)) { return(await _databaseAccessService.GetForecastAsync(forecastId)); } return(null); }
public async Task ExportForecast(ExportRequestBody requestBody) { var chartUrls = _chartService.GetChartUrl(await _databaseAccessService.GetForecastAsync(requestBody.RevenueForecastId)); var message = GetHtmlMessage(await chartUrls, requestBody); await _mailingService.SendMessageAsync(await message, requestBody.Email); }
public async Task <IActionResult> GetForecast(string id) { var forecast = await _databaseAccessService.GetForecastAsync(id); return(Ok(_mapper.Map <RevenueForecastViewModel>(forecast))); }