/// <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)); } } }
/// <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; } }
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); } }