/// <summary> /// Exclui uma foto do sistema. /// </summary> /// <param name="codigo">código da foto</param> /// <returns>caso a foto tenha sido excluida</returns> public bool ExcluirFoto(int codigo) { try { IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); Dominio.Foto foto = fotoDAO.Pesquisar(codigo); if (fotoDAO.Excluir(foto.Codigo)) { this.ExcluirImagemGaleria(foto.Caminho); } else { return(false); } return(true); } catch (Exception e) { throw e; } }
/// <summary> /// Consulta de uma foto já cadastrada. /// </summary> /// <param name="codigo">código da foto</param> /// <returns>foto referente ao código informado</returns> public Dominio.Foto PesquisarFoto(int codigo) { try { IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); return(fotoDAO.Pesquisar(codigo)); } catch (Exception e) { throw e; } }
/// <summary> /// Consulta de fotos cadastradas. /// </summary> /// <param name="foto">objeto fotos com os parametros de consulta</param> /// <returns>lista das fotos referentes a pesquisa.</returns> public IList <Dominio.Foto> PesquisarFoto(Dominio.Foto foto, int qtde = 0, int pagina = 0) { try { IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); return(fotoDAO.Pesquisar(foto, qtde, pagina)); } catch (Exception e) { throw e; } }
/// <summary> /// Cadastra uma nova foto em banco, /// Salvando todos os tamanhos necessários para galeria. /// </summary> /// <param name="foto">objetos com os dados da foto</param> /// <param name="arquivo">arquivo da foto</param> /// <returns>Foto cadastrada com o código gerado</returns> public void SalvarFotoServico(HttpPostedFileBase file) { try { IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); string caminho = string.Empty; Image imagem = Image.FromStream(file.InputStream); double Proporcao = 0; // Para manter a proporcao da imagem eh necessario verificar se a imagem eh horizontal ou vertical if (imagem.Size.Width > imagem.Size.Height) { Proporcao = (double)imagem.Size.Height / (double)imagem.Size.Width; } else { Proporcao = (double)imagem.Size.Width / (double)imagem.Size.Height; } foreach (dynamic tamanho in tamanhosServico) { caminho = string.Format("{0}\\{1}\\{2}", HttpContext.Current.Server.MapPath("~/AppData/Foto/logo/servicos"), tamanho.caminho, file.FileName); if (imagem.Size.Width > imagem.Size.Height) { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, tamanho.largura, (int)(tamanho.largura * Proporcao)), caminho ); } else { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, (int)(tamanho.largura * Proporcao), tamanho.largura), caminho ); } } } catch (Exception e) { throw e; } }
/// <summary> /// Cadastra uma nova foto em banco /// </summary> /// <param name="foto">objetos com os dados da foto</param> /// <param name="arquivo">arquivo da foto</param> /// <returns>Foto cadastrada com o código gerado</returns> public Dominio.Foto SalvarFoto(Dominio.Foto foto, HttpPostedFileBase file) { try { if (foto == null) { throw new ArgumentNullException("foto"); } IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); string path = "~/AppData/Foto/"; foto.Caminho = string.Format("Usuario/{0}.jpg", foto.Legenda); this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, 90, 90), HttpContext.Current.Server.MapPath(path + foto.Caminho) ); foto.Galeria = false; if (foto.Codigo == 0) { return(fotoDAO.Cadastrar(foto)); } fotoDAO.Alterar(foto); return(foto); } catch (Exception e) { throw e; } }
/// <summary> /// Cadastra uma nova foto em banco, /// Salvando todos os tamanhos necessários para galeria. /// </summary> /// <param name="foto">objetos com os dados da foto</param> /// <param name="arquivo">arquivo da foto</param> /// <returns>Foto cadastrada com o código gerado</returns> public Dominio.Foto SalvarFotoGaleria(Dominio.Foto foto, HttpPostedFileBase file) { try { // TODO: verificar transação // using (TransactionScope transacao = new TransactionScope()) //{ if (foto == null) { throw new ArgumentNullException("foto"); } IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica(); IFotoDAO fotoDAO = fabrica.GetFotoDAO(); string caminho = string.Empty; foto.Galeria = true; if (file != null) { Image imagem = Image.FromStream(file.InputStream); foto.Caminho = this.GerarCaminhoImagem(file); double proporcao = 0; if (imagem.Size.Width > imagem.Size.Height) { // imagem horizontal proporcao = (double)imagem.Size.Height / (double)imagem.Size.Width; } else { // imagem vertical proporcao = (double)imagem.Size.Width / (double)imagem.Size.Height; } foreach (dynamic tamanho in tamanhos) { caminho = string.Format("{0}\\{1}\\{2}", HttpContext.Current.Server.MapPath("~/AppData/Foto"), tamanho.caminho, foto.Caminho.Replace("/", @"\")); // Se a imagem for mais larga que 1024px, reduz para esse tamanho e salva if (imagem.Size.Width > 1024 && tamanho.largura == 1024) { if (imagem.Size.Width > imagem.Size.Height) { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, (int)(((double)tamanho.largura) * proporcao), tamanho.largura), caminho ); } else { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, tamanho.largura, (int)(((double)tamanho.largura) * proporcao)), caminho ); } } // Se a imagem tiver 1024px ou menos e estiver na hora de salvar a full, mantem o tamanho dela else if (tamanho.largura == 1024) { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, imagem.Size.Height, imagem.Size.Width), caminho ); } else// if (tamanho.largura == 300) { if (imagem.Size.Width > imagem.Size.Height) { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, (int)(((double)tamanho.largura) * proporcao), tamanho.largura), caminho ); } else { this.SalvarImagem ( this.RedimensionarImagem(file.InputStream, tamanho.largura, (int)(((double)tamanho.largura) * proporcao)), caminho ); } } /*else * { * this.SalvarImagem * ( * this.RedimensionarImagem(file.InputStream, tamanho.largura, tamanho.altura), * caminho * ); * }*/ } } if (foto.Codigo == 0) { foto = fotoDAO.Cadastrar(foto); //ConteudoMySQL conteudo = new ConteudoMySQL(); //foto.Codigo = conteudo.InserirFoto(foto); } else { fotoDAO.Alterar(foto); } //transacao.Complete(); return(foto); //} } catch (Exception e) { throw e; } }