public static UsuarioDto Monta(UsuarioCadastroModel model)
 {
     if (model != null)
     {
         UsuarioDto dto = new UsuarioDto()
         {
             Id = model.Id,
             Login = model.Login,
             NomeCompleto = model.NomeCompleto,
             senha = model.Senha,
             status = (Status)model.Estado
         };
         return dto;
     }
     else
     {
         return null;
     }
 }
        public static UsuarioCadastroModel Monta(UsuarioDto dto)
        {
            if (dto != null)
            {
                UsuarioCadastroModel model = new UsuarioCadastroModel()
                {
                    Id = dto.Id,
                    Login = dto.Login,
                    NomeCompleto = dto.NomeCompleto,
                    Senha = dto.senha,
                    Estado = (Estado)dto.status
                };

                return model;
            }
            else
            {
                return null;
            }
        }
        public ActionResult CadastrarUsuario(UsuarioCadastroModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UsuarioDto dto = Montador.MontaModeloDominioEViceVersa.Monta(model);

                    usuarioAplicacaoServico.CadastrarNovoUsuario(dto);

                    dto.senha = null;

                    return Json(new { UsuarioModel = Json(dto) }, "application/json");
                }
                else
                {
                    HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest;

                    IList<String> erros = new List<String>();
                    foreach (ModelState modelState in ViewData.ModelState.Values)
                    {
                        foreach (ModelError error in modelState.Errors)
                        {
                            erros.Add(error.ErrorMessage);
                        }
                    }

                    throw new ExcecaoUsuario(Json(erros, "application/json", Encoding.UTF8).ToString());
                }
            }
            catch (ExcecaoUsuario eu)
            {
                return Json(new { UsuarioExcecao = String.Format("Erro: {0}", eu.Message) }, "application/json", Encoding.UTF8);
            }
            catch (Exception ex)
            {
                HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
                return Json(new { UsuarioExcecao = String.Format("Erro: {0}", ex.Message) }, "application/json", Encoding.UTF8);
            }
        }