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);
 }
Esempio n. 3
0
        public async Task <IActionResult> GetForecast(string id)
        {
            var forecast = await _databaseAccessService.GetForecastAsync(id);

            return(Ok(_mapper.Map <RevenueForecastViewModel>(forecast)));
        }