public HttpResponseModel Get() { var contaDao = new ContaDao(); var conta = contaDao.ObterConta(); return(base.SucessoResponseModel("", conta)); }
public HttpResponseModel Post(RetiradaModel model) { try { var contaDao = new ContaDao(); var conta = contaDao.ObterConta(); if (Convert.ToDecimal(model.Valor) > conta.Saldo) { return(base.SucessoResponseModel("Saldo insuficiente")); } var cedulaDao = new CedulaDao(); var listaCedulas = cedulaDao.ListarCedulas() .Where(x => x.Disponivel == true) .OrderByDescending(x => x.Valor).ToList(); var resultado = new ResutadoModel(); resultado.Cedulas = new List <CedulaResutadoModel>(); resultado = calculaNotasParaSaque(model.Valor, 0, resultado, listaCedulas); if (resultado.Resto == 0) { resultado.Saldo = conta.Saldo - Convert.ToDecimal(model.Valor); return(base.SucessoResponseModel("Retitada realizada com sucesso", resultado)); } else { int valor = model.Valor == 1 ? 2 : model.Valor - resultado.Resto; return(base.SucessoResponseModel( string.Format("Não será possível sacar este valor com as notas disponíveis. O valor mais próximo é {0}", valor))); } } catch (Exception e) { return(base.ExceptionResponseModel(e, "Erro ao efetuar saque.")); } }