예제 #1
0
        private void Initialize(IRegistrationService registrationService, IWebDriverProviderService webDriverProviderService)
        {
            if (!registrationService.IsCurrentMachineRegistrated())
            {
                MessageBox.Show("Your machine has not been registered.", "Registration Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Environment.Exit(0);
            }

            _plemionaToolLocalData = _plemionaToolLocalDataService.Load();

            _webDriver = webDriverProviderService.CreateWebDriver();

            _windowsPositionService.SetMainFormWindow(this);

            var browserWindow = _webDriver.Manage().Window;

            _windowsPositionService.SetBrowserWindow(browserWindow);

            GridTroopsTemplates.LostFocus += (s, e) => GridTroopsTemplates.ClearSelection();
            GridTroopsOrders.LostFocus    += (s, e) => GridTroopsOrders.ClearSelection();

            _plemionaFeaturesDiagnosticsService       = new PlemionaFeaturesDiagnosticsService(TbxDiagnostics);
            _plemionaFeaturesDiagnostics.OnStepDelay += _plemionaFeaturesDiagnosticsService.LogStepDelay;
            //_plemionaFeaturesDiagnostics.OnStepStart += _plemionaFeaturesDiagnosticsService.LogStepStart;
            _plemionaFeaturesDiagnostics.OnStepEnd      += _plemionaFeaturesDiagnosticsService.LogStepEnd;
            _plemionaFeaturesDiagnostics.OnFeatureStart += _plemionaFeaturesDiagnosticsService.LogFeatureStart;
            _plemionaFeaturesDiagnostics.OnFeatureEnd   += _plemionaFeaturesDiagnosticsService.LogFeatureEnd;

            //BackColor = Color.FromArgb(205, 189, 155);
            //TabTroopsTemplates.BackColor = Color.FromArgb(205, 189, 155);
            //TabTroopsOrders.BackColor = Color.FromArgb(205, 189, 155);
        }
예제 #2
0
        private void GridTroopsOrders_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                string clickedTroopsOrderName = GridTroopsOrders.Rows[e.RowIndex].Cells[1].Value.ToString();

                var clickedTroopOrder = _plemionaToolLocalData.TroopsOrders.Single(to => to.Name == clickedTroopsOrderName);

                if (clickedTroopOrder == _selectedTroopsOrder)
                {
                    _selectedTroopsOrder = null;
                    GridTroopsOrders.ClearSelection();
                }
                else
                {
                    _selectedTroopsOrder = clickedTroopOrder;
                }
            }
        }
예제 #3
0
        private void GridTroopsOrders_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (_selectedTroopsOrder != null)
                {
                    _plemionaToolLocalData.TroopsOrders.Remove(_selectedTroopsOrder);

                    var selectedRow = GridTroopsOrders.Rows.Cast <DataGridViewRow>().Single(r => r.Cells[1].Value.ToString() == _selectedTroopsOrder.Name);

                    GridTroopsOrders.Rows.RemoveAt(selectedRow.Index);

                    FixGridNumbers(GridTroopsOrders);

                    GridTroopsOrders.ClearSelection();

                    _selectedTroopsOrder = null;
                }
            }
        }
예제 #4
0
        private async void FrmMain_Shown(object sender, EventArgs e)
        {
            foreach (var troopsTemplate in _plemionaToolLocalData.TroopsTemplates)
            {
                GridTroopsTemplates.Rows.Add(GridTroopsTemplates.RowCount + 1, troopsTemplate.Name);
            }

            GridTroopsTemplates.ClearSelection();

            foreach (var troopsOrder in _plemionaToolLocalData.TroopsOrders)
            {
                GridTroopsOrders.Rows.Add(GridTroopsOrders.RowCount + 1, troopsOrder.Name, string.Join("..", troopsOrder.VillagesCoordinates.Select(vc => $"{vc.X}|{vc.Y}")), troopsOrder.ExecutionDate, troopsOrder.Everyday);
            }

            GridTroopsOrders.ClearSelection();

            SetReady(false);

            try
            {
                await Task.Run(() =>
                {
                    _plemionaSettingsInitializationService.Initialize();

                    _plemionaFeaturesDiagnostics.SignIn(_plemionaSettings.Url, _plemionaSettings.Username, _plemionaSettings.Password, _plemionaSettings.WorldNumber);
                });
            }
            catch
            {
                MessageBox.Show($"Initialization failed. Happens once in a while, try again.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                _webDriver.Quit();
                Environment.Exit(0);
            }

            _ownTroops = await Task.Run(() =>
            {
                return(_plemionaFeaturesDiagnostics.GetTroops());
            });

            SetReady(true);
        }