Esempio n. 1
0
        public void AtualizaVersaoDoutores()
        {
            ProdutoVaRepository vaRepository = new ProdutoVaRepository();

            vaRepository.AtualizaVersaoDoutoresRelacionados(this);

            vaRepository.Save();
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        /// <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();
        }
Esempio n. 4
0
        public void GravaDownload(string idTerritorio)
        {
            ProdutoVaRepository vaRepository = new ProdutoVaRepository();

            vaRepository.AddDownload(this.Id, idTerritorio);
            vaRepository.Save();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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);
        }