Esempio n. 1
0
        async void SecChanged()
        {
            Boards.Clear();

            var symbol = (Security?.Name ?? SecText)?.Split(' ')?.First();

            Info = "";

            if (symbol != null)
            {
                try
                {
                    var resp = await Task.Run((() => new SecurityDefinitionRequest(symbol).Response));


                    Info =
                        string.Join("\n", resp.Description.Data.Select(d => $"{d["name"]}: {d["value"]}"));

                    foreach (var board in resp.Boards.Data)
                    {
                        Boards.Add(new Item()
                        {
                            Name  = board["boardid"],
                            Value = board["boardid"],
                            Data  = board
                        });
                    }
                }
                catch (Exception e)
                {
                }
            }

            FirePropertyChanged(nameof(Info));
        }
 public void DeviceRemoved(UsbDevice device)
 {
     Log.Info(TAG, "DeviceRemoved called");
     if (device == null)
     {
         // ugh, Android didn't tell us which device was removed, but if we only have one connected, we'll remove it
         if (Boards.Count == 1)
         {
             Boards[0].Disconnect();
             Boards.Clear();
         }
     }
     else
     {
         if (device.VendorId == 0x10c4 && device.ProductId == 0x8a7e)
         {
             TreehopperUsb removedBoard = Boards.FirstOrDefault(b => b.SerialNumber == device.SerialNumber);
             if (removedBoard != null)
             {
                 removedBoard.Disconnect();
                 Boards.Remove(removedBoard);
             }
         }
     }
 }
Esempio n. 3
0
        private void Engine_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                Markets.Clear();
                foreach (var item in new MarketsRequest(Engine.Value).Response.Markets.Data.Select(d =>
                                                                                                   new Item
                {
                    Name = d["title"],
                    Value = d["NAME"],
                    Data = d
                }
                                                                                                   ))
                {
                    Markets.Add(item);
                }

                Securities.Clear();
                Boards.Clear();

                Info    = "";
                History = new List <HistoryObject>();
                FirePropertyChanged(nameof(Info));
                FirePropertyChanged(nameof(History));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }
Esempio n. 4
0
        private async void Market_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Securities.Clear();
            Boards.Clear();

            Info    = "";
            History = new List <HistoryObject>();
            FirePropertyChanged(nameof(Info));
            FirePropertyChanged(nameof(History));

            try
            {
                foreach (var item in
                         await Task <IEnumerable <Item> > .Run(() =>
                {
                    return(new MarketSecuritiesListRequest(Engine.Value, Market.Value).Response.Securities.Data.Select(d =>
                                                                                                                       new Item
                    {
                        Name = $"{d["SECID"]}",
                        Value = d["SECID"],
                        Data = d
                    }).Distinct(new ItemEqvCmp()));
                }))
                {
                    Securities.Add(item);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }
Esempio n. 5
0
        void Refresh()
        {
            try
            {
                Engines.Clear();

                foreach (var item in new EnginesRequest().Response.Engines.Data.Select(d => new Item()
                {
                    Name = d["title"],
                    Value = d["name"],
                    Data = d
                }))
                {
                    Engines.Add(item);
                }


                Markets.Clear();
                Securities.Clear();
                Boards.Clear();

                Info    = "";
                History = new List <HistoryObject>();

                FirePropertyChanged(nameof(Info));
                FirePropertyChanged(nameof(History));
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error");
            }
        }
Esempio n. 6
0
 private void ReloadComandExecute()
 {
     IsBusy = true;
     Boards.Clear();
     Task.Factory.StartNew(() => Business.Jira.GetBoards()).ContinueWith(t =>
     {
         t.Result.Select(b => new Tuple <int, string>(b.Key, b.Value)).ToList().ForEach(i => Boards.Add(i));
         IsBusy = false;
     }, TaskScheduler.FromCurrentSynchronizationContext());
 }
Esempio n. 7
0
        private async void LoadBoards(string selectedId)
        {
            _progress.Show("Loading boards...");
            try
            {
                var boards = (await _api.Boards.ForMe(BoardFilter.Open)).ToList();
                Boards.Clear();
                Boards.AddRange(boards);

                SelectedBoard = boards.FirstOrDefault(b => b.Id == selectedId);
            }
            catch (Exception ex)
            {
                Analytics.LogException(ex);
                MessageBox.Show("Your boards were unable to be loaded.  Please " +
                                "ensure that you have an active internet connection.");
            }
            finally
            {
                _progress.Hide();
            }
        }
Esempio n. 8
0
        public async Task GetBoards()
        {
            Boards.Clear();

            var result = await _boardsService.GetTestedBoards(CertificateId);

            if (!result.Success)
            {
                Dialogs.Toast(result.Message);
                return;
            }

            var boards = result.ResultObject as List <BoardTest>;

            if (boards == null || !boards.Any())
            {
                return;
            }

            Boards.AddRange(new List <BoardTest>(boards.OrderBy(x => x.BoardIdentity)));
            await GetCircuitsForCurrentBoard();
        }
Esempio n. 9
0
        public async void OnNavigatedTo()
        {
            Boards.Clear();
            RecentBoards.Clear();

            try
            {
                BusyMessage = "Downloading available agile boards...";
                IsBusy      = true;

                var boards = await _jiraApi.Agile.GetAgileBoards();

                var recentBoards = GetRecentBoardsIds();
                foreach (var board in boards.OrderBy(b => b.Name))
                {
                    Boards.Add(board);
                    if (recentBoards.Contains(board.Id))
                    {
                        RecentBoards.Add(board);
                    }
                }
            }
            catch (MissingJiraAgileSupportException)
            {
                MessageBox.Show("Please log into JIRA instance with JIRA Agile installed.", "JIRA Assistant", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch (Exception e)
            {
                Sentry.CaptureException(e);
                MessageBox.Show("Failed to retrieve list of available JIRA boards. Can't go any further.\nReason: " + e.Message, "JIRA Assistant", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            finally
            {
                IsBusy      = false;
                BusyMessage = "";
            }
        }
Esempio n. 10
0
        private async Task GetBoards(BoardsFilters filters, bool forceCloud = false)
        {
            try
            {
                using (var dlg = this.Dialogs.Loading("Progress (No Cancel)"))
                {
                    Boards.Clear();

                    var testedBoardsResult = await _boardsService.GetTestedBoards(CertificateId);

                    if (!testedBoardsResult.Success)
                    {
                        Dialogs.Toast(testedBoardsResult.Message);
                        return;
                    }

                    var relatedBoards = testedBoardsResult.ResultObject as List <BoardTest>;

                    if (relatedBoards != null)
                    {
                        TestedBoards = relatedBoards;

                        var allBoardsResult = await _boardsService.GetAllBoards(filters, BuildingId, forceCloud);

                        if (!allBoardsResult.Success)
                        {
                            Dialogs.Toast(allBoardsResult.Message);
                            return;
                        }

                        var boardsAndNumber = allBoardsResult.ResultObject as Tuple <IEnumerable <BoardRow>, int, int>;
                        if (boardsAndNumber == null)
                        {
                            return;
                        }

                        Dialogs.Toast("Results; " + boardsAndNumber.Item3 + " records returned out of " + boardsAndNumber.Item2 + " found.");

                        var boards = boardsAndNumber.Item1;

                        if (boards != null && boards.Any())
                        {
                            foreach (var board in boards)
                            {
                                var selectableBoard = new BoardSelect {
                                    Board = board, IsSelected = false
                                };
                                if (relatedBoards.Any(x => x.BoardId == board.BoardId))
                                {
                                    selectableBoard.IsSelected = true;
                                }
                                Boards.Add(selectableBoard);
                            }
                        }
                    }
                }
            }
            catch (ServiceAuthenticationException e)
            {
                var result = await TryToLogin();

                if (!result)
                {
                    await NavigationService.NavigateToAsync <LoginViewModel>();
                }
                else
                {
                    await GetBoards(filters, forceCloud);
                }
            }
            catch (Exception e)
            {
                await ShowErrorAlert(e.Message);
            }
        }
Esempio n. 11
0
 private void LoadBoards()
 {
     Boards.Clear();
     Boards.AddRange(ArduinoCLI_API.GetInstalledBoards().OrderBy(b => b.Fqbn));
     ((BindingSource)(cbBoards.DataSource)).ResetBindings(false);
 }
Esempio n. 12
0
        private async Task GetBoards()
        {
            try
            {
                using (var dlg = this.Dialogs.Loading("Progress (No Cancel)"))
                {
                    Boards.Clear();

                    var testedBoardsResult = await _boardsService.GetTestedBoards(CertificateId);

                    if (!testedBoardsResult.Success)
                    {
                        Dialogs.Toast(testedBoardsResult.Message);
                        return;
                    }

                    var relatedBoards = testedBoardsResult.ResultObject as List <BoardTest>;

                    if (relatedBoards != null)
                    {
                        TestedBoards = relatedBoards;

                        var downloadedBoardsResult = await _boardsService.GetAllDownloadedBoards(BuildingId);

                        if (!downloadedBoardsResult.Success)
                        {
                            Dialogs.Toast(downloadedBoardsResult.Message);
                            return;
                        }

                        var boards = downloadedBoardsResult.ResultObject as List <Board>;

                        if (boards != null && boards.Any())
                        {
                            foreach (var board in boards)
                            {
                                var selectableBoard = new BoardDetailsSelect {
                                    Board = board, IsSelected = false
                                };

                                if (relatedBoards.Any(x => x.BoardId == board.BoardId))
                                {
                                    selectableBoard.IsSelected = true;
                                }
                                Boards.Add(selectableBoard);
                            }

                            foreach (var board in relatedBoards)
                            {
                                if (Boards.Any(x => x.Board.BoardId == board.BoardId))
                                {
                                    continue;
                                }

                                var testedBoard     = AutoMapper.Mapper.Map <Board>(board);
                                var selectableBoard = new BoardDetailsSelect {
                                    Board = testedBoard, IsSelected = true
                                };
                                Boards.Add(selectableBoard);
                            }
                        }
                    }
                }
            }
            catch (ServiceAuthenticationException e)
            {
                var result = await TryToLogin();

                if (!result)
                {
                    await NavigationService.NavigateToAsync <LoginViewModel>();
                }
                else
                {
                    await GetBoards();
                }
            }
            catch (Exception e)
            {
                await ShowErrorAlert(e.Message);
            }
        }
Esempio n. 13
0
        public void Solve()
        {
            ensureDataLoaded();
            Boards.Clear();
            Solutions.Clear();
            var level = 1;

            MaxLevelReached = 1;
            Combinations.Clear();
            var totalCombinations = GetTotalCombinations();

            Combinations.Add(totalCombinations);
            var prevCombinations = totalCombinations;
            var boardSize        = Math.Max(_data.Width, _data.Height);

            while (true)
            {
                // get all possible combinations of nr+1 indexes, so that we can filter the possibilities away
                // nr=0 means the possible combinations are just one of each perpendicular rows or columns
                // nr=1 means possibilities are weighed against every combination in any two perpendicular rows or columns,etc
                var piRows = getAllPossibleIndexes(_data.Height, level);
                filterPossibilities(_colPossibilities, _rowPossibilities, piRows); // filter column possibilities by rows
                totalCombinations = GetTotalCombinations();
                addCombinationNr(totalCombinations);
                generateBoard(); // generates a board with partial results

                if (prevCombinations != totalCombinations)
                {
                    level = 1;
                }
                Debug.WriteLine($"Combinations so far: {totalCombinations}, level: {level}, max level reached: {MaxLevelReached}");
                Console.WriteLine($"Combinations so far: {totalCombinations}, level: {level}, max level reached: {MaxLevelReached}");

                var piCols = getAllPossibleIndexes(_data.Width, level);
                filterPossibilities(_rowPossibilities, _colPossibilities, piCols); // filter row possibilities by columns
                totalCombinations = GetTotalCombinations();
                if (totalCombinations <= 1)
                {
                    break;
                }
                addCombinationNr(totalCombinations);
                generateBoard(); // generates a board with partial results

                if (prevCombinations == totalCombinations)
                {
                    if (level <= boardSize && level < MaxPuzzleLevel)
                    {
                        level++;
                        if (level > MaxLevelReached)
                        {
                            MaxLevelReached = level;
                        }
                    }
                    else
                    {
                        Debug.WriteLine("Maximum puzzle level reached");
                        Console.WriteLine("Maximum puzzle level reached. Starting brute force (it will take a while, please wait...)");
                        break;
                    }
                }
                else
                {
                    level = 1;
                }
                Debug.WriteLine($"Combinations so far: {totalCombinations}, level: {level}, max level reached: {MaxLevelReached}");
                Console.WriteLine($"Combinations so far: {totalCombinations}, level: {level}, max level reached: {MaxLevelReached}");

                prevCombinations = totalCombinations;
            }
            // fill all possible solutions from the remaining column and row possibilities
            generateSolutions();
        }