public async Task <IActionResult> RefuseOrder(int?stockId, double?value, int?transferId) { var msg = ""; if (stockId == null || value == null || transferId == null) { if (stockId == null) { if (value == null) { msg = "Stock identificator and order value are invalid"; } else if (transferId == null) { msg = "Stock identificator and transfer identificator are invalid"; } else { msg = "Stock identificator is invalid"; } } else if (value == null) { if (transferId == null) { msg = "Order value and transfer identificator are invalid"; } else { msg = "Transfer identificator is invalid"; } } else { msg = "Transfer identificator is invalid"; } return(StatusCode(400, msg)); } var item = new StockTransferOrderModel(); item.StockId = stockId.GetValueOrDefault(); item.Value = value.GetValueOrDefault(); item.TransferId = transferId.GetValueOrDefault(); var stockResp = await stockService.RefuseStock(item); var transfResp = await transferService.RefuseTransfer(item); if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden || transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await transferService.BookTransfer(item); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await stockService.BookStock(item); } QueueProducer.GetIntoQueueTillSuccess(async() => { using (var client = new HttpClient()) { try { stockResp = await stockService.RefuseStock(item); transfResp = await transferService.RefuseTransfer(item); if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden || transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await transferService.BookTransfer(item); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await stockService.BookStock(item); } return(false); } return(true); } catch { } return(false); } }); //return StatusCode(503, $"StockService: {(stockResp?.StatusCode != System.Net.HttpStatusCode.Forbidden ? "online" : "offline")}; " + // $"TransferService: {(transfResp?.StatusCode != System.Net.HttpStatusCode.Forbidden ? "online" : "offline")}"); } if (stockResp?.StatusCode == System.Net.HttpStatusCode.NotFound) { item.OrderStatus = 20; msg = "Stock wasn't found"; return(StatusCode(404, msg)); } item.OrderStatus = 90; if (transfResp?.StatusCode == System.Net.HttpStatusCode.NoContent) { item.OrderStatus = item.OrderStatus + 2; msg = "No info for refusing transfer"; return(StatusCode(404, msg)); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.NotFound) { item.OrderStatus += 3; msg = "Can't find transfer for refuse"; return(StatusCode(404, msg)); } item.OrderStatus += 9; //await orderService.RefuseOrder(item); return(Ok()); }
public async Task <ObjectResult> RefuseOrder(StockTransferOrderModel item) { var msg = ""; var stockResp = await stockService.RefuseStock(item); var transfResp = await transferService.RefuseTransfer(item); if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden || transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await transferService.BookTransfer(item); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await stockService.BookStock(item); } QueueProducer.GetIntoQueueTillSuccess(async() => { using (var client = new HttpClient()) { try { stockResp = await stockService.RefuseStock(item); transfResp = await transferService.RefuseTransfer(item); if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden || transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { if (stockResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await transferService.BookTransfer(item); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.Forbidden) { await stockService.BookStock(item); } return(false); } return(true); } catch { } return(false); } }); //return StatusCode(503, $"StockService: {(stockResp?.StatusCode != System.Net.HttpStatusCode.Forbidden ? "online" : "offline")}; " + // $"TransferService: {(transfResp?.StatusCode != System.Net.HttpStatusCode.Forbidden ? "online" : "offline")}"); } if (stockResp?.StatusCode == System.Net.HttpStatusCode.NotFound) { item.Status = 20; msg = "Stock wasn't found"; return(StatusCode(404, msg)); } item.Status = 90; if (transfResp?.StatusCode == System.Net.HttpStatusCode.NoContent) { item.Status = item.Status + 2; msg = "No info for refusing transfer"; return(StatusCode(404, msg)); } if (transfResp?.StatusCode == System.Net.HttpStatusCode.NotFound) { item.Status += 3; msg = "Can't find transfer for refuse"; return(StatusCode(404, msg)); } item.Status += 9; await orderService.RefuseOrder(item); eventBus.PublishEvent(new DeletedOrderEvent { User = "******" }); return(StatusCode(200, msg)); }