private void RemoveCurrentOnClick(object sender, RoutedEventArgs e) { try { this.RefreshWorkingProcessesList(); if (this.GetContext().WorkingAction?.IsCompleted == false) { ErrorNotify.CriticalMessageBox("You can not remove active processes!"); return; } WorkingProcessProvider.RemoveWorkingProcessFromList((string)this.CurrentProcessComboBox.SelectedValue); var newValue = WorkingProcessProvider.GetAllProcessesNames().FirstOrDefault() ?? WorkingProcessProvider.EmptyWorkingProcess.Title; this.CurrentProcessComboBox.SelectedValue = newValue; this.RefreshWorkingProcessesList(); } catch (Exception ex) { ErrorNotify.CriticalMessageBox( "Some error occured. Try to switch over working processes and retry removing"); Logger.Log.Error("Error on working process remove", ex); this.RefreshWorkingProcessesList(); } }
public static WorkingProcessDataContext GetNewInstance(string title) { var steamManager = UiGlobalVariables.SteamManager; var workingProcessTitle = $"{steamManager.Login} {title}"; var wp = ExistWorkingProcesses.FirstOrDefault(w => w.Title == workingProcessTitle); if (wp != null) { if (wp.WorkingAction.IsCompleted) { wp.ResetWorkingProcessToDefault(); } else { ErrorNotify.CriticalMessageBox( $"{workingProcessTitle} working process is already running! Two identical working processes can not be started at the same time!"); return(null); } } else { wp = new WorkingProcessDataContext(workingProcessTitle, steamManager); ExistWorkingProcesses.Add(wp); } return(wp); }
public StatusType DataModelError(ref SIFHeaderType SIFHeader, DataModelErrorType DataModelError1) { ErrorNotify inValue = new ErrorNotify(); inValue.SIFHeader = SIFHeader; inValue.DataModelError = DataModelError1; EventStatus retVal = ((IptDataModel)(this)).DataModelError(inValue); SIFHeader = retVal.SIFHeader; return(retVal.Status); }
private void CancelPendingListings_OnClick(object sender, RoutedEventArgs e) { if (UiGlobalVariables.SteamManager == null) { ErrorNotify.CriticalMessageBox("You should login first!"); return; } var wp = WorkingProcessProvider.GetNewInstance("Cancel pending listings"); wp?.StartWorkingProcess(() => { MarketSellUtils.CancelMarketPendingListings(wp.SteamManager, wp); }); }
private void Confirm2Fa_OnClick(object sender, RoutedEventArgs e) { if (UiGlobalVariables.SteamManager == null) { ErrorNotify.CriticalMessageBox("You should login first!"); return; } var wp = WorkingProcessProvider.GetNewInstance("Confirm market 2FA"); wp?.StartWorkingProcess( () => { MarketSellUtils.ConfirmMarketTransactionsWorkingProcess(wp.SteamManager.Guard, wp); }); }
private static void RefreshSingleModelPriceRealization( SteamItemsModel item, MarketSellStrategy sellStrategy = null) { var task = Task.Run( () => { if (item == null) { return; } try { item.CleanItemPrices(); var averagePriceDays = SettingsProvider.GetInstance().AveragePriceDays; var price = UiGlobalVariables.SteamManager.GetCurrentPrice( item.ItemModel.Asset.Appid, item.ItemModel.Description.MarketHashName); Logger.Log.Debug($"Current price for {item.ItemName} is - {price}"); item.CurrentPrice = price; price = UiGlobalVariables.SteamManager.GetAveragePrice( item.ItemModel.Asset.Appid, item.ItemModel.Description.MarketHashName, averagePriceDays); Logger.Log.Debug( $"Average price for {averagePriceDays} days for {item.ItemName} is - {price}"); item.AveragePrice = price; if (sellStrategy != null) { ((MarketSellModel)item).ProcessSellPrice(sellStrategy); } } catch (Exception ex) { ErrorNotify.CriticalMessageBox("Error on item price update", ex); } }); PriceLoadSubTasks.Add(task); }
public static void OpenOnSteamMarket(SteamItemsModel item) { try { if (item == null) { return; } Process.Start( "https://" + $"steamcommunity.com/market/listings/{item.ItemModel.Asset.Appid}/" + item.ItemModel.Description.MarketHashName); } catch (Exception ex) { ErrorNotify.CriticalMessageBox(ex); } }
public virtual EventStatus DataModelError(ErrorNotify request) { return(DataModelErrorImplementation(request)); }
EventStatus IptDataModel.DataModelError(ErrorNotify request) { return(base.Channel.DataModelError(request)); }
private static void ProcessPriceLoadingTaskRealization( IEnumerable <SteamItemsModel> itemsList, MarketSellStrategy sellStrategy = null) { if (priceLoadingTask?.IsCompleted == false) { ErrorNotify.InfoMessageBox("Price loading is already in progress"); return; } cancellationTokenSource = new CancellationTokenSource(); priceLoadingTask = Task.Run( () => { try { Logger.Log.Debug("Starting price loading task"); var items = itemsList.ToList(); items.ForEach(i => i.CleanItemPrices()); var averagePriceDays = SettingsProvider.GetInstance().AveragePriceDays; var priceLoadingSemaphore = new Semaphore( SettingsProvider.GetInstance().PriceLoadingThreads, SettingsProvider.GetInstance().PriceLoadingThreads); foreach (var item in items) { priceLoadingSemaphore.WaitOne(); Logger.Log.Debug($"Processing price for {item.ItemName}"); var task = Task.Run( () => { var price = UiGlobalVariables.SteamManager.GetCurrentPriceWithCache( item.ItemModel.Asset.Appid, item.ItemModel.Description.MarketHashName); Logger.Log.Debug($"Current price for {item.ItemName} is - {price}"); item.CurrentPrice = price; if (sellStrategy != null) { ((MarketSellModel)item).ProcessSellPrice(sellStrategy); } priceLoadingSemaphore.Release(); }, cancellationTokenSource.Token); PriceLoadSubTasks.Add(task); priceLoadingSemaphore.WaitOne(); task = Task.Run( () => { var price = UiGlobalVariables.SteamManager.GetAveragePriceWithCache( item.ItemModel.Asset.Appid, item.ItemModel.Description.MarketHashName, averagePriceDays); Logger.Log.Debug( $"Average price for {averagePriceDays} days for {item.ItemName} is - {price}"); item.AveragePrice = price; if (sellStrategy != null) { ((MarketSellModel)item).ProcessSellPrice(sellStrategy); } priceLoadingSemaphore.Release(); }, cancellationTokenSource.Token); PriceLoadSubTasks.Add(task); if (cancellationTokenSource.Token.IsCancellationRequested) { WaitForPriceLoadingSubTasksEnd(); Logger.Log.Debug("Market sell price loading was force stopped"); return; } } WaitForPriceLoadingSubTasksEnd(); Logger.Log.Debug("Market sell price loading task is finished"); } catch (Exception ex) { ErrorNotify.CriticalMessageBox("Error on items price update", ex); } }, cancellationTokenSource.Token); }
public virtual EventStatus DataModelError(ErrorNotify request) { return DataModelErrorImplementation(request); }