Exemplo n.º 1
0
 public void DeletaEspecialidades(ProdutoVaSlideRepository slideRepository)
 {
     slideRepository.DeleteAllEspecialidades(this);
 }
Exemplo 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;
        }
Exemplo n.º 3
0
 public void AddEspecialidades(ProdutoVaSlideRepository slideRepository, int[] IdsEspecialidades)
 {
     slideRepository.AddEspecialidades(this, IdsEspecialidades);
 }