예제 #1
0
        public virtual ActionResult IncluirComentario(int id, FormCollection forms)
        {
            Receita receita = ReceitaBusiness.Obter(id);
            var     usuario = UsuarioBusiness.Obter(User.Identity.Name);


            var comentario = new Comentario(receita);

            if (User != null)
            {
                var Autor = AutorBusiness.ObterPorUsuario(usuario.Id);
                comentario.Autor       = usuario;
                comentario.NomeAnonimo = Autor.ToString() ?? usuario.Login;
            }
            else
            {
                comentario.NomeAnonimo = forms["Nome"];
            }

            comentario.Titulo   = forms["Titulo"];
            comentario.Conteudo = forms["ConteudoComentario"];

            ComentarioBusiness.Add(comentario);

            return(RedirectToAction("Receita", new { id = id }));
        }
        //
        // GET: /Base/

        public virtual ActionResult Index(string q, int pagAtual = 1)
        {
            var Busca = ReceitaBusiness.ObterTodos(pagAtual, q);

            BuscaBusiness.AddRange(q, Busca.ToList());

            return(View(Busca));
        }
        public ActionResult DeleteImagem(int idImagem)
        {
            bool returno = ReceitaBusiness.DeleteImagem(idImagem);

            if (returno)
            {
                return(Json(new { mensagem = "Imagem apagada com sucesso", erro = false }));
            }

            return(Json(new { mensagem = "Ouve um erro desconhecido", erro = true }));
        }
예제 #4
0
        public void FindAllTest()
        {
            ReceitaRepository repository = new ReceitaRepository();
            ReceitaBusiness business = new ReceitaBusiness(repository);

            repository.Receitas.Add(new Receita() { Categoria = "FindAllTest", Data = DateTime.Now, Observacao = "Test1", Valor = 190 });
            repository.Receitas.Add(new Receita() { Categoria = "FindAllTest", Data = DateTime.Now, Observacao = "Test2", Valor = 250 });
            repository.Receitas.Add(new Receita() { Categoria = "FindAllTest", Data = DateTime.Now, Observacao = "Test3", Valor = 180 });
            repository.Receitas.Add(new Receita() { Categoria = "FindAllTest", Data = DateTime.Now, Observacao = "Test4", Valor = 100 });

            Assert.AreEqual(4, business.FindAll().Count, "Total de itens diferente de 4");
        }
예제 #5
0
        public void FindTest()
        {
            ReceitaRepository repository = new ReceitaRepository();
            ReceitaBusiness business = new ReceitaBusiness(repository);

            var expected = new Receita() { Id = 1, Categoria = "FindTest", Data = DateTime.Now, Observacao = "Test1", Valor = 190 };
            repository.Receitas.Add(expected);

            var actual = business.Find(expected.Id);

            Assert.IsNotNull(actual, "Objeto procurado retornou nulo");
            Assert.AreSame(expected, actual, "Objeto procurado retornou diferente do adicionado");
        }
예제 #6
0
        public void DeleteTest()
        {
            ReceitaRepository repository = new ReceitaRepository();
            ReceitaBusiness business = new ReceitaBusiness(repository);

            var expected = new Receita() { Id = 1, Categoria = "DeleteTest", Data = DateTime.Now, Observacao = "Test1", Valor = 190 };
            repository.Receitas.Add(expected);

            business.Delete(new Receita() { Id = 1 });
            var actual = business.Find(expected.Id);

            Assert.IsNull(actual, "Objeto procurado não é nulo");
        }
        //
        // GET: /Admin/Receitas/Deletar/5

        public ActionResult Deletar(int id)
        {
            try
            {
                ReceitaBusiness.Deletar(id);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(RedirectToAction("Erro"));
            }
        }
예제 #8
0
        //
        // GET: /Receita

        public virtual ActionResult Receita(int id)
        {
            var modelo = ReceitaBusiness.Obter(id);

            if (modelo != null)
            {
                return(View(modelo));
            }
            else
            {
                return(RedirectToAction("Index", "Busca"));
            }
        }
예제 #9
0
        public void CreateTest()
        {
            ReceitaRepository repository = new ReceitaRepository();
            ReceitaBusiness business = new ReceitaBusiness(repository);

            var expected = new Receita() { Categoria = "CreateTest", Data = DateTime.Now, Observacao = "Test1", Valor = 190 };

            business.Create(expected);

            var actual = business.Find(expected.Id);

            Assert.AreNotEqual(0, expected.Id, "Objeto criado tem id = 0");
            Assert.IsNotNull(actual, "Objeto procurado é nulo");
            Assert.AreSame(expected, actual, "Objeto procurado é diferente do criado");
        }
        //
        // POST: /Admin/Receitas/Create


        //
        // GET: /Admin/Receitas/Editar/5

        public ActionResult Editar(int id)
        {
            Receita receita = ReceitaBusiness.Obter(id);

            ViewBag.Title      = "Editar Receita";
            ViewBag.BtnValue   = "Editar";
            ViewBag.Categorias = CategoriaBusiness.ObterLista();

            Autor autor = AutorBusiness.ObterPorUsuario(User.ObterUsuario().Id);

            if (receita.Autor != autor)
            {
                receita.Imagens = new List <Imagem>();
            }

            return(View("Edit", receita));
        }
예제 #11
0
        public virtual ActionResult search(string q)
        {
            IList <Receita>       Buscas = ReceitaBusiness.ObterTodos(q);
            IList <ListaReceitas> lista  = new List <ListaReceitas>();

            foreach (var item in Buscas)
            {
                lista.Add(new ListaReceitas()
                {
                    Nome          = item.Titulo,
                    Resumo        = item.Resumo(15).RemoveHtml(),
                    UrlImagem     = item.GetUrlImagem(50, 50),
                    IsPatrocinado = item.IsPatrocinado,
                    Link          = Url.Action("Receita", "Receitas", new { id = item.Id }),
                    Categorias    = item.Categorias.Select(x => x.Valor).ToArray()
                });
            }

            var json = new JavaScriptSerializer().Serialize(lista);

            return(JavaScript(json));
        }
예제 #12
0
        public ActionResult Index()
        {
            var model = ReceitaBusiness.ObterLista().Where(x => x.Destaque && x.Parente == null).ToList();

            return(View(model));
        }
        public ActionResult CreateOrEdit(FormCollection collection)
        {
            try
            {
                int id = 0;

                Receita OldReceita = null;
                Receita receita    = null;

                if (int.TryParse(collection["Id"], out id) && id != 0)
                {
                    OldReceita = ReceitaBusiness.Obter(id);
                    receita    = (Receita)OldReceita.Clone();
                }
                else
                {
                    receita = new Receita();
                }

                receita.Titulo    = collection["Titulo"];
                receita.SubTitulo = collection["SubTitulo"];
                receita.Conteudo  = collection["Conteudo"];
                receita.Data      = DateTime.Parse(collection["Data"]);
                receita.Destaque  = collection["Destaque"] == "on";

                if (collection["Categorias"] != null)
                {
                    int[] ids = collection["Categorias"].Split(',').Select(x => int.Parse(x)).ToArray <int>();

                    List <Categoria> categorias = CategoriaBusiness.ObterLista(ids);

                    foreach (var item in categorias)
                    {
                        if (!receita.Categorias.Contains(item))
                        {
                            receita.Categorias.Add(item);
                        }
                    }
                }
                else
                {
                    receita.Categorias.Clear();
                }

                Autor autor       = AutorBusiness.ObterPorUsuario(User.ObterUsuario().Id);
                bool  isNovoAutor = receita.Autor != autor;

                //receita.Imagem = collection["foto"];
                receita.Status = receita.Data > DateTime.Now ? autor.IsPatrocinador ? Status.Publicado : Status.Criado : Status.Agendado;
                receita.Autor  = autor;

                if ((isNovoAutor) || receita.Avalicoes == null)
                {
                    receita.Avalicoes = new List <Avaliacao>();
                }

                if ((isNovoAutor) || (receita.Imagens == null && Request.Files.Count > 0))
                {
                    receita.Imagens = new List <Imagem>();
                }

                List <string> arquivosSalvos = new List <string>();

                for (int i = 0; i < Request.Files.Count; i++)
                {
                    HttpPostedFileBase arquivo = Request.Files[i];

                    //Suas validações ......

                    //Salva o arquivo
                    if (arquivo.ContentLength > 0)
                    {
                        var NAME       = receita.Slug + "-" + i + Path.GetExtension(arquivo.FileName);
                        var uploadPath = Server.MapPath("~/Content/Uploads");

                        if (!Directory.Exists(uploadPath))
                        {
                            Directory.CreateDirectory(uploadPath);
                        }

                        string caminhoArquivo = Path.Combine(@uploadPath, NAME);

                        string caminhoVirtual = string.Format("~/Content/Uploads/{0}", NAME).ToAbsoluteUrl();
                        arquivo.SaveAs(caminhoArquivo);
                        arquivosSalvos.Add(caminhoVirtual);
                        Imagem imagem = new Imagem(caminhoVirtual);
                        receita.AddImagem(imagem);
                    }
                }


                ViewData["Message"] = String.Format("{0} arquivo(s) salvo(s) com sucesso.",
                                                    arquivosSalvos.Count);

                if (OldReceita == null || isNovoAutor)
                {
                    ReceitaBusiness.Save(receita);
                }
                else
                {
                    ReceitaBusiness.AddParent(receita, OldReceita);
                }
            }
            catch
            {
                return(RedirectToAction("Index", "Error"));
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult MinhasReceitas(int pagAtual = 1)
        {
            Paginacao <Receita> receitas = ReceitaBusiness.ObterTodos(pagAtual, Autor);

            return(View(receitas));
        }
        //
        // GET: /Admin/Receitas/

        public ActionResult Index(int pagAtual = 1)
        {
            Paginacao <Receita> receitas = ReceitaBusiness.ObterTodos(pagAtual, !User.IsInRole(TCC.CL.Core.Seguranca.RoleManager.Autor));

            return(View(receitas));
        }
예제 #16
0
        public virtual ActionResult Patrocinio(string q)
        {
            var lista = ReceitaBusiness.ObterListaPatrocinada(q);

            return(PartialView("_Patrocinio", lista));
        }