public ActionResult CadastrarCliente(ClienteModel model)
        {
            var context = new ContextMercadOn();
            ConsumidorService service  = new ConsumidorService(context);
            UsuarioService    uService = new UsuarioService(context);

            if (uService.ConsultarPorFiltro(x => x.email == model.email).FirstOrDefault() != null)
            {
                TempData["Status"] = false;
                TempData["msg"]    = "Email já utilizado, escolha outro.";
                return(View());
            }

            if (service.ConsultarPorFiltro(x => x.cpf == model.cpf).FirstOrDefault() != null)
            {
                TempData["Status"] = false;
                TempData["msg"]    = "CPF já utilizado, escolha outro.";
                return(View());
            }

            if (service.ConsultarPorFiltro(x => x.celular == model.celular).FirstOrDefault() != null)
            {
                TempData["Status"] = false;
                TempData["msg"]    = "Celular já utilizado, escolha outro.";
                return(View());
            }

            var newCliente = service.Adicionar(new Entities.Entities.ClienteEntity()
            {
                ativo         = 1,
                celular       = model.celular,
                cpf           = model.cpf,
                nome          = model.nome,
                UsuarioEntity = new Entities.Entities.UsuarioEntity()
                {
                    ativo         = 1,
                    dataCriacao   = DateTime.Now,
                    dataAlteracao = DateTime.Now,
                    email         = model.email,
                    senha         = model.senha
                }
            });

            if (newCliente)
            {
                TempData["Status"] = true;
                return(RedirectToAction("CadastrarCliente"));
            }
            else
            {
                TempData["Status"] = false;
            }



            return(View());
        }
        public ActionResult Editar(int clienteid)
        {
            var edited   = service.ConsultarPorFiltro(x => x.idCliente == clienteid, x => x.UsuarioEntity).FirstOrDefault();
            var endereco = enderecoService.ConsultarPorFiltro(x => x.idUsuario == edited.idUsuario).FirstOrDefault();
            var model    = new ClienteModel()
            {
                celular   = edited.celular,
                cpf       = edited.cpf,
                email     = edited.UsuarioEntity.email,
                nome      = edited.nome,
                clienteid = edited.idCliente,
                endereco  = endereco != null?this.ConverterEndereco(endereco) : new Models.Endereco.EnderecoDetail()
            };

            return(View(model));
        }
        // POST: Login
        public ActionResult Login(LoginModel model)
        {
            var context        = new ContextMercadOn();
            var service        = new UsuarioService(context);
            var clienteService = new ConsumidorService(context);
            var mercadoService = new MercadoService(context);
            var admService     = new AdministradorService(context);
            var user           = service.ConsultarPorFiltro(x => x.email == model.Email && x.senha == model.Senha).FirstOrDefault();

            if (user != null && user.idUsuario > 0)
            {
                ViewBag.Status = true;
                //Usuário existeste.

                var cliente = clienteService.ConsultarPorFiltro(x => x.idUsuario == user.idUsuario, x => x.UsuarioEntity).FirstOrDefault();
                if (cliente != null)
                {
                    Session["cliente"]   = cliente;
                    Session["clienteid"] = cliente.idCliente;
                    return(RedirectToAction("Index", "Cliente"));
                }
                else
                {
                    var adm = admService.ConsultarPorFiltro(x => x.idUsuario == user.idUsuario).FirstOrDefault();
                    if (adm != null)
                    {
                        Session["adm"]   = adm;
                        Session["admid"] = adm.idAdministrador;
                        return(RedirectToAction("Index", "Administrador"));
                    }
                    else
                    {
                        var empresa = mercadoService.ConsultarPorFiltro(x => x.idUsuario == user.idUsuario, x => x.UsuarioEntity).FirstOrDefault();

                        if (empresa != null)
                        {
                            Session["mercado"]   = empresa;
                            Session["mercadoid"] = empresa.idMercado;
                            return(RedirectToAction("Index", "Mercado"));
                        }
                    }
                }
            }
            else
            {
                ViewBag.Status = false;
                //Usuário não existente.
            }

            return(View());
        }