public void AnalyzeSales(VkAnalyseSalesModel model, string accessToken, string userId) { AccessToken = accessToken; var listOfBuyers = model.ListOfBuyers != null?ConvertstringToList(model.ListOfBuyers).ToList() : null; //Список постов для анализа var analyzeModels = GetPostsForAnalyze(model.GroupId, model.StartDate, model.EndDate, listOfBuyers, false); if (listOfBuyers != null) { var result = _cohortAnalyser.Analyze(analyzeModels, model.Step, model.StartDate, model.EndDate, model.GroupId); _vkDbService.SaveAnalyzeOfSalesWithList(result, userId, model.Name, model.GroupId); } else { //Создание групп ретаргета для каждого поста if (analyzeModels.Any()) { var retargetsInfo = _vkSalesAnalysisService.CreateRetargets(analyzeModels, model.AccountId, model.ClientId, model.ExcludeTargetGroup, AccessToken).ToList(); var result = _cohortAnalyser.AnalyzeAcitivitySalesWithRetargetsInfo(retargetsInfo, model.Step, model.StartDate, model.EndDate, model.GroupId); _vkDbService.SaveAnalyzeOfSalesWithRetarget(result, userId, model.Name, model.GroupId); } } }
public ActionResult Analyze(VkAnalyseSalesModel model) { if (ModelState.IsValid) { var accessToken = GetCurrentUserAccessToken(); var userId = User.Identity.GetUserId(); BackgroundJob.Enqueue(() => _vkService.AnalyzeSales(model, accessToken, userId)); ViewBag.Message = "Когортный анализ продаж"; return(View("~/Views/Vk/InProgress.cshtml")); } return(RedirectToAction("Index")); }