public bool Run(string TxName) { Request = new NewTransactionRequest(); Request.param.txname = TxName; return(Run(Request)); }
public HttpResponseMessage Post([FromBody] NewTransactionRequest transactionRequest, string walletId) { // Desde el Identity, recupero el Id del usuario int userId = TokenService.GetIdClient(User.Identity as ClaimsIdentity); // Obtengo el wallet por Id o por nombre de moneda (shortcut) var wallet = _walletService.GetWalletByCoinNameOrWalletIdAndUser(walletId, userId); if (!ModelState.IsValid) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Campos Incorrectos")); } //Si no se encontro el wallet y el request usa el shortcut de nombre de moneda existente en CMC, creo un nuevo wallet if (wallet == null && CoinService.ExisteEnCoinMarketCap(walletId)) { Coin moneda = _coinService.GetCoinByName(walletId); User usuario = _userService.GetUserById(userId); wallet = _walletService.AddWallet(moneda, 0, usuario).Result; } if (wallet == null && walletId.All(c => Char.IsDigit(c))) { return(Request.CreateResponse(HttpStatusCode.NotFound, "Id de wallet inexistente")); } if (wallet == null && !walletId.All(c => Char.IsDigit(c))) { return(Request.CreateResponse(HttpStatusCode.NotFound, "Tipo de moneda inexistente")); } var type = transactionRequest.Type; var amount = transactionRequest.Amount; var transactionService = _transactionService; try { if (type.ToLower() == "compra") { return(Request.CreateResponse(HttpStatusCode.Created, new TransactionViewModel(transactionService.Buy(wallet.Id, amount)))); } else if (type.ToLower() == "venta") { return(Request.CreateResponse(HttpStatusCode.Created, new TransactionViewModel(transactionService.Sell(wallet.Id, amount)))); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "La transaccion debe ser del tipo \"compra\" o \"venta\"")); } } catch (Exception exception) { return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, exception.Message));; } }
public bool Run(NewTransactionRequest requestData) { var request = new RestRequest(Method.POST); request.JsonSerializer = new NewtonsoftJsonSerializer(); request.AddJsonBody(requestData); var reply = Client.RestClient.Execute(request); JsonReply = reply.Content; if (reply.StatusCode == System.Net.HttpStatusCode.OK) { Result = JsonConvert.DeserializeObject <NewTransactionResult>(reply.Content); return(true); } return(false); }
public IActionResult Post([FromBody] NewTransactionRequest request) { var client = getCacheClient(); var transactionId = RandomGenerator.GenerateToken(); var newTransactionDetails = new NewTransactionDetails(transactionId, request.Price); var ttl = RandomGenerator.GenerateTTL(); var added = client.Add(NEW_REQUEST_PREFIX + transactionId, newTransactionDetails, ttl); if (!added) { return(BadRequest("Cache error")); } var response = new NewTransactionResponse(transactionId); return(Ok(response)); }
public async Task <AbstractAnswer <Transaction> > CreateTransactionAsync(NewTransactionRequest request) { return(await mediator.Send(request)); }
public async Task <IActionResult> AddTransaction([FromServices] FinancialControl.Module module, [FromServices] IAuthService authService, [FromBody] NewTransactionRequest request) { var user = authService.AuthenticatedUser(); request.UserId = user.Id; if (request.Type == "income") { if (request.Recurrent) { await module.AddNewRecurrentIncome(new AddNewRecurrentIncomeMessage(request.UserId, request.Name, request.Category, request.Date, request.Value, request.Until, request.Frequency)); } else { await module.AddNewIncome(new AddNewIncomeMessage(request.UserId, request.Name, request.Category, request.Date, request.Value)); } } else if (request.Type == "expense") { if (request.Recurrent) { await module.AddNewRecurrentExpense(new AddNewRecurrentExpenseMessage(request.UserId, request.Name, request.Category, request.Date, request.Value, request.Until, request.Frequency)); } else { await module.AddNewExpense(new AddNewExpenseMessage(request.UserId, request.Name, request.Category, request.Date, request.Value)); } } return(this.Ok()); }