public IList <Dominio.Foto> Pesquisar(Dominio.Foto objeto, int qtde = 0) { ICriteria criteria = NHibernate.HttpModule.RecuperarSessao.CreateCriteria(typeof(Dominio.Foto)); criteria.AddOrder(Order.Desc("Codigo")); if (qtde > 0) { criteria.SetMaxResults(qtde); } if (objeto == null) { return(criteria.List <Dominio.Foto>()); } if (objeto.Codigo > 0) { criteria = criteria.Add(Expression.Eq("Codigo", objeto.Codigo)); } if (!string.IsNullOrEmpty(objeto.Legenda)) { criteria = criteria.Add(Expression.InsensitiveLike("Legenda", string.Format("%{0}%", objeto.Legenda))); } if (!string.IsNullOrEmpty(objeto.Fonte)) { criteria = criteria.Add(Expression.Eq("Fonte", objeto.Fonte)); } criteria = criteria.Add(Expression.Eq("Galeria", objeto.Galeria)); IList <Dominio.Foto> fotos = criteria.List <Dominio.Foto>(); return(fotos); }
/// <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 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; } }
public Dominio.Foto Cadastrar(Dominio.Foto objeto) { try { NHibernate.HttpModule.RecuperarSessao.Transaction.Begin(); objeto.Codigo = (int)NHibernate.HttpModule.RecuperarSessao.Save(objeto); NHibernate.HttpModule.RecuperarSessao.Transaction.Commit(); } catch (Exception e) { NHibernate.HttpModule.RecuperarSessao.Transaction.Rollback(); } return(objeto); }
public bool Excluir(int codigo) { Dominio.Foto foto = this.Pesquisar(codigo); using (ISession session = NHibernate.HttpModule.RecuperarSessao) using (ITransaction transaction = session.BeginTransaction()) { try { NHibernate.HttpModule.RecuperarSessao.Delete(foto); transaction.Commit(); } catch (HibernateException e) { transaction.Rollback(); throw new ApplicationException("Existem outros registros vinculados, foto não pode ser excluída", e.InnerException); } } return(true); }
/// <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; } }
public void Alterar(Dominio.Foto objeto) { NHibernate.HttpModule.RecuperarSessao.Update(objeto); NHibernate.HttpModule.RecuperarSessao.Flush(); }