Example #1
0
        /// <summary>
        /// Carrega um .xml em disco
        /// </summary>
        /// <param name="dash"></param>Objeto DashboardImage
        /// <returns></returns>Obtém o path do dashboard no banco
        public string LoadToChache(DashboardImage dash, bool overwrite = false)
        {
            using (var ctx = new ReportContext())
            {
                try
                {
                    //recupera o objeto do banco para alteração dos campos
                    dash = ctx.DashboardImageDao.Find(dash.IdReport);

                    //caminho do dashboard
                    string dashboardPath = generatePath(dash, ctx);


                    if (overwrite)
                    {
                        FileManagerIts.DeleteFile(dashboardPath);
                    }

                    //gera o arquivo atraves dos bytes salvos no banco e gera um arquivo em disco
                    if (!File.Exists(dashboardPath))
                    {
                        FileManagerIts.WriteBytesToFile(dashboardPath, dash.ReportImageData);
                    }

                    //caso contrario vou carregar diretamente do disco

                    return(dashboardPath);
                }
                catch (Exception)
                {
                    return(null);
                }
            }
        }
Example #2
0
        public static void ExportDashboardList(List <DashboardImage> reports)
        {
            string outReports = Path.Combine(FileManagerIts.DeskTopPath, "Dashboards ITS");

            if (!Directory.Exists(outReports))
            {
                FileManagerIts.CreateDirectory(outReports);
            }

            bool flag = false;

            foreach (var rpt in reports)
            {
                var novo = new DashboardImage();
                //gera um novo
                novo.Update(rpt);


                string file = outReports + "\\" + rpt.ReportName + ".itsdsh";

                //serializa p relatorio
                var bytes = SerializeIts.SerializeObject(novo);
                flag = FileManagerIts.WriteBytesToFile(file, bytes);
            }
            if (flag)
            {
                XMessageIts.Mensagem("Dashboards exportados com sucesso!");
            }
            else
            {
                XMessageIts.Erro("Dashboards exportados com erro!");
            }
        }
Example #3
0
        public static void DuplicateDashboard(DashboardImage dsImage)
        {
            var op = XMessageIts.Confirmacao("Certeza que deseja criar uma cópia do dashboard selecionado?");

            if (op == DialogResult.Yes)
            {
                using (var ctx = new ReportContext())
                {
                    //novo
                    var novo = new DashboardImage();
                    //gera um novo
                    novo.Update(dsImage);

                    var count = ctx.DashboardImageDao.Where(r => r.ReportName == novo.ReportName).Count();

                    novo.ReportName        = novo.ReportName + "_" + count;
                    novo.ReportDescription = novo.ReportDescription + "(Duplicado)";

                    if (ctx.DashboardImageDao.Save(novo))
                    {
                        XMessageIts.Mensagem("Dashboard duplicado com sucesso!");
                    }
                    else
                    {
                        XMessageIts.Erro("Erro na cópia do dashboard!");
                    }
                }
            }
        }
Example #4
0
 /// <summary>
 /// Criar/Alterar o DashboardImage
 /// </summary>
 /// <param name="dashboardImage"></param>
 public XFrmAddReport(DashboardImage dashboardImage) : this()
 {
     this.ReportImage    = null;
     this.DashboardImage = dashboardImage;
     this.cbGrupoRelatorio.Properties.Items.Add(dashboardImage.Grupo);
     this.cbGrupoRelatorio.SelectedIndex = 0;
     this.txtDescricaoRelatorio.Text     = dashboardImage.ReportDescription;
 }
Example #5
0
        public static void ImportDashboardFromFiles(params string[] filesReports)
        {
            using (var ctx = new ReportContext())
            {
                try
                {
                    Dictionary <string, bool> importados = new Dictionary <string, bool>();
                    foreach (var file in filesReports)
                    {
                        var bytesFile         = FileManagerIts.GetBytesFromFile(file);
                        var dashDeserializado = SerializeIts.DeserializeObject <DashboardImage>(bytesFile);
                        var dashCreateUpdate  = ctx.DashboardImageDao.Where(r =>
                                                                            r.ReportDescription == dashDeserializado.ReportDescription)
                                                .FirstOrDefault();

                        //relatorio ja existe
                        if (dashCreateUpdate != null)
                        {
                            var msg     = "O dashboard selecionado já existe, deseja atualiza-lo?";
                            var confirm = XMessageIts.Confirmacao(msg);
                            if (confirm == DialogResult.Yes)
                            {
                                dashCreateUpdate.Update(dashDeserializado);

                                var traUpd = ctx.DashboardImageDao.Update(dashCreateUpdate);
                                if (traUpd)
                                {
                                    XMessageIts.Mensagem("Dashboard atualizado com sucesso!");
                                }
                            }
                        }
                        //relatorio nao existe, entao vai criar
                        else
                        {
                            var newDashboard = new DashboardImage();
                            newDashboard.IdGrpReport       = dashDeserializado.IdGrpReport;
                            newDashboard.ReportDescription = dashDeserializado.ReportDescription;
                            newDashboard.ReportImageData   = dashDeserializado.ReportImageData;
                            newDashboard.ReportName        = dashDeserializado.ReportName;
                            importados.Add(newDashboard.ReportName, ctx.DashboardImageDao.Save(newDashboard));
                        }
                    }

                    if (importados.Where(i => i.Value == false).Count() == 0)
                    {
                        XMessageIts.Mensagem("Dashboard importado com sucesso!");
                    }
                    else
                    {
                        XMessageIts.Advertencia("Ocorreram erros ao importar o(s) dashboard(s) !");
                    }
                }
                catch (Exception ex)
                {
                    XMessageIts.ExceptionMessage(ex);
                }
            }
        }
Example #6
0
        private string generatePath(DashboardImage dash, ReportContext ctx)
        {
            //acompanha o Pk do dashboard que nunca se repete
            if (dash.IdReport != 0)
            {
                dash.ReportName = "Dashboard" + dash.IdReport;
            }
            else
            {
                dash.ReportName = "Dashboard" + (ctx.DashboardImageDao.FindAll().Count + 1);
            }

            var path = string.Format("{0}\\{1}{2}", _dashboardDir, dash.ReportName, ".xml");

            return(path);
        }
Example #7
0
        /// <summary>
        /// Salva o dashboard no banco
        /// </summary>
        /// <param name="dashboardDesigner">Designer do dashboard</param>
        /// <param name="dash">Dashboard a ser persistido</param>
        /// <returns>O Dashboard persistido no banco ou null</returns>
        public DashboardImage SaveDashboard(DashboardDesigner dashboardDesigner, DashboardImage dash)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //nome informado no dashboard
                    dash.DefaultName = dashboardDesigner.ActiveControl.Name;

                    //gera um nome aleatorio utilizando o nome setado no dashboard
                    string dashPath = generatePath(dash, ctx);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        //objeto designer do dashboard
                        var designer = dashboardDesigner.Dashboard;

                        //salva o layout em memoria
                        designer.SaveToXml(ms);

                        //salva o dashboard no disco em formato xml
                        designer.SaveToXml(dashPath);

                        //obtem os bytes do dashboard
                        var bytes = ms.GetBuffer();

                        //passa os bytes do dashboard pro objeto dashboard
                        dash.ReportImageData = bytes;

                        //persiste o objeto no banco
                        if (ctx.DashboardImageDao.Save(dash))
                        {
                            return(dash);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Houve um erro ao salvar o dashboard.\n\n"
                                        + ex.Message);

                LoggerUtilIts.GenerateLogs(ex);
            }

            return(null);
        }
Example #8
0
        /// <summary>
        /// Atualiza o dashboard existente no banco
        /// </summary>
        /// <param name="dashboardDesigner">Designer do dashboard</param>
        /// <param name="dash">Dashboard a ser persistido</param>
        /// <returns>O Dashboard persistido no banco ou null</returns>
        public bool UpdateDashboard(DashboardDesigner dashboardDesigner, DashboardImage dash)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //nome padrão
                    dash.DefaultName = dashboardDesigner.ActiveControl.Name;

                    //gera um nome aleatorio utilizando o nome setado no dashboard
                    string dashPath = generatePath(dash, ctx);
                    // using (MemoryStream ms = new MemoryStream())

                    //objeto designer do dashboard
                    var designer = dashboardDesigner.Dashboard;

                    FileManagerIts.DeleteFile(dashPath);
                    //salva o layout em memoria
                    //designer.SaveToXml(ms);

                    //salva o dashboard no disco em formato xml
                    designer.SaveToXml(dashPath);

                    var bytes = FileManagerIts.GetBytesFromFile(dashPath); //ms.GetBuffer();

                    //passando objeto pro contexto
                    var current = ctx.DashboardImageDao.Find(dash.IdReport);

                    //atualiza o dashboard
                    current.Update(dash);

                    //garante a atualização
                    current.ReportImageData = bytes;

                    //efetiva no banco
                    return(ctx.DashboardImageDao.Update(current));
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Houve um erro na atualização do dashboard.\n\n"
                                        + ex.Message);

                LoggerUtilIts.GenerateLogs(ex);
                return(false);
            }
        }
Example #9
0
 /// <summary>
 /// Remove o dashboard do banco
 /// </summary>
 /// <param name="dashboard"></param>
 /// <returns></returns>
 public bool RemoveDashboard(DashboardImage dashboard)
 {
     using (var ctx = new ReportContext())
     {
         //remove o dash do banco
         var current = ctx.DashboardImageDao.Find(dashboard.IdReport);
         try
         {
             return(ctx.DashboardImageDao.Delete(current));
         }
         catch (Exception ex)
         {
             XMessageIts.Erro("Não foi possível remover o dashboard!");
             LoggerUtilIts.GenerateLogs(ex, "Falha ao remover dashboard!");
             return(false);
         }
     }
 }
Example #10
0
        public void LoadDashboard(DashboardImage _dashboardImage, DashboardViewer dashboardViewer1)
        {
            using (var ctx = new ReportContext())
            {
                string path = LoadToChache(_dashboardImage);

                Dashboard ds = new Dashboard();

                ds.LoadFromXml(path);

                DataSourceCollection dsCollection = ds.DataSources;

                var appConf = new AppConfigIts(ctx.NameOrConnectionString);

                foreach (DashboardSqlDataSource dsSql in dsCollection)
                {
                    ReportUtil.SetParamDataSource(dsSql, appConf);
                }

                dashboardViewer1.Dashboard = ds;
                dashboardViewer1.ReloadData();
            }
        }
Example #11
0
        private void barBtnSaveDashboard_ItemClick(object sender, ItemClickEventArgs e)
        {
            var dbManager = new DashboardDaoManager();

            //salve o dashboard
            if (dashboardImageAnt.IdReport == 0)
            {
                dashboardImageAnt = dbManager.SaveDashboard(this.dashboardDesigner1, this.dashboardImageAnt);
                //se o objeto passar a ser diferente de null então foi salvo
                //e agora passarei a editar
                if (dashboardImageAnt != null)
                {
                    XMessageIts.Mensagem("Dashboard salvo com sucesso!");
                }
            }//atualize o dashboard
            else
            {
                if (dbManager.UpdateDashboard(dashboardDesigner1, dashboardImageAnt))
                {
                    XMessageIts.Mensagem("Dashboard atualizado com sucesso!");
                }
            }
        }
Example #12
0
        public static void ExportDashaboard(DashboardImage dash)
        {
            var            bytes = SerializeIts.SerializeObject(dash);
            SaveFileDialog sfd   = new SaveFileDialog();

            sfd.Filter   = DashboardFilter;
            sfd.FileName = "Export_" + dash.ReportDescription;
            var op = sfd.ShowDialog();

            if (op == DialogResult.OK)
            {
                //sfd.FileName = Path.ChangeExtension(sfd.FileName, "iteReport");

                if (FileManagerIts.WriteBytesToFile(sfd.FileName, bytes))
                {
                    XMessageIts.Mensagem("Arquivo salvo com sucesso!");
                }
                else
                {
                    XMessageIts.Erro("Erro");
                }
            }
        }
Example #13
0
 /// <summary>
 /// Alterar um dashboard existente
 /// </summary>
 /// <param name="dashboardImage"></param>
 public RbbFrmDashboardEditorNew(DashboardImage dashboardImage) : this()
 {
     this.dashboardImageAnt = dashboardImage;
 }
Example #14
0
 /// <summary>
 /// Exibe um dashboard
 /// </summary>
 /// <param name="dashBoardImage"></param>Dashboard a ser visualizado
 public RbbFrmDashboardView(DashboardImage dashBoardImage) : this()
 {
     this._dashboardImage = dashBoardImage;
     showDashboard();
 }