コード例 #1
0
        private void barBtnGerarContexto_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (this._empty || this._fileClassList.Count == 0)
            {
                XMessageIts.Mensagem("Nenhuma arquivo .cs adicionado.");
            }
            else
            {
                Task.Run(updateStatusConvertendo);

                var mode = barToggleSwitchModo.Checked;

                byte[] bytesContext = null;
                //string templatePath = Application.StartupPath + "\\template_context";

                if (mode)
                {
                    //templatePath = Application.StartupPath + "\\template_context2";
                    bytesContext = Properties.Resources.context2_template;
                }
                else
                {
                    bytesContext = Properties.Resources.context_template;
                }

                var template = FileManagerIts.GetDataFromBytes(bytesContext);

                this._strContext.Clear();

                var propDao        = new StringBuilder();
                var propPrivateDao = new StringBuilder();
                var initDao        = new StringBuilder();
                var metodoDao      = new StringBuilder();;
                var dbSet          = new StringBuilder();

                //pegue os arquivos selecionados
                var lista = gridViewClasses.GetSelectedItens <FileClass>();

                if (lista.Count == 0)
                {
                    lista = _fileClassList;
                }

                foreach (var item in lista)
                {
                    generatePropDao(propDao, item);

                    generatePropPrivateDao(propPrivateDao, item);

                    generateInitDao(initDao, item);

                    generateMetodoDao(metodoDao, item);

                    generateDbSet(dbSet, item);
                }

                if (mode)
                {
                    generateContextOptimizado(template, propDao, dbSet);
                }
                else
                {
                    generateContext(template, propPrivateDao, initDao, metodoDao, dbSet);
                }

                string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                string ctxPath = Path.Combine(desktop, "Contexto.cs");

                FileManagerIts.OverWriteOnFile(ctxPath, new string[] { _strContext.ToString() });

                if (File.Exists(ctxPath))
                {
                    this.barStaticOk.Visibility = BarItemVisibility.Always;
                    //XMessageIts.Mensagem("Contexto gerado em: \n\n" + ctxPath, "Contexto gerado com sucesso");
                    //barBtnShowResult_ItemClick(null, null);

                    var op = XMessageIts.Confirmacao("Contexto gerado em: \n\n"
                                                     + ctxPath
                                                     + "\n\nVisualizar contexto ?\n", "Contexto gerado com sucesso");
                    if (op == DialogResult.Yes)
                    {
                        //FileManagerIts.View(ctxPath);
                        barBtnShowResult_ItemClick(null, null);
                    }
                }
            }
        }