public HttpResponseMessage InserirCartaoCredito(HttpRequestMessage request, CartaoCreditoViewModel cartaoCreditoViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; var cartao = new CartaoCredito(); if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId())); var membro = this._membroRep.GetAll().FirstOrDefault(x => x.PessoaId.Equals(usuario.PessoaId)); if (cartaoCreditoViewModel.Padrao) { var _param = new[] { new SqlParameter { ParameterName = "@PADRAO", SqlDbType = System.Data.SqlDbType.Bit, Value = 0 }, new SqlParameter { ParameterName = "@PADRAO1", SqlDbType = System.Data.SqlDbType.Bit, Value = 1 } }; var sql = "UPDATE CartaoCredito set Padrao = @PADRAO WHERE Padrao = @PADRAO1"; _cartaoCreditoRep.ExecuteWithStoreProcedure(sql, _param); _unitOfWork.Commit(); } if (cartaoCreditoViewModel.Id != null && cartaoCreditoViewModel.Id > 0) { cartao = _cartaoCreditoRep.FirstOrDefault(x => x.Id == cartaoCreditoViewModel.Id); cartao.Nome = cartaoCreditoViewModel.Nome; cartao.Numero = cartaoCreditoViewModel.Numero; cartao.DataVencimento = Convert.ToDateTime(cartaoCreditoViewModel.DataVencimento); cartao.Cvc = $"{usuario.Chave}|{_encryptionService.EncryptCvv(cartaoCreditoViewModel.Cvc)}"; cartao.TokenCartaoGerenciaNet = string.Empty; cartao.CartaoBandeiraId = cartaoCreditoViewModel.CartaoBandeiraId; cartao.Padrao = cartaoCreditoViewModel.Padrao; cartao.MembroId = membro.Id; cartao.Ativo = true; cartao.UsuarioAlteracaoId = usuario.Id; cartao.UsuarioAlteracao = usuario; cartao.DtAlteracao = DateTime.Now; _cartaoCreditoRep.Edit(cartao); _unitOfWork.Commit(); } else { cartao = new CartaoCredito { Nome = cartaoCreditoViewModel.Nome, Numero = cartaoCreditoViewModel.Numero, DataVencimento = Convert.ToDateTime(cartaoCreditoViewModel.DataVencimento), CartaoBandeiraId = cartaoCreditoViewModel.CartaoBandeiraId, Cvc = $"{usuario.Chave}|{_encryptionService.EncryptCvv(cartaoCreditoViewModel.Cvc)}", TokenCartaoGerenciaNet = string.Empty, Padrao = true, MembroId = membro.Id, Ativo = true, UsuarioCriacaoId = usuario.Id, UsuarioCriacao = usuario, DtCriacao = DateTime.Now, }; _cartaoCreditoRep.Add(cartao); _unitOfWork.Commit(); cartaoCreditoViewModel.Id = cartao.Id; } response = request.CreateResponse(HttpStatusCode.Created, cartaoCreditoViewModel); } return response; })); }