public string analise(int tip, int code, int codd, int codee, int codde, int co, int cod) { if (codd < 12) { codd++; } else { code++; codd = 1; } DateTime dt_max = new DateTime(code, codd, 1); DateTime dt_min = new DateTime(codee, codde, 1); Dominio.Analise analise = new Dominio.Analise() { Data_max = dt_max, Data_min = dt_min }; analise.ID = cod; commands["CONSULTAR"].execute(analise); if (analise.ID == 0) { Dominio.data asd = new Dominio.data() { labels = analise.generic_labels,//new string[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }, }; var fdsa = new List <Dominio.datasets>() { }; for (int i = 0; i < analise.resultado.Keys.Count; i++) { if (co == 0) { List <EntidadeDominio> b = analise.resultado.Values.ElementAt(i); Random rnd = new Random(); string color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var goLuiz = new datasets() { label = analise.resultado.Keys.ElementAt(i), backgroundColor = color, borderColor = color, fill = false }; var grr = new List <double>() { }; foreach (Bagagem sl in b) { grr.Add(sl.peso); } goLuiz.data = grr.ToArray(); fdsa.Add(goLuiz); } else if (co == i + 1) { List <EntidadeDominio> b = analise.resultado.Values.ElementAt(i); Random rnd = new Random(); string color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var goLuiz = new datasets() { label = analise.resultado.Keys.ElementAt(i), backgroundColor = color, borderColor = color, fill = false }; var grr = new List <double>() { }; foreach (Bagagem sl in b) { grr.Add(sl.peso); } goLuiz.data = grr.ToArray(); fdsa.Add(goLuiz); } } asd.datasets = fdsa.ToArray(); Dominio.options asdf = new Dominio.options() { responsive = true, title = new title() { display = true, text = "bagagem por voo em tempo (ano " + analise.Data_min.Year + ")" }, tooltips = new tooltips() { intersect = false, mode = "index" }, hover = new hover() { intersect = true, mode = "nearest" }, scales = new scales() { xAxes = new xAxes[] { new xAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "mês" } } }, yAxes = new yAxes[] { new yAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "peso em Kg" } } } } }; if (tip == 0) { analise.chartsjs.type = "line"; } else { analise.chartsjs.type = "bar"; } analise.chartsjs.data = asd; analise.chartsjs.options = asdf; } else { Dominio.data asd = new Dominio.data() { labels = analise.generic_labels, }; var fdsa = new List <Dominio.datasets>() { }; for (int i = 0; i < analise.resultado.Keys.Count; i++) { if (co == 0) { List <EntidadeDominio> b = analise.resultado.Values.ElementAt(i); Random rnd = new Random(); string color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var goLuiz = new datasets() { label = analise.resultado.Keys.ElementAt(i), backgroundColor = color, borderColor = color, fill = false }; var grr = new List <double>() { }; foreach (Check_in sl in b) { grr.Add(sl.ID); } goLuiz.data = grr.ToArray(); fdsa.Add(goLuiz); } else if (co == i + 1) { List <EntidadeDominio> b = analise.resultado.Values.ElementAt(i); Random rnd = new Random(); string color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var goLuiz = new datasets() { label = analise.resultado.Keys.ElementAt(i), backgroundColor = color, borderColor = color, fill = false }; var grr = new List <double>() { }; foreach (Check_in sl in b) { grr.Add(sl.ID); } goLuiz.data = grr.ToArray(); fdsa.Add(goLuiz); } } asd.datasets = fdsa.ToArray(); Dominio.options asdf = new Dominio.options() { responsive = true, title = new title() { display = true, text = "passageiros por voo em tempo (ano " + analise.Data_min.Year + ")" }, tooltips = new tooltips() { intersect = false, mode = "index" }, hover = new hover() { intersect = true, mode = "nearest" }, scales = new scales() { xAxes = new xAxes[] { new xAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "mês" } } }, yAxes = new yAxes[] { new yAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "quantidade" } } } } }; if (tip == 0) { analise.chartsjs.type = "line"; } else { analise.chartsjs.type = "bar"; } analise.chartsjs.data = asd; analise.chartsjs.options = asdf; } return(JsonConvert.SerializeObject(analise.chartsjs, Formatting.None, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })); //System.IO.File.ReadAllText("./analise.json"); }
public chartsjs Get(int tip, int code, int codd, int codee, int codde, int co, int cod) { //qtd do eixo? if (codd < 12) { codd++; } else { code++; codd = 1; } //code ano max //codee ano min //codd mes max //codde mes min DateTime dt_max = new DateTime(code, codd, 1); DateTime dt_min = new DateTime(codee, codde, 1); Dominio.Analise analise = new Dominio.Analise() { Data_max = dt_max, Data_min = dt_min }; analise.Id = cod; Random rnd = new Random(); if (analise.Id == 0) { List <string> lbls = new List <string>(); //var dev = db.Pedidoes.Where(ddd => ddd.DataPedido >= dt_min && ddd.DataPedido <= dt_max).ToList(); var dev = db.Pedidoes.Where(ddd => ddd.DataPedido >= dt_min && ddd.DataPedido <= dt_max) .DistinctBy(ddd => ddd.DataPedido.Year) .DistinctBy(ddd => ddd.DataPedido.Month); foreach (var b in dev) { lbls.Add(b.DataPedido.ToString("MMMM")); } Dominio.data asd = new Dominio.data() { //eixo x do grafico //labels = lbls.ToArray(), labels = new string[] { "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" }, }; var fdsa = new List <Dominio.datasets>() { }; //qtd do eixo!! for (int i = 0; i < analise.resultado.Keys.Count; i++) { if (co == 0) { //qts pedidos dentro da lista? // cor randomica var color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var go = new datasets() { label = db.Produtoes.ToList().Where(bbb => bbb.Id == int.Parse(analise.resultado.Keys.ElementAt(i))).ElementAt(0).Titulo, backgroundColor = (string)color.Clone(), borderColor = (string)color.Clone(), fill = false }; var grr = new List <double>() { }; //eixo y var queen = new double[12]; //foreach dentro de pedido foreach (DetalhesPedido bbb in analise.prod) { Pedido p = db.Pedidoes.Find(bbb.PedidoId); if (bbb.ProdutoId.ToString() == analise.resultado.Keys.ElementAt(i) && p.DataPedido >= dt_min && p.DataPedido <= dt_max) { //pedido por mes, contador de pedidos por mes switch (p.DataPedido.Month) { case 1: queen[0]++; break; case 2: queen[1]++; break; case 3: queen[2]++; break; case 4: queen[3]++; break; case 5: queen[4]++; break; case 6: queen[5]++; break; case 7: queen[6]++; break; case 8: queen[7]++; break; case 9: queen[8]++; break; case 10: queen[9]++; break; case 11: queen[10]++; break; case 12: queen[11]++; break; } } } grr.AddRange(queen); go.data = grr.ToArray(); fdsa.Add(go); } else if (co == i + 1) { List <DetalhesPedido> b = analise.prod; var color = "rgb(" + rnd.Next(0, 255) + "," + rnd.Next(0, 255) + " , " + rnd.Next(0, 255) + ")"; var go = new datasets() { label = analise.resultado.Keys.ElementAt(i), backgroundColor = (string)color.Clone(), borderColor = (string)color.Clone(), fill = false }; var grr = new List <double>() { }; //eixo y var queen = new double[12]; foreach (DetalhesPedido bbb in b) { if (bbb.ProdutoId.ToString() == analise.resultado.Keys.ElementAt(i)) { Pedido p = db.Pedidoes.Find(bbb.PedidoId); switch (p.DataPedido.Month) { case 1: queen[0]++; break; case 2: queen[1]++; break; case 3: queen[2]++; break; case 4: queen[3]++; break; case 5: queen[4]++; break; case 6: queen[5]++; break; case 7: queen[6]++; break; case 8: queen[7]++; break; case 9: queen[8]++; break; case 10: queen[9]++; break; case 11: queen[10]++; break; case 12: queen[11]++; break; } } } grr.AddRange(queen); go.data = grr.ToArray(); fdsa.Add(go); } } asd.datasets = fdsa.ToArray(); Dominio.options asdf = new Dominio.options() { //titulo do grafico responsive = true, title = new title() { display = true, text = "Quantidade de Vendas por Jogo (ano " + analise.Data_min.Year + ")" }, tooltips = new tooltips() { intersect = false, mode = "index" }, hover = new hover() { intersect = true, mode = "nearest" }, //Legenda das escalas qtd por mês scales = new scales() { xAxes = new xAxes[] { new xAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "Meses" } } }, yAxes = new yAxes[] { new yAxes() { display = true, scaleLabel = new scaleLabel() { display = true, labelString = "Quantidade" } } } } }; //tipo do grafico linha ou barra if (tip == 0) { analise.chartsjs.type = "line"; } else { analise.chartsjs.type = "bar"; } analise.chartsjs.data = asd; analise.chartsjs.options = asdf; } return(analise.chartsjs); }