Beispiel #1
0
        public Mensagem.Mensagem CriarRelatorio(CadastroRelatorio relatorio)
        {
            var resultado = validaRelatorioCadastro(relatorio);

            if (resultado.Codigo == 1)
            {
                var relatorioDB = new ZBD.Model.cliente_relatorios();

                relatorioDB.idcliente = relatorio.idCliente;
                relatorioDB.idusuario = relatorio.idUsuario;
                relatorioDB.nome      = relatorio.nome;
                relatorioDB.datahora  = DateTime.Now;
                relatorioDB.dataini   = relatorio.dtInicio;
                relatorioDB.datafim   = relatorio.dtFim;
                relatorioDB.excluido  = false;

                db.cliente_relatorios.Add(relatorioDB);

                //Salvar relatorio_empresas
                foreach (var idempresa in relatorio.ListaEmpresas)
                {
                    var relatorioempDB = new ZBD.Model.cliente_relatorio_empresas();
                    relatorioempDB.idempresa          = idempresa;
                    relatorioempDB.idclienterelatorio = relatorioDB.idclienterelatorio;

                    db.cliente_relatorio_empresas.Add(relatorioempDB);
                }

                //Salvar relatorio_metricas
                foreach (var metrica in relatorio.ListaMetricas)
                {
                    var relatoriometDB = new ZBD.Model.cliente_relatorio_metricas();
                    relatoriometDB.campo = metrica;
                    relatoriometDB.idclienterelatorio = relatorioDB.idclienterelatorio;

                    db.cliente_relatorio_metricas.Add(relatoriometDB);
                }

                db.SaveChanges();

                return(new Mensagem.Mensagem()
                {
                    Codigo = relatorioDB.idclienterelatorio, Texto = "Ok", Tipo = Mensagem.Mensagem.tipoMensagem.Sucesso
                });
            }
            else
            {
                return(resultado);
            }
        }
Beispiel #2
0
        public ZRN.Mensagem.Mensagem Editar(Relatorio relatorio)
        {
            var resultado = validaRelatorio(relatorio);

            if (resultado.Codigo == 1)
            {
                try
                {
                    var relatorioDB = (from r in db.cliente_relatorios
                                       where r.excluido == false && r.idclienterelatorio == relatorio.idClienteRelatorio
                                       select r).FirstOrDefault();

                    relatorioDB.nome     = relatorio.nomeRelatorio;
                    relatorioDB.datahora = DateTime.Now;
                    relatorioDB.dataini  = relatorio.dataInicial.Value;
                    relatorioDB.datafim  = relatorio.dataFinal.Value;
                    db.SaveChanges();

                    //EMPRESAS RELATORIO

                    var empresasRelatorioDB = db.cliente_relatorio_empresas.Where(x => x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x.idempresa).ToList();

                    var adicionarEmpresas = relatorio.empresas.Except(empresasRelatorioDB);
                    var removerEmpresas   = empresasRelatorioDB.Except(relatorio.empresas);

                    if (adicionarEmpresas.Any())
                    {
                        foreach (var empresa in adicionarEmpresas)
                        {
                            var empresaDB = new ZBD.Model.cliente_relatorio_empresas();
                            empresaDB.idclienterelatorio = relatorio.idClienteRelatorio;
                            empresaDB.idempresa          = empresa;
                            db.cliente_relatorio_empresas.Add(empresaDB);
                            db.SaveChanges();
                        }
                    }
                    if (removerEmpresas.Any())
                    {
                        foreach (var empresa in removerEmpresas)
                        {
                            var empresaDB = db.cliente_relatorio_empresas.Where(x => x.idclienterelatorio == relatorio.idClienteRelatorio && x.idempresa == empresa).Select(x => x).FirstOrDefault();
                            db.cliente_relatorio_empresas.Remove(empresaDB);
                            db.SaveChanges();
                        }
                    }


                    //METRICAS REDES SOCIAS

                    //var MetricasFacebookBD = retornaMetricasRelatorioFacebook(relatorio.idClienteRelatorio);
                    //var MetricasTwitterBD = retornaMetricasRelatorioTwitter(relatorio.idClienteRelatorio);
                    //var MetricasInstagramBD = retornaMetricasRelatorioInstagram(relatorio.idClienteRelatorio);
                    //var MetricasYoutubeBD = retornaMetricasRelatorioYoutube(relatorio.idClienteRelatorio);


                    //var adicionarMetricasFacebook = relatorio.metricasFacebook.Except(MetricasFacebookBD);
                    //var removerMetricasFacebook = MetricasFacebookBD.Except(relatorio.metricasFacebook);

                    //if (adicionarMetricasFacebook.Any())
                    //{
                    //    foreach (var metricaFacebook in adicionarMetricasFacebook)
                    //    {
                    //        var metricaFacebookDB = new ZBD.Model.cliente_relatorio_metricas();
                    //        metricaFacebookDB.campo = metricaFacebook;
                    //        metricaFacebookDB.idclienterelatorio = relatorio.idClienteRelatorio;
                    //        db.cliente_relatorio_metricas.Add(metricaFacebookDB);
                    //        db.SaveChanges();
                    //    }
                    //}
                    //if (removerMetricasFacebook.Any())
                    //{
                    //    foreach (var metricaFacebook in removerMetricasFacebook)
                    //    {
                    //        var metricaFacebookDB = db.cliente_relatorio_metricas.Where(x => x.campo.ToLower().Contains(metricaFacebook.ToLower()) && x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x).FirstOrDefault();
                    //        db.cliente_relatorio_metricas.Remove(metricaFacebookDB);
                    //        db.SaveChanges();
                    //    }
                    //}

                    //var adicionarMetricasTwitter = relatorio.metricasTwitter.Except(MetricasTwitterBD);
                    //var removerMetricasTwitter = MetricasTwitterBD.Except(relatorio.metricasTwitter);

                    //if (adicionarMetricasTwitter.Any())
                    //{
                    //    foreach (var metricaTwitter in adicionarMetricasTwitter)
                    //    {
                    //        var metricaTwitterDB = new ZBD.Model.cliente_relatorio_metricas();
                    //        metricaTwitterDB.campo = metricaTwitter;
                    //        metricaTwitterDB.idclienterelatorio = relatorio.idClienteRelatorio;
                    //        db.cliente_relatorio_metricas.Add(metricaTwitterDB);
                    //        db.SaveChanges();
                    //    }
                    //}
                    //if (removerMetricasTwitter.Any())
                    //{
                    //    foreach (var metricaTwitter in removerMetricasTwitter)
                    //    {
                    //        var metricaTwitterDB = db.cliente_relatorio_metricas.Where(x => x.campo.ToLower().Contains(metricaTwitter.ToLower()) && x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x).FirstOrDefault();
                    //        db.cliente_relatorio_metricas.Remove(metricaTwitterDB);
                    //        db.SaveChanges();
                    //    }
                    //}

                    //var adicionarMetricasInstagram = relatorio.metricasInstagram.Except(MetricasInstagramBD);
                    //var removerMetricasInstagram = MetricasInstagramBD.Except(relatorio.metricasInstagram);

                    //if (adicionarMetricasInstagram.Any())
                    //{
                    //    foreach (var metricaInstagram in adicionarMetricasInstagram)
                    //    {
                    //        var metricaInstagramDB = new ZBD.Model.cliente_relatorio_metricas();
                    //        metricaInstagramDB.campo = metricaInstagram;
                    //        metricaInstagramDB.idclienterelatorio = relatorio.idClienteRelatorio;
                    //        db.cliente_relatorio_metricas.Add(metricaInstagramDB);
                    //        db.SaveChanges();
                    //    }
                    //}
                    //if (removerMetricasInstagram.Any())
                    //{
                    //    foreach (var metricaInstagram in removerMetricasInstagram)
                    //    {
                    //        var metricaInstagramDB = db.cliente_relatorio_metricas.Where(x => x.campo.ToLower().Contains(metricaInstagram.ToLower()) && x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x).FirstOrDefault();
                    //        db.cliente_relatorio_metricas.Remove(metricaInstagramDB);
                    //        db.SaveChanges();
                    //    }
                    //}

                    //var adicionarMetricasYoutube = relatorio.metricasYoutube.Except(MetricasYoutubeBD);
                    //var removerMetricasYoutube = MetricasYoutubeBD.Except(relatorio.metricasYoutube);

                    //if (adicionarMetricasYoutube.Any())
                    //{
                    //    foreach (var metricaYoutube in adicionarMetricasYoutube)
                    //    {
                    //        var metricaYoutubeDB = new ZBD.Model.cliente_relatorio_metricas();
                    //        metricaYoutubeDB.campo = metricaYoutube;
                    //        metricaYoutubeDB.idclienterelatorio = relatorio.idClienteRelatorio;
                    //        db.cliente_relatorio_metricas.Add(metricaYoutubeDB);
                    //        db.SaveChanges();
                    //    }
                    //}
                    //if (removerMetricasYoutube.Any())
                    //{
                    //    foreach (var metricaYoutube in removerMetricasYoutube)
                    //    {
                    //        var metricaYoutubeDB = db.cliente_relatorio_metricas.Where(x => x.campo.ToLower().Contains(metricaYoutube.ToLower()) && x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x).FirstOrDefault();
                    //        db.cliente_relatorio_metricas.Remove(metricaYoutubeDB);
                    //        db.SaveChanges();
                    //    }
                    //}



                    var MetricasBD = retornaMetricasRelatorio(relatorio.idClienteRelatorio);

                    var adicionarMetricas = relatorio.metricas.Except(MetricasBD);
                    var removerMetricas   = MetricasBD.Except(relatorio.metricasFacebook);

                    if (adicionarMetricas.Any())
                    {
                        foreach (var metrica in adicionarMetricas)
                        {
                            var metricaDB = new ZBD.Model.cliente_relatorio_metricas();
                            metricaDB.campo = metrica;
                            metricaDB.idclienterelatorio = relatorio.idClienteRelatorio;
                            db.cliente_relatorio_metricas.Add(metricaDB);
                            db.SaveChanges();
                        }
                    }
                    if (removerMetricas.Any())
                    {
                        foreach (var metrica in removerMetricas)
                        {
                            var metricaDB = db.cliente_relatorio_metricas.Where(x => x.campo.ToLower().Contains(metrica.ToLower()) && x.idclienterelatorio == relatorio.idClienteRelatorio).Select(x => x).FirstOrDefault();
                            db.cliente_relatorio_metricas.Remove(metricaDB);
                            db.SaveChanges();
                        }
                    }

                    return(resultado);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    return(new Mensagem.Mensagem()
                    {
                        Codigo = 0, Texto = "erro", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                    });;
                }
            }
            else
            {
                return(resultado);
            }
        }