Exemplo n.º 1
0
        public static string Propagandas(int numero)
        {
            string nomeDaPasta = ConfigReader.LerNoString(ConfigReader.TagPropagandas, ConfigReader.TagPastaDePropagandas);

            var directoryInfo = new DirectoryInfo(nomeDaPasta);

            var arquivos = directoryInfo.EnumerateFiles().ToList();

            for (int i = 0; i < arquivos.Count; i++)
            {
                if (i == numero)
                {
                    var stream = new StreamReader(arquivos[i].FullName).BaseStream;
                    var nome   = arquivos[i].Name;
                    var tipo   = MimeType.GetMimeType(nome);
                    var foto   = FabricaDeImagem.Instancia().CriarImagem(nome, tipo, stream);

                    return(foto.ConteudoMisto);
                }
            }

            return(string.Empty);
        }
Exemplo n.º 2
0
 protected override List <Imagem> ResolveCore(Mercadoria mercadoria)
 {
     return(FabricaDeImagem.Instancia().CriarImagens(mercadoria.Fotos));
 }
 protected override List <Foto> ResolveCore(MercadoriaViewModel mercadoria)
 {
     return(FabricaDeImagem.Instancia().CriarFotos(mercadoria.Imagens));
 }
Exemplo n.º 4
0
        public ActionResult Adicionar(MercadoriaViewModel mercadoriaViewModel, FormCollection form,
                                      HttpPostedFileBase file)
        {
            if (form[MercadoriasViewModel.CategoriasSelecionadas] != null)
            {
                var ids = form[MercadoriasViewModel.CategoriasSelecionadas].Split(',');
                mercadoriaViewModel.Categorias = new List <Categoria>();

                foreach (var id in ids)
                {
                    mercadoriaViewModel.Categorias.Add(repositorioDeCategorias.Obter(Guid.Parse(id)));
                }
            }

            if (mercadoriaViewModel.QuantidadeDeTamanhos != null)
            {
                mercadoriaViewModel.Tamanhos = new List <KeyValuePair <string, string> >((int)mercadoriaViewModel.QuantidadeDeTamanhos);
                for (int i = 0; i < mercadoriaViewModel.QuantidadeDeTamanhos; i++)
                {
                    if ((form["tamanho" + (i + 1)] != null) && (form["quantidadeTamanho" + (i + 1)] != null))
                    {
                        mercadoriaViewModel.Tamanhos.Add(new KeyValuePair <string, string>(form["tamanho" + (i + 1)],
                                                                                           form["quantidadeTamanho" + (i + 1)
                                                                                           ]));
                    }
                }
            }

            mercadoriaViewModel.Arquivos = new List <HttpPostedFileWrapper>();
            for (int i = 0; i < Request.Files.Count; i++)
            {
                var imagem = Request.Files[i] as HttpPostedFileWrapper;
                if ((imagem != null) && (imagem.ContentLength > 0))
                {
                    mercadoriaViewModel.Arquivos.Add(imagem);
                }
            }

            mercadoriaViewModel.Imagens.AddRange(FabricaDeImagem.Instancia().CriarImagens(mercadoriaViewModel.Arquivos));

            for (int i = 0; i < MercadoriasViewModel.NumeroDeFotosPermitidas; i++)
            {
                var imagem         = "imagem" + i;
                var nomeImagem     = imagem + "Nome";
                var conteudoImagem = imagem + "Conteudo";
                var tamanhoImagem  = imagem + "Tamanho";
                var formatoImagem  = imagem + "Formato";

                if ((form[imagem] != null) && (form[imagem] != string.Empty))
                {
                    mercadoriaViewModel.Imagens.Add(FabricaDeImagem.Instancia().CriarImagem(form[nomeImagem],
                                                                                            form[formatoImagem],
                                                                                            form[conteudoImagem],
                                                                                            form[tamanhoImagem]));
                }
            }

            if ((mercadoriaViewModel.Categorias == null) || (mercadoriaViewModel.Categorias.Count == 0))
            {
                ModelState.AddModelError("Cat", "* É necessário selecionar pelo menos uma Categoria.");
            }

            if ((mercadoriaViewModel.Cores == null) || (mercadoriaViewModel.Cores.Count == 0))
            {
                ModelState.AddModelError("Cor", "* É necessário selecionar pelo menos uma Cor.");
            }

            foreach (var tamanho in mercadoriaViewModel.Tamanhos)
            {
                int quantidade;

                try
                {
                    quantidade = Convert.ToInt32(tamanho.Value);
                }
                catch
                {
                    ModelState.AddModelError("Tamanho",
                                             "* A quantidade especificada para o tamanho " + tamanho.Key +
                                             " é inválida.");
                    continue;
                }

                if (quantidade < 0)
                {
                    ModelState.AddModelError("Tamanho", "* A quantidade especificada para o tamanho " + tamanho.Key + " deve ser maior que zero.");
                }
            }

            if (mercadoriaViewModel.Imagens.Count == 0)
            {
                ModelState.AddModelError("Foto", "* É necessário carregar pelo menos uma Foto.");
            }

            if (!ModelState.IsValid)
            {
                ViewData[MercadoriasViewModel.Mercadorias] = new MercadoriasViewModel(repositorioDeCategorias.ObterTodos());
                return(View(mercadoriaViewModel));
            }

            var mercadoria = Mapper.Map <MercadoriaViewModel, Mercadoria>(mercadoriaViewModel);

            FabricaDeMercadoria.Instancia()
            .CriarMercadoria(mercadoria, mercadoriaViewModel.Tamanhos, mercadoriaViewModel.Arquivos);

            bool adicionado = false;

            for (int i = 0; i < mercadoriaViewModel.Categorias.Count; i++)
            {
                var categoria = repositorioDeCategorias.Obter(mercadoriaViewModel.Categorias[i].Id);
                categoria.AdicionarMercadoria(mercadoria);
                if (repositorioDeCategorias.Editar(categoria))
                {
                    adicionado = true;
                }
                else
                {
                    adicionado = false;
                    break;
                }
            }

            if (adicionado)
            {
                return(RedirectToAction("Listar"));
            }

            ViewBag.Errou    = true;
            ViewBag.Mensagem = "Não foi possível cadastrar a Mercadoria. Por favor informe ao administrador do sistema.";
            ViewData[MercadoriasViewModel.Mercadorias] = new MercadoriasViewModel(repositorioDeCategorias.ObterTodos());
            return(View(mercadoriaViewModel));
        }