public ProdutoVa GerarCopia() { ProdutoVaRepository vaRepository = new ProdutoVaRepository(); ProdutoVaSlideRepository slideRepository = new ProdutoVaSlideRepository(); ProdutoVaSlideArquivoRepository slideArquivoRepository = new ProdutoVaSlideArquivoRepository(); ProdutoVaArquivoRepository arquivoRepository = new ProdutoVaArquivoRepository(); ProdutoVa va = new ProdutoVa(); va.IdProduto = this.Produto.Id; va.IdUsuario = Sessao.Site.UsuarioInfo.Id; va.Status = (char)ProdutoVa.EnumStatus.Temporario; va.IdCategoria = this.IdCategoria; va.Nome = this.Nome; va.Descricao = this.Descricao; va.PalavrasChave = this.PalavrasChave; vaRepository.Add(va); vaRepository.Save(); va.CriaDiretoriosBase(); foreach (var slide in this.ProdutoVaSlides) { ProdutoVaSlide slideNovo = new ProdutoVaSlide(); slideNovo.IdVa = va.Id; slideNovo.Ordem = slide.Ordem; slideRepository.Add(slideNovo); slideRepository.Save(); foreach (var arquivo in slide.ProdutoVaSlideArquivos) { ProdutoVaSlideArquivo arquivoNovo = new ProdutoVaSlideArquivo(); arquivoNovo.IdSlide = slideNovo.Id; arquivoNovo.Nome = arquivo.Nome; arquivoNovo.Tipo = arquivo.Tipo; arquivoNovo.VideoAutoPlay = arquivo.VideoAutoPlay; slideArquivoRepository.Add(arquivoNovo); slideArquivoRepository.Save(); if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Zip) { var caminhoOrigem = Util.Url.GetCaminhoFisico(this.GetDiretorio() + slide.Id); var caminhoDestino = Util.Url.GetCaminhoFisico(va.GetDiretorio() + slideNovo.Id); Util.Arquivo.CopyDirectory(caminhoOrigem, caminhoDestino, true); Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioCssFisico(), va.GetDiretorioCssFisico(), true); Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioSharedFisico(), va.GetDiretorioSharedFisico(), true); Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioImagesFisico(), va.GetDiretorioImagesFisico(), true); Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioJsFisico(), va.GetDiretorioJsFisico(), true); } else { var caminhoOrigem = arquivo.GetCaminhoArquivoFisico(); var caminhoDestino = arquivoNovo.GetCaminhoArquivoFisico(); File.Copy(caminhoOrigem, caminhoDestino); //se for imagem, copia a thumb também if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg || arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Farmacia) { var caminhoOrigemThumb = arquivo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb); var caminhoDestinoThumb = arquivoNovo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb); File.Copy(caminhoOrigemThumb, caminhoDestinoThumb); } //se for zip(html), copia a thumb também if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Zip) { var caminhoOrigemThumb = arquivo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); var caminhoDestinoThumb = arquivoNovo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); if (File.Exists(caminhoOrigemThumb)) { File.Copy(caminhoOrigemThumb, caminhoDestinoThumb); } } //se for video, copia a imagem do primeiro frame do video if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Mp4) { var caminhoOrigemImagem = arquivo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Normal, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); var caminhoDestinoImagem = arquivoNovo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Normal, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); File.Copy(caminhoOrigemImagem, caminhoDestinoImagem); var caminhoOrigemThumb = arquivo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); var caminhoDestinoThumb = arquivoNovo.GetCaminhoArquivoFisico(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg); File.Copy(caminhoOrigemThumb, caminhoDestinoThumb); } } } //adiciona as especialidades slideNovo.AddEspecialidades(slideRepository, slide.ProdutoVaSlideEspecialidades.Select(e => e.Especialidade.Id).ToArray()); slideRepository.Save(); } foreach (var arquivo in this.ProdutoVaArquivos) { var arquivoNovo = new ProdutoVaArquivo(); arquivoNovo.IdVa = va.Id; arquivoNovo.Nome = arquivo.Nome; arquivoNovo.Tipo = arquivo.Tipo; arquivoRepository.Add(arquivoNovo); arquivoRepository.Save(); var caminhoOrigem = arquivo.GetCaminhoFisico(); var caminhoDestino = arquivoNovo.GetCaminhoFisico(); File.Copy(caminhoOrigem, caminhoDestino); } return va; }
public void AtualizaVersaoDoutores() { ProdutoVaRepository vaRepository = new ProdutoVaRepository(); vaRepository.AtualizaVersaoDoutoresRelacionados(this); vaRepository.Save(); }
public void GravaDownload(string idTerritorio) { ProdutoVaRepository vaRepository = new ProdutoVaRepository(); vaRepository.AddDownload(this.Id, idTerritorio); vaRepository.Save(); }
/// <summary> /// Publica o VA (ativa o VA e inativa o VA atualmente ativo) /// </summary> public void Publicar(ProdutoVaRepository vaRepository) { if (this.ProdutoVaCategoria.SomenteUmAtivo) { //inativa o VA ativo do produto deste VA. vaRepository.GetProdutoVas() .Where(v => v.IdProduto == this.IdProduto && v.Status == (char)ProdutoVa.EnumStatus.Ativo && v.IdCategoria == this.IdCategoria) .Each(v => v.Status = (char)ProdutoVa.EnumStatus.Inativo); } this.Status = (char)ProdutoVa.EnumStatus.Ativo; this.Versao = this.Produto.GetNovaVersaoVa(); vaRepository.Save(); AtualizaVersaoDoutores(); this.EnviarEmailStatus(); }
public void ColocarEmTeste(ProdutoVaRepository vaRepository) { //inativa o VA ativo do produto deste VA. /*vaRepository.GetProdutoVas() .Where(v => v.IdProduto == this.IdProduto && v.Status == (char)ProdutoVa.EnumStatus.Teste) .Each(v => v.Status = (char)ProdutoVa.EnumStatus.Inativo);*/ this.Status = (char)ProdutoVa.EnumStatus.Teste; this.VersaoTeste = this.Produto.GetNovaVersaoTesteVa(); vaRepository.Save(); }
public Answer LogEmail(string xml) { ProdutoVaArquivoRepository arquivoRepository = new ProdutoVaArquivoRepository(); ProdutoVaRepository vaRepository = new ProdutoVaRepository(); string crm = string.Empty; string crmUf = string.Empty; string email = string.Empty; int idArquivo = 0; int idVa = 0; DateTime? data = null; string userTerritorio; string userSenha; #region lê informações do Xml passado XmlDocument doc = new XmlDocument(); try { doc.Load(new StringReader(xml)); XmlElement nodeUsuario = (XmlElement)doc.GetElementsByTagName("user")[0]; userTerritorio = nodeUsuario.GetElementsByTagName("territory")[0].InnerText; userSenha = nodeUsuario.GetElementsByTagName("password")[0].InnerText; XmlElement nodeLogs = (XmlElement)doc.GetElementsByTagName("emails")[0]; //faz autenticação var territorio = GetTerritorio(userTerritorio, userSenha); if (territorio == null) return new Answer(Answer.EnumStatus.ErroLogin, "Login e/ou senha inválido(s)"); foreach (XmlNode nodeLog in nodeLogs.ChildNodes) { crm = nodeLog["crm"].InnerText.ToString(); crmUf = nodeLog["crmUf"].InnerText.ToString(); email = nodeLog["email"].InnerText.ToString(); idArquivo = nodeLog["attachmentId"].InnerText.ToInt(); idVa = nodeLog["presentationId"].InnerText.ToInt(); data = nodeLog["date"].InnerText.ToDateTime(); #region Valida Informações passadas /* //verifica VA var va = vaRepository.GetProdutoVa(idVa); if (va == null) return new Answer(Answer.EnumStatus.Erro, "VA não existente"); //verifica arquivo var arquivo = arquivoRepository.GetProdutoVaArquivo(idArquivo); if (arquivo == null) return new Answer(Answer.EnumStatus.Erro, "Arquivo não existente"); if (!va.ProdutoVaArquivos.Any(a => a.Id == arquivo.Id)) return new Answer(Answer.EnumStatus.Erro, "Arquivo não pertence ao VA informado"); */ #endregion } RelatorioEmailRepository relatorioEmailRepository = new RelatorioEmailRepository(); foreach (XmlNode nodeLog in nodeLogs.ChildNodes) { crm = nodeLog["crm"].InnerText.ToString(); crmUf = nodeLog["crmUf"].InnerText.ToString(); email = nodeLog["email"].InnerText.ToString(); idArquivo = nodeLog["attachmentId"].InnerText.ToInt(); idVa = nodeLog["presentationId"].InnerText.ToInt(); data = nodeLog["date"].InnerText.ToDateTime(); #region grava relatório RelatorioEmail relatorioEmail = new RelatorioEmail(); relatorioEmail.IdTerritorio = territorio.Id; relatorioEmail.IdVa_temp = idVa; relatorioEmail.IdProdutoVaArquivo_temp = idArquivo; relatorioEmail.Data = data; relatorioEmail.Crm = crm; relatorioEmail.CrmUf = crmUf; relatorioEmail.Email = email; relatorioEmail.IdTerritorio = territorio.Id; relatorioEmail.Status = (char?)RelatorioEmail.EnumStatus.Pendente; relatorioEmailRepository.Add(relatorioEmail); relatorioEmailRepository.Save(); try { relatorioEmail.IdVa = idVa; relatorioEmail.IdProdutoVaArquivo = idArquivo; relatorioEmailRepository.Save(); } catch (Exception e) { relatorioEmail.IdVa = null; relatorioEmail.IdProdutoVaArquivo = null; relatorioEmail.Xml = xml; relatorioEmailRepository.Save(); Util.Sistema.Error.TrataErro(e, enviarEmail: false); } #endregion } relatorioEmailRepository.Save(); /*foreach (XmlNode nodeLog in nodeLogs.ChildNodes) { idArquivo = nodeLog["attachmentId"].InnerText.ToInt(); email = nodeLog["email"].InnerText.ToString(); var arquivo = arquivoRepository.GetProdutoVaArquivo(idArquivo); try { List<Attachment> attachments = new List<Attachment>{ new Attachment(arquivo.GetCaminhoFisico()) }; Util.Email.Enviar(email, Util.Email.GetCorpoEmail("logEmail"), "Anexo", attachments); cont++; } catch(Exception e) { erros++; } }*/ } catch (Exception e) { Util.Sistema.Error.TrataErro(e); return new Answer(Answer.EnumStatus.Erro, "Erro ao fazer a leitura do arquivo xml"); } #endregion return new Answer(Answer.EnumStatus.Ok, string.Empty); }
public Answer InsertPresentationComment(string territory, string password, int idPresentation, string comment) { Util.Logs logs = new Util.Logs(Models.Log.EnumPagina.ProdutosVas, Models.Log.EnumArea.WebService); var usuario = GetUsuarioByTerritorioSimulado(territory, password); if (usuario == null) return new Answer(Answer.EnumStatus.ErroLogin, "Login e/ou senha inválido(s)"); Sessao.Site.Logar(usuario); ProdutoVaRepository vaRepository = new ProdutoVaRepository(); var va = vaRepository.GetProdutoVa(idPresentation); if (va == null) return new Answer(Answer.EnumStatus.Erro, "VA inválido"); if (comment.Length > 500) return new Answer(Answer.EnumStatus.Erro, "Comentário não pode ter mais do que 500 caracteres"); ProdutoVaComentarioRepository comentarioRepository = new ProdutoVaComentarioRepository(); ProdutoVaComentario comentario = new ProdutoVaComentario(); comentario.IdUsuario = Sessao.Site.UsuarioInfo.Id; comentario.IdVa = va.Id; comentario.Descricao = comment; comentarioRepository.Add(comentario); comentarioRepository.Save(); logs.Add(Models.Log.EnumTipo.Inclusao, "Comentou no VA (data: " + va.DataInclusao.Formata(Util.Data.FormatoData.DiaMesAno) + ") do Produto '" + va.Produto.Nome + "'", string.Empty); return new Answer(Answer.EnumStatus.Ok, string.Empty); }
public Answer GetPresentationComments(string territory, string password, int idPresentation) { Util.Logs logs = new Util.Logs(Models.Log.EnumPagina.ProdutosVas, Models.Log.EnumArea.WebService); var usuario = GetUsuarioByTerritorioSimulado(territory, password); if (usuario == null) return new Answer(Answer.EnumStatus.ErroLogin, "Login e/ou senha inválido(s)"); Sessao.Site.Logar(usuario); ProdutoVaRepository vaRepository = new ProdutoVaRepository(); var va = vaRepository.GetProdutoVa(idPresentation); if (va == null) return new Answer(Answer.EnumStatus.Erro, "VA inválido"); List<PresentationComment> presentationComments = new List<PresentationComment>(); foreach (var comentario in va.ProdutoVaComentarios) { PresentationComment comment = new PresentationComment(); comment.Id = comentario.Id.ToString(); comment.Name = comentario.Usuario.Nome; comment.Description = comentario.Descricao; comment.Date = comentario.Datainclusao.Formata(Util.Data.FormatoData.DiaMesAnoHoraMinuto); presentationComments.Add(comment); } return new Answer(Answer.EnumStatus.Ok, string.Empty, presentationComments); }
public Answer UpdatePresentationStatus(string territory, string password, int idPresentation, int status) { var usuario = GetUsuarioByTerritorioSimulado(territory, password); if (usuario == null) return new Answer(Answer.EnumStatus.ErroLogin, "Login e/ou senha inválido(s)"); Sessao.Site.Logar(usuario); ProdutoVaRepository vaRepository = new ProdutoVaRepository(); var va = vaRepository.GetProdutoVa(idPresentation); if(va == null) return new Answer(Answer.EnumStatus.Erro, "VA inválido"); if (!va.ValidoParaEdicao()) return new Answer(Answer.EnumStatus.Erro, "VA inválido para edição"); switch (status) { case 1: //aprovar va.Aprovar(); vaRepository.Save(); break; case 2: //reprovar va.Reprovar(); vaRepository.Save(); break; case 3: if (!va.IsAprovado()) { va.Aprovar(); vaRepository.Save(); } if (va.IsAprovado()) { va.Publicar(vaRepository); } break; default: break; } Presentation presentation = new Presentation(); presentation.PreencherByVA(va,null,usuario,null); return new Answer(Answer.EnumStatus.Ok, string.Empty, presentation); }