public RetornoViewModel SingUp([FromBody] UsuarioViewModel model) { try { model = model ?? new UsuarioViewModel(); if (String.IsNullOrEmpty(model.Nome) && String.IsNullOrEmpty(model.Email) && String.IsNullOrEmpty(model.Senha)) { return(Retorno(null, (int)StatusCodeEnum.BadRequest, StatusCodeEnum.BadRequest.ToString())); } if (_repositorioUsuario.VerificaExisteEmailCadastrado(model.Email)) { return(Retorno(null, (int)StatusCodeEnum.Conflict, StatusCodeEnum.Conflict.ToString() + ": E-mail já existente!")); } else { var usuarioModel = new Usuario { Nome = model.Nome, Email = model.Email, Senha = Utilitarios.CriptografarMD5(model.Senha), Token = JwToken.GerarToken(model.Email) }; if (model.Telefones.Any()) { foreach (var telefone in model.Telefones) { if (!String.IsNullOrEmpty(telefone.DDD) && !String.IsNullOrEmpty(telefone.Numero)) { usuarioModel.Telefones.Add(new Telefone() { DDD = int.Parse(telefone.DDD), Numero = int.Parse(telefone.Numero), UsuarioId = usuarioModel.Id }); } } } var retornoCommit = _repositorioUsuario.Cadastrar(usuarioModel); if (String.IsNullOrEmpty(retornoCommit)) { RetornoUsuarioViewModel retorno = new RetornoUsuarioViewModel() { Nome = usuarioModel.Nome, Email = usuarioModel.Email, Senha = usuarioModel.Senha, Telefones = usuarioModel.Telefones.Select(t => new TelefoneViewModel { DDD = t.DDD.ToString(), Numero = t.Numero.ToString() }).ToList(), Id = usuarioModel.Id, DataCriacao = usuarioModel.DataCriacao, DataAtualizacao = usuarioModel.DataAtualizacao, UltimoLogin = usuarioModel.UltimoLogin, Token = usuarioModel.Token }; return(Retorno(retorno, (int)StatusCodeEnum.Created, StatusCodeEnum.Created.ToString() + ": Usuário cadastrado com sucesso!")); } else { return(Retorno(null, (int)StatusCodeEnum.BadRequest, StatusCodeEnum.BadRequest.ToString() + ": " + retornoCommit)); } } } catch (Exception e) { return(Retorno(null, (int)StatusCodeEnum.InternalServerError, StatusCodeEnum.InternalServerError.ToString() + ": " + e.Message)); } }