示例#1
0
        /// <summary>
        /// Salva a imagem carregada para a ferragem.
        /// </summary>
        /// <param name="ferragem"></param>
        public void CarregarImagem(Glass.Projeto.Negocios.Entidades.Ferragem ferragem)
        {
            // Recupera o control de upload
            var fileUpload = (FileUpload)dtvFerragem.FindControl("filImagem");

            if (fileUpload != null)
            {
                // Verifica se tem imagem e se a extenssão está correta.
                if (fileUpload.HasFile && fileUpload.FileName.EndsWith(".jpg"))
                {
                    EventHandler <Colosoft.Business.EntitySavedEventArgs> ferragemSalva = null;

                    ferragemSalva = (sender, args) =>
                    {
                        try
                        {
                            var repositorio = Microsoft.Practices.ServiceLocation.ServiceLocator
                                              .Current.GetInstance <Glass.Projeto.Negocios.Entidades.IFerragemRepositorioImagens>();

                            // Salva a imagem da ferragem
                            repositorio.SalvarImagem(ferragem.IdFerragem, fileUpload.PostedFile.InputStream);
                        }
                        finally
                        {
                            ferragem.Saved -= ferragemSalva;
                        }
                    };

                    ferragem.Saved += ferragemSalva;

                    // Carrega imagem na tela
                    imgFigura.ImageUrl = Glass.Global.UI.Web.Process.Ferragem.FerragemRepositorioImagens.Instance.ObterUrl((int)ferragem.IdFerragem);
                }
                else if (!string.IsNullOrEmpty(fileUpload.FileName))
                {
                    throw new Exception(string.Format("O arquivo ({0}) não pode ser inserido. Verifique se a extensão da imagem é JPG e tente novamente. ", fileUpload.FileName));
                }
            }
        }
示例#2
0
        /// <summary>
        /// Carrega o arquivo CalcEngine para a ferragem.
        /// </summary>
        /// <param name="ferragem"></param>
        public void CarregarCalcEngineFile(Glass.Projeto.Negocios.Entidades.Ferragem ferragem)
        {
            // Recupera o control de upload
            var fileUpload = (FileUpload)dtvFerragem.FindControl("filCalcPkg");

            if (fileUpload != null && fileUpload.HasFile)
            {
                if (!StringComparer.InvariantCultureIgnoreCase.Equals(System.IO.Path.GetExtension(fileUpload.FileName), ".calcpackage"))
                {
                    throw new Exception(string.Format("O arquivo ({0}) não pode ser inserido. Verifique se a extensão da imagem é CALCPACKAGE e tente novamente. ", fileUpload.FileName));
                }

                CalcEngine.Dxf.DxfProject project = null;

                try
                {
                    // Tenta abrir o projeto do arquivo
                    project = CalcEngine.Dxf.DxfProject.Open(fileUpload.PostedFile.InputStream);
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Não foi possível carregar os dados do arquivo '{0}' informado.", fileUpload.FileName), ex);
                }

                var constantesProcessadas = new List <Glass.Projeto.Negocios.Entidades.ConstanteFerragem>();

                foreach (var variable in project.Variables.Where(f => f.GetType() == typeof(CalcEngine.Variable)))
                {
                    var constante = ferragem.Constantes.FirstOrDefault(f => f.Nome == variable.Name);

                    if (constante == null)
                    {
                        constante = new Glass.Projeto.Negocios.Entidades.ConstanteFerragem
                        {
                            Nome  = variable.Name,
                            Valor = variable.Value
                        };
                    }
                    else
                    {
                        constante.Valor = variable.Value;
                    }

                    // Adiciona somente as constantes que não existirem no cadastro da ferragem no WebGlass.
                    if (!ferragem.Constantes.Contains(constante))
                    {
                        ferragem.Constantes.Add(constante);
                    }

                    constantesProcessadas.Add(constante);
                }

                // No WebGlass, remove todas as constantes que não existem no novo arquivo CalcPackage.
                foreach (var constante in ferragem.Constantes.Where(f => !constantesProcessadas.Contains(f)))
                {
                    ferragem.Constantes.Remove(constante);
                }

                EventHandler <Colosoft.Business.EntitySavedEventArgs> ferragemSalva = null;

                // Configura o método anonimo para ser acionado quando os dados da ferragem forem salvos
                ferragemSalva = (sender, args) =>
                {
                    try
                    {
                        var repositorio = Microsoft.Practices.ServiceLocation.ServiceLocator
                                          .Current.GetInstance <Glass.Projeto.Negocios.Entidades.IFerragemRepositorioCalcPackage>();

                        using (var stream = new System.IO.MemoryStream())
                        {
                            // Cria o pacote para onde serão salvo os dados do CalcPackage
                            var package = CalcEngine.ProjectFilesPackage.CreatePackage(stream, false);
                            project.Save(package);
                            package.Close();

                            stream.Position = 0;

                            // Salva os dados no repositório das ferragens
                            repositorio.SalvarCalcPackage(ferragem.IdFerragem, stream);
                        }
                    }
                    finally
                    {
                        ferragem.Saved -= ferragemSalva;
                    }
                };

                ferragem.Saved += ferragemSalva;
            }
        }
示例#3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(CadFerragem));

            Glass.Projeto.Negocios.Entidades.Ferragem ferragem = null;

            var idFerragem = Conversoes.StrParaIntNullable(Request["IdFerragem"]);

            if (idFerragem != null && idFerragem.GetValueOrDefault() > 0)
            {
                dtvFerragem.ChangeMode(DetailsViewMode.Edit);

                if (!IsPostBack)
                {
                    ferragem = Microsoft.Practices.ServiceLocation.ServiceLocator
                               .Current.GetInstance <Glass.Projeto.Negocios.IFerragemFluxo>()
                               .ObterFerragem(int.Parse(Request["idFerragem"]));

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.Topo))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxTopo")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.TopoEsquerda))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxTopoEsquerda")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.TopoCentro))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxTopoCentro")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.TopoDireita))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxTopoDireita")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.Esquerda))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxEsquerda")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.CentroEsquerda))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxCentroEsquerda")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.CentroDireita))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxCentroDireita")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.Direita))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxDireita")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.BaseEsquerda))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxBaseEsquerda")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.BaseCentro))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxBaseCentro")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.BaseDireita))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxBaseDireita")).Checked = true;
                    }

                    if (ferragem.EstiloAncoragem.HasFlag(Data.Model.EstiloAncoragem.Base))
                    {
                        ((CheckBox)dtvFerragem.FindControl("cbxBase")).Checked = true;
                    }
                }
            }
            ;

            if (!IsPostBack && !UserInfo.GetUserInfo.IsAdminSync)
            {
                ((CheckBox)dtvFerragem.FindControl("cbxMedidasEstaticas")).Enabled = false;
                ((CheckBox)dtvFerragem.FindControl("cbxPodeRotacionar")).Enabled   = false;
                ((CheckBox)dtvFerragem.FindControl("cbxPodeEspelhar")).Enabled     = false;

                ((CheckBox)dtvFerragem.FindControl("cbxTopo")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxTopoEsquerda")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxTopoCentro")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxTopoDireita")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxEsquerda")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxCentroEsquerda")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxCentroDireita")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxDireita")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxBaseEsquerda")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxBaseCentro")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxBaseDireita")).Enabled = false;

                ((CheckBox)dtvFerragem.FindControl("cbxBase")).Enabled = false;
            }

            if (idFerragem > 0)
            {
                // Carrega imagem na tela
                imgFigura.ImageUrl = Glass.Global.UI.Web.Process.Ferragem.FerragemRepositorioImagens.Instance.ObterUrl((int)idFerragem);
            }
        }