public ActionResult Criar()
        {
            if (UsuarioEstaLogado())
            {
                FormDesejo model = new FormDesejo();
                model.FormCriar = new FormCriarDesejo();
                CriarPreencherListas(model.FormCriar);
                model.UsuarioLogado = UsuarioLogado();

                if (model.UsuarioLogado.Id == 0)
                {
                    return redirectLoginForm();
                }

                model.ListaDesejos = new DesejoProcesso().BuscarDesejosUsuario(model.UsuarioLogado.Id);
                foreach (var item in model.ListaDesejos)
                {
                    item.Resumo = item.DescricaoCurta.Trim().Length > 37 ? item.DescricaoCurta.Trim().Substring(0, 37) + "..." : item.DescricaoCurta;
                    item.DataAnuncioRelativa = DataRelativa(item.DataAnuncio);
                }

                model.UsuarioLogado = UsuarioLogado();
                return View(model);
            }
            return Redirect("/Erro");
        }
        public ActionResult Criar(FormDesejo viewModel)
        {
            if (ModelState.IsValid && UsuarioEstaLogado())
            {
                DesejoModel model = viewModel.FormCriar.ToModel();
                model.Usuario = new UsuarioModel() { Id = UsuarioLogado().Id };

                FormDesejo modelView = new FormDesejo();
                modelView.FormCriar = new FormCriarDesejo();
                CriarPreencherListas(modelView.FormCriar);
                modelView.UsuarioLogado = UsuarioLogado();

                if (modelView.UsuarioLogado.Id == 0)
                {
                    return redirectLoginForm();
                }

                modelView.ListaDesejos = new DesejoProcesso().BuscarDesejosUsuario(modelView.UsuarioLogado.Id);
                foreach (var item in modelView.ListaDesejos)
                {
                    item.Resumo = item.DescricaoCurta.Trim().Length > 37 ? item.DescricaoCurta.Trim().Substring(0, 37) + "..." : item.DescricaoCurta;
                    item.DataAnuncioRelativa = DataRelativa(item.DataAnuncio);
                }

                modelView.UsuarioLogado = UsuarioLogado();

                try
                {
                    new DesejoProcesso().CadastrarNovo(model);
                    return Redirect("/Desejo");
                }
                catch (CadastroException ex)
                {
                    viewModel.FormCriar.MensagemErroRetorno = ex.Message;
                }
                catch
                {
                    viewModel.FormCriar.MensagemErroRetorno = MensagemErroPadrao;
                }
                //CriarPreencherListas(viewModel);
                return View( modelView );
            }
            return Redirect("/Erro");


        }
        // GET: Desejo
        public ActionResult Index()
        {

            FormDesejo model = new FormDesejo();
            model.FormCriar = new FormCriarDesejo();
            CriarPreencherListas(model.FormCriar);
            model.FormCriarProposta = new FormCriarProposta();
            CriarPropostaPreencherListas(model.FormCriarProposta);
            model.UsuarioLogado = UsuarioLogado();

            if (model.UsuarioLogado.Id == 0)
            {
                return redirectLoginForm();
            }
            /*
            foreach (var item in model.ListaDesejos)
            {
                item.Finalizado = false;
                item.PropostaDoUsuarioLogado = false;
                foreach (var proposta in item.ListaProposta)
                {
                    if (proposta.StatusProposta == Fabrica.Enumeracao.enumStatusProposta.Aceita)
                    {
                        item.Finalizado = true;
                    };
                    if ( proposta.Usuario.Id == model.UsuarioLogado.Id )
                    {
                        item.PropostaDoUsuarioLogado = true;
                    }
                }
            }*/


            model.ListaMeusDesejos = new DesejoProcesso().BuscarDesejosUsuario(model.UsuarioLogado.Id);
            foreach (var item in model.ListaMeusDesejos)
            {
                item.Resumo = item.DescricaoCurta.Trim().Length > 37 ? item.DescricaoCurta.Trim().Substring(0, 37) + "..." : item.DescricaoCurta;
                item.DataAnuncioRelativa = DataRelativa(item.DataAnuncio);

                foreach (var proposta in item.ListaProposta)
                {
                    if (proposta.StatusProposta == Fabrica.Enumeracao.enumStatusProposta.Aceita)
                    {
                        item.Finalizado = true;
                    };
                    if (proposta.Usuario.Id == model.UsuarioLogado.Id)
                    {
                        item.PropostaDoUsuarioLogado = true;
                    }
                }
            }

            model.ListaDesejos = new DesejoProcesso().BuscarDesejosSemUsuario(model.UsuarioLogado.Id);
            foreach (var item in model.ListaDesejos)
            {
                item.Resumo = item.DescricaoCurta.Trim().Length > 37 ? item.DescricaoCurta.Trim().Substring(0, 37) + "..." : item.DescricaoCurta;
                item.DataAnuncioRelativa = DataRelativa(item.DataAnuncio);

                item.Finalizado = false;
                item.PropostaDoUsuarioLogado = false;
                foreach (var proposta in item.ListaProposta)
                {
                    if (proposta.StatusProposta == Fabrica.Enumeracao.enumStatusProposta.Aceita)
                    {
                        item.Finalizado = true;
                    };
                    if (proposta.Usuario.Id == model.UsuarioLogado.Id)
                    {
                        item.PropostaDoUsuarioLogado = true;
                    }
                }
            }

            model.UsuarioLogado = UsuarioLogado();
            return View(model);
        }