public void OrderStorageTest() { string path = "storage.xml"; OrdersStorage storage = new OrdersStorage(path); storage.CreateIfNotExists(); Assert.IsTrue(storage.StorageExists()); storage.DeleteIfExists(); Assert.IsFalse(storage.StorageExists()); }
private static async Task PrintStorage(OrdersStorage storage) { foreach (var order in await storage.GetAllOrders()) { Console.WriteLine($"Order with Id:{order.Id}"); foreach (var orderItem in order.Items) { PrintOrderItem(orderItem); } } }
static void MainOld(string[] args) { var algoList = new Algorithms(); var ordersStorage = new OrdersStorage(algoList.First(a => a.Id == (byte)AlgoNiceHashEnum.Lbry), 2000); ordersStorage.Entities.ListChanged += EntitiesOnListChanged; System.Console.WriteLine(); System.Console.ReadKey(); }
/// <summary> /// Parameterless constructor of application's main window. /// </summary> public MainWindow() { InitializeComponent(); EditOrderButton.IsEnabled = false; DeletOrderButton.IsEnabled = false; try { _storage = new OrdersStorage("storage.xml"); _storage.CreateIfNotExists(); var ordersList = _storage.RetrieveAllIds(); _nextId = ordersList.Count != 0 ? ordersList.Keys.Last() + 1 : 0; } catch (NullReferenceException e) { Util.Error("Storage fatal error", e.Message); Application.Current.Shutdown(); } this.DataContext = _order; _validator = new Validator( new List <TextBox> { FirstName, LastName, Email, PhoneNumber, ClientAddressCity, ClientAddressStreet, ClientAddressBuildingNumber, ShopName, ShopAddressCity, ShopAddressStreet, ShopAddressBuildingNumber, GoodsCode, GoodsWeight }, Email, PhoneNumber); ResetOrderInstance(); Closing += new System.ComponentModel.CancelEventHandler((object sender, System.ComponentModel.CancelEventArgs e) => { OnWindowClose(sender, e); if (cans) { e.Cancel = true; } }); _instance = this; SetTextBoxAction(); setUpdater(); }
private static async Task ExecuteDemo() { var orderId = await CreateOrders(); var storage = new OrdersStorage(ApiUrl, new ConsoleLoggerWriter()); var mainOrder = await storage.GetOrderById(orderId); await mainOrder.AddOrderItem("Xiaomi Mi10", "Brand new chinese phone", 4); var iphoneItems = new List <IOrderItem>(); Console.WriteLine("Orders in storage"); foreach (var order in await storage.GetAllOrders()) { Console.WriteLine($"Order with Id:{order.Id}"); foreach (var orderItem in order.Items) { PrintOrderItem(orderItem); if (orderItem.Name.Contains("Iphone")) { iphoneItems.Add(orderItem); continue; } if (orderItem.Name.Contains("Samsung")) { await orderItem.RemoveItem(); } } } foreach (var item in iphoneItems) { await item.ChangeQuantity(999); } Console.WriteLine("Orders after change"); await PrintStorage(storage); Console.WriteLine("Purging all orders"); foreach (var order in await storage.GetAllOrders()) { await order.Purge(); } await PrintStorage(storage); }
public void ListenAlgo(IAlgo algo) { var callbackChannel = OperationContext.Current.GetCallbackChannel <IDataCallBacks>(); if (!_subscribers.ContainsKey(callbackChannel)) { _subscribers.Add(callbackChannel, algo.Id); } if (!_ordersStorages.ContainsKey(algo.Id)) { var orderStorageForAlgo = new OrdersStorage(algo, 1000); orderStorageForAlgo.Entities.ListChanged += Entities_ListChanged; //orderStorageForAlgo.Entities.BeforeRemove += Entities_BeforeRemove; _ordersStorages.Add(algo.Id, orderStorageForAlgo); } }
public OrderAttributesService(OrdersStorage storage) { _storage = storage; }
public OrdersController(IConfiguration config) { _orders = new OrdersStorage(config); }
public OrderTypesService(OrdersStorage storage) { _storage = storage; }
public OrderStatusChangesService(OrdersStorage storage) { _storage = storage; }
public OrderOperations(OrdersStorage orders) { _orders = orders.Orders; }
public OrderCommentsService(OrdersStorage storage) { _storage = storage; }
static void Main(string[] args) { var targets = new Dictionary <short, decimal>(); var ordersStorage = new OrdersStorage(new Algorithms(onlyNiceHash: false).First(a => a.Id == (byte)AlgoNiceHashEnum.Skunk), 2000, targetLevels: new short[] { 20, 40, 60, 80 }); ordersStorage.TargetLevelChanged += (percent, price) => { if (!targets.ContainsKey(percent)) { targets.Add(percent, price); } targets[percent] = price; }; var pools = new[] { //YiiPoolEnum.Ahashpool, YiiPoolEnum.BlazePool, YiiPoolEnum.BlockMasters, YiiPoolEnum.HashRefinery, YiiPoolEnum.ZergPool, YiiPoolEnum.Zpool, YiiPoolEnum.NiceHash }; var poolsInstances = new List <IYiiPool>(); foreach (var pool in pools) { var poolInstance = YiiFactory.Create(pool); if (pool == YiiPoolEnum.NiceHash) { poolInstance.LoopCommand(6000, YiiCommandEnum.Api, new Dictionary <string, string> { { "method", "simplemultialgo.info" } }); } else { poolInstance.LoopCommand(6000, YiiCommandEnum.Status); } poolsInstances.Add(poolInstance); poolInstance.StatusReceived += (sender, algos) => { if (DateTime.Now.TimeOfDay - _lastPrintConsole < new TimeSpan(0, 0, 0, 3)) { return; } lock (_syncObject) { _lastPrintConsole = DateTime.Now.TimeOfDay; System.Console.Clear(); System.Console.WriteLine(DateTime.Now); var poolsString = string.Empty.PadRight(20, ' '); var lastQueriesString = string.Empty.PadRight(20, ' '); foreach (var parsedPool in poolsInstances) { poolsString += parsedPool.ToString().PadRight(14, ' '); lastQueriesString += ((int)(DateTime.Now - parsedPool.LastQuery).TotalSeconds).ToString() .PadRight(14, ' '); } System.Console.WriteLine(poolsString); System.Console.WriteLine(lastQueriesString); foreach (var parsedAlgoName in poolsInstances.SelectMany(a => a.PoolsAlgos).Select(a => a.Key).Distinct()) { System.Console.Write($"{parsedAlgoName.PadRight(16, ' ')}"); var currentSum = 0.0; var averageSum = 0.0; var averageCount = 0; foreach (var instance in poolsInstances) { if (instance.PoolsAlgos.ContainsKey(parsedAlgoName) && instance.PoolType != YiiPoolEnum.NiceHash) { averageCount++; averageSum += instance.PoolsAlgos[parsedAlgoName].EstimateLast24H; currentSum += instance.PoolsAlgos[parsedAlgoName].EstimateCurrent; } } var average24H = averageSum / averageCount; var averageCurrent = currentSum / averageCount; foreach (var instance in poolsInstances) { System.Console.ForegroundColor = ConsoleColor.DarkGray; if (instance.PoolsAlgos.ContainsKey(parsedAlgoName)) { if (instance.PoolType != YiiPoolEnum.NiceHash) { var percent = instance.PoolsAlgos[parsedAlgoName].EstimateCurrent * 100 / average24H; if (percent > 150) { System.Console.ForegroundColor = ConsoleColor.DarkRed; } else if (percent > 130) { System.Console.ForegroundColor = ConsoleColor.Yellow; } System.Console.Write(instance.PoolsAlgos[parsedAlgoName].EstimateCurrent.ToString("### ### ###.### ### 000")); } else { System.Console.Write(instance.PoolsAlgos[parsedAlgoName].EstimateCurrent.ToString("### ### ###.### ### 000")); var moreAt = averageCurrent * 100 / instance.PoolsAlgos[parsedAlgoName].EstimateCurrent; if (moreAt > 150) { System.Console.ForegroundColor = ConsoleColor.DarkRed; } else if (moreAt > 130) { System.Console.ForegroundColor = ConsoleColor.Yellow; } System.Console.Write($" ({moreAt:F1}%)".PadRight(10, ' ')); System.Console.ForegroundColor = ConsoleColor.White; System.Console.Write($"{parsedAlgoName.PadLeft(20, ' ')}"); System.Console.ForegroundColor = ConsoleColor.DarkGray; } } else { System.Console.Write(" ".PadRight(14, '-')); } } System.Console.ForegroundColor = ConsoleColor.White; System.Console.WriteLine(); } System.Console.WriteLine(); foreach (var target in targets) { System.Console.WriteLine($"{target.Key} % => {target.Value}"); } } }; } System.Console.ReadLine(); }
public OrdersController() { ordersStorageInst = OrdersStorage.GetInstance(); }