public async Task <string> setJsonData(string json, string namePage, string key, string nameData) { if (string.IsNullOrEmpty(json)) { return("Não recebemos o valor dos insigths."); } if (string.IsNullOrEmpty(namePage) && string.IsNullOrEmpty(key)) { return("usuario e chave não encontrados."); } try { InfluencersMetrics.MongoRep repMongo = new InfluencersMetrics.MongoRep("MetricasInsights", _settings, key); if (nameData == "Usuario") { var js = JsonConvert.DeserializeObject <webMetrics.Models.Graph.Usuario>(json); await repMongo.GravarOne <webMetrics.Models.Graph.Usuario>(js); } if (nameData == "Media") { var js = JsonConvert.DeserializeObject <webMetrics.Models.Graph.Media>(json); await repMongo.GravarOne <webMetrics.Models.Graph.Media>(js); } if (nameData == "tags") { var js = JsonConvert.DeserializeObject <webMetrics.Models.Graph.Tags>(json); await repMongo.GravarOne <webMetrics.Models.Graph.Tags>(js); } if (nameData == "Stories") { var js = JsonConvert.DeserializeObject <webMetrics.Models.Graph.Stories>(json); await repMongo.GravarOne <webMetrics.Models.Graph.Stories>(js); } if (nameData == "dataStories") { var js = JsonConvert.DeserializeObject <webMetrics.Models.DTO.InsigthStory>(json); await repMongo.GravarOne <webMetrics.Models.DTO.InsigthStory>(js); } if (nameData == "UserInsights") { var js = JsonConvert.DeserializeObject <InfluencersMetricsService.Model.UserInsights>(json); await repMongo.GravarOne <InfluencersMetricsService.Model.UserInsights>(js); } if (nameData == "Growth") { var js = JsonConvert.DeserializeObject <InfluencersMetricsService.Model.UserInsights>(json); await repMongo.GravarOne <InfluencersMetricsService.Model.UserInsights>(js); } if (nameData == "InsightsCity") { var js = JsonConvert.DeserializeObject <webMetrics.Models.Graph.InsightsGenderAge>(json); await repMongo.GravarOne <webMetrics.Models.Graph.InsightsGenderAge>(js); } if (nameData == "InsightsGenderAge") { var js = JsonConvert.DeserializeObject <webMetrics.Models.DTO.Insigth>(json); var lstIns = new List <webMetrics.Models.DTO.InsigthDTO>(); js.data.ForEach(f => { lstIns.Add(new webMetrics.Models.DTO.InsigthDTO() { data = new List <webMetrics.Models.DTO.DatumDTO>() { new webMetrics.Models.DTO.DatumDTO() { description = f.description, id = f.id, name = f.name, period = f.period, title = f.title, values = f.values.Select(s => new webMetrics.Models.DTO.ValueDTO() { end_time = s.end_time, value = s.value.Select(sv => new webMetrics.Models.DTO.ValueName() { name = sv.Key, valor = sv.Value.ToString() }).ToList() }).ToList() } } }); }); await repMongo.GravarOne <webMetrics.Models.DTO.InsigthDTO>(lstIns.FirstOrDefault()); } return(""); } catch (Exception) { return("Error#" + nameData); } }
private async Task MakeUserBestHourAsync() { var lst = new List <InfluencersMetricsService.Model.StoryBestHour>(); setSetting(); InfluencersMetrics.MongoRep repMongo = new InfluencersMetrics.MongoRep("ROBO", _settings); var lstStories = await repMongo.ListarStoriesBest(); Library.WriteErrorLog("MakeDiarios - ListarStoriesBest"); lstStories.ForEach(i => { i.Obj.ForEach(f => { f.UsuarioId = i.UsuarioId; }); i.Obj.ForEach(f => { lst.Add(new StoryBestHour() { DateCreation = f.DateCreation, DiaDaSemana = f.DiaDaSemana, Hour = f.Hour, idStory = f.idStory, UsuarioId = f.UsuarioId, ValorReach = f.ValorReach }); }); }); Library.WriteErrorLog("MakeDiarios - lstFull - Antes"); var lstFull = lst .GroupBy(a => new { a.UsuarioId, a.DiaDaSemana, a.idStory, a.Hour }) .Select(a => new InfluencersMetricsService.Model.StoryUserBestHour() { UsuarioId = a.First().UsuarioId, DiaDaSemana = a.First().DiaDaSemana, Hour = a.First().Hour, ValorReach = a.Max(m => m.ValorReach) - a.Min(m => m.ValorReach) } ).ToList(); Library.WriteErrorLog("MakeDiarios - lstFull - Depois"); List <Task> lstTasks = new List <Task>(); lstFull.Select(s => s.UsuarioId).Distinct().ForEach(us => { repMongo = new InfluencersMetrics.MongoRep("ROBO", _settings, us); lstTasks.Add(repMongo.GravarOne <List <StoryUserBestHour> >(lstFull.Where(w => w.UsuarioId == us).ToList())); }); Library.WriteErrorLog("MakeDiarios - foreach repMongo: Task==>" + lstTasks.Count().ToString()); Task.WaitAll(lstTasks.ToArray()); Library.WriteErrorLog("MakeDiarios - foreach repMongo Pronto"); //var lstUsuario = lst.Select(s => s.UsuarioId).Distinct(); //foreach (var us in lstUsuario) //{ // var lstDiaSemana = lst.Where(w => w.UsuarioId == us).Select(s => s.DiaDaSemana).Distinct(); // foreach (var ds in lstDiaSemana) // { // var lstStory = lst.Where(w => w.UsuarioId == us && w.DiaDaSemana == ds).Select(s => s.idStory).Distinct(); // foreach (var stor in lstStory) // { // var lstHour = lst.Where(w => w.UsuarioId == us && w.DiaDaSemana == ds && w.idStory == stor).Select(s => s.Hour).Distinct(); // foreach (var hr in lstHour) // { // var lstItens = lst.Where(w => w.UsuarioId == us && w.DiaDaSemana == ds && w.idStory == stor && w.Hour == hr); // var max = lstItens.Where(w => w.UsuarioId == us && w.DiaDaSemana == ds && w.idStory == stor && w.Hour == hr).Max(m => m.ValorReach); // var min = lstItens.Where(w => w.UsuarioId == us && w.DiaDaSemana == ds && w.idStory == stor && w.Hour == hr).Min(m => m.ValorReach); // var diff = max - min; // lstUserBestHour.Add(new StoryUserBestHour() // { // UsuarioId = us, // DiaDaSemana = ds, // Hour = hr, // ValorReach = diff // }); // } // } // } // repMongo = new InfluencersMetrics.MongoRep("ROBO", _settings, us); // await repMongo.GravarOne<List<StoryUserBestHour>>(lstUserBestHour); // lstUserBestHour = new List<StoryUserBestHour>(); //} }