private async void PollForUpdates() { invalidOrder = false; pollingCancellationToken = new CancellationTokenSource(); while (!pollingCancellationToken.IsCancellationRequested) { try { orderWithStatus = await OrdersClient.GetOrder(OrderId); StateHasChanged(); if (orderWithStatus.IsDelivered) { pollingCancellationToken.Cancel(); } else { await Task.Delay(4000); } } catch (AccessTokenNotAvailableException ex) { pollingCancellationToken.Cancel(); ex.Redirect(); } catch (Exception ex) { invalidOrder = true; pollingCancellationToken.Cancel(); Console.Error.WriteLine(ex); StateHasChanged(); } } }
public SearchBilling() { customersClient = new CustomersClient(serviceAddress); ordersClient = new OrdersClient(serviceAddress); goodsClient = new GoodsClient(serviceAddress); componentsClient = new ComponentsClient(serviceAddress); }
private void OrdersClient_LoadOrderObjectsCompleted(object sender, LoadOrderObjectsCompletedEventArgs e) { if (e.Error == null) { AllOrderObjects = e.Result; foreach (OrderObject obj in AllOrderObjects) { obj.ChildObjects = new ObservableCollection <OrderObject>(); foreach (OrderObject chO in AllOrderObjects) { if (chO.ParentObjectID == obj.ObjectID) { obj.ChildObjects.Add(chO); chO.ParentObjectID = obj.ObjectID; } } } GlobalStatus.Current.Status = "Загрузка Заявок"; OrdersClient.LoadOrdersCompleted += OrdersClient_LoadOrdersCompleted; OrdersClient.LoadOrdersAsync(Current.SessionGUID); } else { MessageBox.Show("Ошибка при загрузке списка объектов оборудования"); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Create your application here SetContentView(Resource.Layout.VerPedido); repo = new ApiOrdersRepository(); txvProducto = FindViewById <TextView>(Resource.Id.txvDescripcionDetalle); txvFecha = FindViewById <TextView>(Resource.Id.txvFechaDetalle); txvEstado = FindViewById <TextView>(Resource.Id.txvEstadoDetalle); txvPrecio = FindViewById <TextView>(Resource.Id.txvPrecioDetalle); btnCancel = FindViewById <Button>(Resource.Id.btnCancelarPedido); btnLocation = FindViewById <Button>(Resource.Id.btnDondeEstasPedido); btnGet = FindViewById <Button>(Resource.Id.btnPedidoRecibido); txvUbicacion = FindViewById <TextView>(Resource.Id.txvUbicacion); layUbicacion = FindViewById <LinearLayout>(Resource.Id.layUbicacion); btnCancel.Click += BtnCancelar_Click; layUbicacion.Visibility = ViewStates.Gone; ordClient = new OrdersClient(); btnLocation.Click += (object sender, EventArgs e) => { }; btnGet.Click += (object sender, EventArgs e) => { repo.ForwardOrder(ord.OrderId, "Entregado"); Toast.MakeText(this, "Su pedido ha sido completado.", ToastLength.Long).Show(); Finish(); }; ordClient.OnChangeLocation += PedClient_OnUbicacionCambio; }
protected override void ProcessRecord() { base.ProcessRecord(); try { client?.Dispose(); int timeout = GetPreferredTimeout(); WriteDebug($"Cmdlet Timeout : {timeout} milliseconds."); client = new OrdersClient(AuthProvider, new Oci.Common.ClientConfiguration { RetryConfiguration = retryConfig, TimeoutMillis = timeout, ClientUserAgent = PSUserAgent }); string region = GetPreferredRegion(); if (region != null) { WriteDebug("Choosing Region:" + region); client.SetRegion(region); } if (Endpoint != null) { WriteDebug("Choosing Endpoint:" + Endpoint); client.SetEndpoint(Endpoint); } } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
public async Task WhenOrderIsCreatedAndProcessed_ThenParcelNumberIsAvailable() { // Arrange using (var webApplication = Test.CreateWebApplication()) { var httpClient = webApplication.CreateClient(); var client = new OrdersClient(httpClient); var userId = "myUser"; var parcelNumber = "parcel-number-123"; // Act var id = await client.CreateOrderAsync(userId, new OrderDto { ProductId = "foo", Quantity = 5 }); await Test.WaitForAnyAsync(async() => await client.GetOrdersAsync(userId)); await client.CompleteOrderAsync(id, parcelNumber); var orders = await Test.WaitForAsync( async() => await client.GetOrdersAsync(userId), o => o.Any(order => order.Id == id && order.State == "Completed")); // Assert Assert.Contains(orders, o => o.ParcelNumber == parcelNumber); } }
protected void loadData() { GlobalStatus.Current.IsBusy = true; OrdersClient.GetFilteredOrdersFromFilterCompleted += OrdersClient_GetFilteredOrdersFromFilterCompleted; OrdersClient.GetFilteredOrdersFromFilterToMailCompleted += OrdersClient_GetFilteredOrdersFromFilterToMailCompleted; GlobalStatus.Current.Status = "Загрузка начальных данных"; OrdersClient.InitOrderInfoCompleted += OrdersClient_InitOrderInfoCompleted; OrdersClient.InitOrderInfoAsync(); }
static void RunOrdersClient(IMundiAPIClient client) { //Criação + Consulta Console.WriteLine("Criação + consulta"); var orderId = OrdersClient.CreateCardOrder(client); OrdersClient.GetOrder(client, orderId); //Listagem Console.WriteLine("Listagem"); OrdersClient.GetOrders(client); }
private void OrdersClient_InitOrderInfoCompleted(object sender, InitOrderInfoCompletedEventArgs e) { if (e.Error == null) { OrderInfoSingle = e.Result; OrdersClient.InitFilterCompleted += OrdersClient_InitFilterCompleted;; OrdersClient.InitFilterAsync(); } else { MessageBox.Show("Не удалось загрузить начальные данные. Перезагрузите приложение"); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.DetallePedido); //locationManager.RequestLocationUpdates(_locationProvider, 0, 0, this); InitLocation(); repo = new ApiOrdersRepository(); int posicion = Intent.GetIntExtra("Posicion", -1); if (posicion == -1) { Finish(); } OrderId = MainActivity.Orders[posicion].OrderId; tvProduct = FindViewById <TextView>(Resource.Id.txvDescripcionDetalle); tvDate = FindViewById <TextView>(Resource.Id.txvFechaDetalle); tvState = FindViewById <TextView>(Resource.Id.txvEstadoDetalle); tvPrice = FindViewById <TextView>(Resource.Id.txvPrecioDetalle); btnLocation = FindViewById <Button>(Resource.Id.btnUbicacion); btnDeliever = FindViewById <Button>(Resource.Id.btnEntregarPedido); btnDontDeliever = FindViewById <Button>(Resource.Id.btnNoEntregarPedido); btnStart = FindViewById <Button>(Resource.Id.btnIniciarPedido); btnForward = FindViewById <Button>(Resource.Id.btnAvanzarPedido); tvClient = FindViewById <TextView>(Resource.Id.txvClienteDetalle); tvPhone = FindViewById <TextView>(Resource.Id.txvTelefonoDetalle); btnStart.Click += BtnStart_Click; btnForward.Click += BtnForward_Click; /* * btnEntregar.Click += (object sender, EventArgs e) => * { * repo.AvanzarPedido(idPedido, "Entregado"); * OnResume(); * };*/ btnDontDeliever.Click += (object sender, EventArgs e) => { repo.ForwardOrder(OrderId, "No Entregado"); OnResume(); }; btnLocation.Click += (object sender, EventArgs e) => { Toast.MakeText(this, "Ya casi en lugar", ToastLength.Long).Show(); }; pedClient = new OrdersClient(); // Create your application here pedClient.OnWaitingOrder += (object sender, EventArgs e) => { Toast.MakeText(this, "Esperando..", ToastLength.Long).Show(); }; }
static void Main(string[] args) { // Ongoing WMS is a Warehouse Management System based in Sweden. // This file demonstrates one way of integrating with the WMS' REST API. // For more information, please see: // https://developer.ongoingwarehouse.com/REST/v1/index.html // https://www.ongoingwarehouse.com/ // These are the credentials and other information which are required to connect to the API. // Ask the warehouse to generate them for you - https://docs.ongoingwarehouse.com/Manuals/API-Access var userName = "******"; var password = "******"; var baseUrl = "https://api.ongoingsystems.se/apidemo/"; var goodsOwnerId = 162; // Set up all the client objects. var client = new System.Net.Http.HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes($"{userName}:{password}"))); var articlesClient = new ArticlesClient(client) { BaseUrl = baseUrl }; var ordersClient = new OrdersClient(client) { BaseUrl = baseUrl }; var purchaseOrderClient = new PurchaseOrdersClient(client) { BaseUrl = baseUrl }; var inventoryAdjustmentsClient = new InventoryAdjustmentsClient(client) { BaseUrl = baseUrl }; var transporterContractsClient = new TransporterContractsClient(client) { BaseUrl = baseUrl }; // Run the tests. TestArticles(goodsOwnerId, articlesClient); TestOrders(goodsOwnerId, ordersClient); TestPurchaseOrders(goodsOwnerId, purchaseOrderClient); TestInventoryAdjustments(goodsOwnerId, inventoryAdjustmentsClient); TestTransporterContracts(goodsOwnerId, transporterContractsClient); Console.WriteLine("Press Enter to exit."); Console.Read(); }
private void AdClient_GetAuthenticatedUserCompleted(object sender, GetAuthenticatedUserCompletedEventArgs e) { if (e.Error == null) { CurrentUser = e.Result; GlobalStatus.Current.Status = "Загрузка пользователей"; OrdersClient.LoadOrdersUsersCompleted += OrdersClient_LoadOrdersUsersCompleted; OrdersClient.LoadOrdersUsersAsync(); } else { MessageBox.Show("Ошибка при авторизации. Перезагрузите приложение"); } }
private void OrdersClient_LoadOrdersUsersCompleted(object sender, LoadOrdersUsersCompletedEventArgs e) { if (e.Error == null) { ALLUsers = e.Result; GlobalStatus.Current.Status = "Загрузка оборудования"; OrdersClient.LoadOrderObjectsCompleted += OrdersClient_LoadOrderObjectsCompleted; OrdersClient.LoadOrderObjectsAsync(); } else { MessageBox.Show("Ошибка при загрузке списка пользователей"); } }
async Task <IEnumerable <OrderWithStatus> > LoadOrders() { var ordersWithStatus = Enumerable.Empty <OrderWithStatus>(); try { ordersWithStatus = await OrdersClient.GetOrders(); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } return(ordersWithStatus); }
protected async Task PlaceOrderAsync() { IsSubmitting = true; try { var OrderId = await OrdersClient.PlaceOrderAsync(OrderState.Order); OrderState.ResetOrder(); NavigationManager.NavigateTo($"myorders/{OrderId}", true); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } }
async Task PlaceOrder() { OrderState.isSubmitting = true; try { var newOrderId = await OrdersClient.PlaceOrder(OrderState.order); OrderState.ResetOrder(); NavigationManager.NavigateTo($"myorders/{newOrderId}"); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } OrderState.isSubmitting = false; }
private async Task RequestNotificationSubscriptionAsync() { var subscription = await JSRuntime.InvokeAsync <NotificationSubscription>("blazorPushNotifications.requestSubscription"); if (subscription != null) { try { await OrdersClient.SubscribeToNotifications(subscription); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } } }
protected void RefreshOrdersFilterXML(bool clear, bool sendMail) { if (clear) { CurrentOrders.Clear(); } GlobalStatus.Current.IsBusy = true; if (!sendMail) { OrdersClient.GetFilteredOrdersFromFilterAsync(Filter, OrdersClientContext.Current.SessionGUID); } else { OrdersClient.GetFilteredOrdersFromFilterToMailAsync(Filter, OrdersClientContext.Current.SessionGUID); } LastUpdate = DateTime.Now; }
private static void TestOrders(int goodsOwnerId, OrdersClient ordersClient) { Console.WriteLine("Running order examples..."); Console.WriteLine(""); var orderNumber = "PR78912"; // A unique order number. // Define a new order. var order = new PostOrderModel() { GoodsOwnerId = goodsOwnerId, Consignee = new PostOrderConsignee() { Name = "Test Testsson", Address1 = "Test Street 1", City = "Test City", PostCode = "111111", CountryCode = "SE" }, OrderNumber = orderNumber, OrderLines = new List <PostOrderLine>() { new PostOrderLine() { RowNumber = "OrderRow1", ArticleNumber = "1234", NumberOfItems = 2 }, // Each order line must have a unique row number. new PostOrderLine() { RowNumber = "OrderRow2", ArticleNumber = "7879", NumberOfItems = 4 }, } }; // Send the new order to the warehouse, thus creating it. var createResponse = ordersClient.PutOrder(order); // If we send in the same order number again, the system will try to update the order. // It is possible to update an order as long as the warehouse has not started working on it. order.OrderLines.Add(new PostOrderLine() { RowNumber = "OrderRow3", ArticleNumber = "5943", NumberOfItems = 9 }); var updateResponse = ordersClient.PutOrder(order); // You may upload files (documents, labels, etc) to orders. var pdfPath = @"C:\WMS\Invoice-PR78912.pdf"; if (System.IO.File.Exists(pdfPath)) { var fileBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(pdfPath)); var file = new PostFileModel() { FileName = "Invoice-PR78912.pdf", FileDataBase64 = fileBase64, MimeType = "application/pdf" }; ordersClient.Post(createResponse.OrderId.Value, file); } // You may query for orders using various ways. // For instance using orderId: var getOrderByOrderId = ordersClient.Get(createResponse.OrderId.Value); // Or by order number: var getOrderByOrderNumber = ordersClient.GetAll(goodsOwnerId, orderNumber, null, null, null, null, null, null, null); // Or get all orders which have been shipped during a particular period: var from = new DateTimeOffset(new DateTime(2019, 11, 1, 12, 0, 0)); var to = new DateTimeOffset(new DateTime(2019, 11, 1, 13, 0, 0)); var getOrdersByShippedTime = ordersClient.GetAll(goodsOwnerId, null, from, to, null, null, null, null, null); foreach (var shippedOrder in getOrdersByShippedTime) { // Handle "shippedOrder" somehow. } }
static void Main(string[] args) { OrdersClient ordersClient = new OrdersClient(); ProductsClient productsClient = new ProductsClient(); const string MENU = @"******************BIENVENIDO**************** 1 - Obtener precio 2 - Actualizar precio 3 - Salir Seleccione una opción: "; bool stop = false; int option = 0; string code = String.Empty; bool stopAux = false; do { Console.Write(MENU); try { option = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Caractér inválido, ingrese otro"); } // se verifica cuál opción desea realizar switch (option) { case 1: decimal quantity = 0; Console.Write("Ingrese el código: "); code = Console.ReadLine(); do { try { Console.Write("Ingrese la cantidad a comprar: "); quantity = decimal.Parse(Console.ReadLine()); stopAux = true; } catch (Exception) { Console.WriteLine("Verifique el caracter ingresado, debe ser numérico"); stopAux = false; } } while (!stopAux); decimal finalPrice = ordersClient.GetPrice(code, quantity); Console.WriteLine(String.Format("El precio es {0}", finalPrice)); break; case 2: decimal newPrice = 0; Console.Write("Ingrese el código: "); code = Console.ReadLine(); do { try { Console.Write("Ingrese el nuevo precio: "); newPrice = decimal.Parse(Console.ReadLine()); stopAux = true; } catch (Exception) { Console.WriteLine("Verifique el caracter ingresado, debe ser numérico"); stopAux = false; } } while (!stopAux); bool result = productsClient.UpdatePrice(code, newPrice); Console.WriteLine(result ? "El precio ha sido actualizado" : "Ha ocurrido un error a la hora de actualizar, intente de nuevo"); break; case 3: stop = true; break; default: break; } Console.WriteLine(); } while (!stop); Console.ReadLine(); }
public static void Trade(string instrument) { var client = new BtcRequestClient(); var marketClient = new MarketClient(client); var orderClient = new OrdersClient(client); var edge = 1; var book = marketClient.GetOrderBook(Currencies.Btc, instrument); var lowestAsks = book.Asks .OrderBy(a => a[0]) .First()[0]; var askPrice = (long)(lowestAsks * TradingAdjustments.ApiPriceMultiplier) - edge; var highestBid = book.Bids .OrderByDescending(a => a[0]) .First()[0]; var bidPrice = (long)(highestBid * TradingAdjustments.ApiPriceMultiplier) + edge; var fee = 0.003; var sellPrice = bidPrice * (1 + fee); var purchasePrice = askPrice * (1 - fee); Console.WriteLine("====================="); Console.WriteLine($"Ask: {lowestAsks}"); Console.WriteLine($"Bid: {highestBid}"); Console.WriteLine($"Diff: {lowestAsks - highestBid}"); Console.WriteLine("====================="); Console.WriteLine($"Buy: {purchasePrice}"); Console.WriteLine($"Sell: {sellPrice}"); Console.WriteLine($"Diff: {purchasePrice - sellPrice}"); Console.WriteLine($"Profit %: {(purchasePrice - sellPrice) / sellPrice * 100}"); var riskBuffer = 30000; if (purchasePrice - riskBuffer <= sellPrice) { Console.WriteLine("NO WAY RN'T BUYING NO NOTHING. I RN'T STUPID...."); return; } //var askResponse = orderClient.CreateOrder(Currencies.Btc, instrument, askPrice, 100000, TradeSide.Ask); var askResponse = new CreateOrderResponse { Id = 595124578 }; var bidResponse = new CreateOrderResponse { Id = 596025673 }; //var bidResponse = orderClient.CreateOrder(Currencies.Btc, instrument, bidPrice, 100000, TradeSide.Bid); OrderDetail[] orders; bool Checker() { var orderResponse = orderClient .GetOrder(new[] { askResponse.Id, bidResponse.Id }); orders = orderResponse.Orders; if (orders == null) { Console.WriteLine($"They f*****g with it: {orderResponse.ErrorMessage}"); Thread.Sleep(3000); client = new BtcRequestClient(); return(true); } return(orders.Length != 2 || orders.Any(a => a.Status != "Fully Matched")); } var lastBid = (long)1115926; // bidPrice; var lastAsk = (long)1194318; // askPrice; while (Checker()) { if (orders == null) { continue; } Thread.Sleep(300); var currentBook = marketClient.GetOrderBook(Currencies.Btc, instrument); var changed = false; var askOrder = orders.SingleOrDefault(a => a.OrderSide == TradeSide.Ask); if (askOrder != null && askOrder.Status != "Fully Matched") { var currentLowestAsks = currentBook.Asks .OrderBy(a => a[0]) .First()[0]; var currentAsk = (long)(currentLowestAsks * TradingAdjustments.ApiPriceMultiplier); if (currentAsk < askPrice) { Console.WriteLine("Replacing Ask."); if (currentAsk - edge < lastBid) { return; // f**k... } var bidToCancel = askResponse.Id; askResponse = orderClient.CreateOrder(Currencies.Btc, instrument, currentAsk - edge, askOrder.OpenVolume, TradeSide.Ask); orderClient.CancelOrder(new[] { bidToCancel }); lastAsk = currentAsk - edge; changed = true; } } var bidOrder = orders.SingleOrDefault(a => a.OrderSide == TradeSide.Bid); if (bidOrder != null && bidOrder.Status != "Fully Matched") { var currentHighestBid = currentBook.Bids .OrderByDescending(a => a[0]) .First()[0]; var currentBidPrice = (long)(currentHighestBid * TradingAdjustments.ApiPriceMultiplier); if (currentBidPrice > bidPrice) { Console.WriteLine("Replacing Bid."); if (currentBidPrice + edge > lastAsk) { return; // f**k... } var bidToCancel = bidResponse.Id; bidResponse = orderClient.CreateOrder(Currencies.Btc, instrument, currentBidPrice + edge, bidOrder.OpenVolume, TradeSide.Bid); orderClient.CancelOrder(new[] { bidToCancel }); lastBid = currentBidPrice + edge; changed = true; } } if (changed) { var lastSellPrice = lastBid * (1 + fee); var lastPurchasePrice = lastAsk * (1 - fee); Console.WriteLine("====================="); Console.WriteLine($"Buy: {lastPurchasePrice}"); Console.WriteLine($"Sell: {lastSellPrice}"); Console.WriteLine($"Diff: {lastPurchasePrice - lastSellPrice}"); Console.WriteLine($"Profit %: {(lastPurchasePrice - lastSellPrice) / lastSellPrice * 100}"); if (lastPurchasePrice - riskBuffer <= lastSellPrice) { Console.WriteLine("NO WAY RN'T BUYING NO NOTHING. I RN'T STUPID...."); orderClient.CancelOrder(new[] { bidResponse.Id, askResponse.Id }); return; } } } }