Beispiel #1
0
        public Program()
        {
            ICommand                      _command               = new Command();
            ICheckCommand                 _checkCommand          = new CheckCommand(_command);
            ISlot                         _slot                  = new Slot();
            IParkingLotRepository         _parkingRepository     = new ParkingLotRepository();
            ICheckParkingLotCreated       checkParkingLotCreated = new CheckParkingLotCreated(_parkingRepository);
            ICommandExecutorSelector      createParkingLot       = new CreateParkingLot(_checkCommand, _slot, checkParkingLotCreated, _parkingRepository);
            IValidateVeicleDetails        _validateVeicleDetails = new ValidateVeicleDetails();
            IParkingVehicle               _parkingVehicle        = new ParkingVehicle();
            IParkSuccessMessage           _parkSuccessMessage    = new ParkSuccessMessage();
            ICommandExecutorSelector      park          = new Park(_checkCommand, _validateVeicleDetails, _parkingVehicle, _parkingRepository, _parkSuccessMessage);
            ISlotToEmpty                  _slotToEmpty  = new SlotToEmpty();
            IMaxSlotIndex                 _maxSlotIndex = new MaxSlotIndex();
            IValidateSlotNumberToEmpty    _validateSlotNumberToEmpty = new ValidateSlotNumberToEmpty(_parkingRepository, _maxSlotIndex);
            ILeaveSuccessMessage          _leaveSuccessMessage       = new LeaveSuccessMessage();
            ICommandExecutorSelector      leave           = new Leave(_checkCommand, _slotToEmpty, _validateSlotNumberToEmpty, _parkingRepository, _leaveSuccessMessage);
            IStatusOutput                 _statusOutput   = new StatusOutput();
            ICommandExecutorSelector      status          = new Status(_parkingRepository, _statusOutput);
            IVehicleColor                 _vehicleColor   = new VehicleColor();
            IVehicleByColor               _vehicleByColor = new VehicleByColor();
            IVehicleByColorSuccessMessage _vehicleByColorSuccessMessage = new VehicleByColorSuccessMessage();
            ICommandExecutorSelector      regNoByColor               = new RegistrationNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _vehicleByColor, _vehicleByColorSuccessMessage);
            ISlotByColor                  _slotByColor               = new SlotByColor();
            ISlotByColorMessage           _slotByColorMessage        = new SlotByColorMessage();
            ICommandExecutorSelector      slotNoByColor              = new SlotNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _slotByColor, _slotByColorMessage);
            IVehicleRegistrationNumber    _vehicleRegistrationNumber = new VehicleRegistrationNumber();
            ISlotByRegistrationNumber     _slotByRegistrationNumber  = new SlotByRegistrationNumber();
            ICommandExecutorSelector      slotByRegistration         = new SlotNumberForRegistrationNumber(_checkCommand, _vehicleRegistrationNumber, _parkingRepository, _slotByRegistrationNumber);

            ICommandExecutorSelector[] _selectors = { createParkingLot, park, leave, status, regNoByColor, slotNoByColor, slotByRegistration };
            _provider = new CommandExecutorProvider(_selectors);
        }
Beispiel #2
0
        public MainWindow()
        {
            if (Instance != null)
            {
                // I know, this "single-instance" thing is hardly ideal. I might come back to it.
                throw new InvalidOperationException("Only one instance of this class should be created");
            }

            Instance = this;

            InitializeComponent();

            OutputLog debug = LogView.Supplier.Start(
                "MainWindow_Output", "Debug", ViewSupplier.Category_Main);

            ILogEventSink output = new Output(new OutputLogWriter(debug));

            Logs.AddSink(output);

            ILogEventSink status = new StatusOutput(StatusView, this);

            Logs.AddSink(status);

            FileView.FileOpened += OnOpenFile;

            SetupViewHiding(ScreenView, ScreenTab, OutputTabs);
            SetupViewHiding(MemoryView, MemoryTab, InfoTabs);

            foreach (FileOpenedEventArgs item in FileView.EnumerateOpenedFiles())
            {
                OnOpenFile(FileView, item);
            }
        }
Beispiel #3
0
        public async Task <ActionResult> ViewSummary()
        {
            try
            {
                var authResult = await _unifiedAuth.AuthenticateUser(Request.HttpContext);

                var tokenStatus = authResult.Item3;

                switch (tokenStatus)
                {
                case TokenHelper.TokenStatus.Valid:
                {
                    var account = authResult.Item2;

                    var accountId = account.Id;

                    HttpClient client = new HttpClient()
                    {
                        BaseAddress = new Uri(_portfolioPerformanceApiBaseUrl)
                    };


                    var byteArray = Encoding.ASCII.GetBytes($"{_internalServiceAuthUsername}:{_internalServiceAuthPassword}");
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

                    var response = await client.GetStringAsync($"PerformanceReport/GetCurrentPerformance/{accountId}");

                    var responseJson = JsonConvert.DeserializeObject <PortfolioPerformanceReport>(response);

                    return(Ok(responseJson));
                }

                case TokenHelper.TokenStatus.Expired:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.ExpiredTokenMessage
                    };

                    return(Ok(status));
                }

                default:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.InvalidTokenMessage
                    };

                    return(Ok(status));
                }
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, $"{nameof(ViewSummary)}");
                return(StatusCode(500));
            }
        }
Beispiel #4
0
        /// <summary>
        /// Display the status given.
        /// </summary>
        /// <param name="status">Status message.</param>
        private void DispalyStatus(string status)
        {
            StatusOutput += status + "\n";

            if (StatusOutput.Length > 500)
            {
                StatusOutput = StatusOutput.Substring(StatusOutput.Length - 500);
            }
        }
Beispiel #5
0
        public async Task <ActionResult> ViewBalance()
        {
            try
            {
                var authResult = await _unifiedAuth.AuthenticateUser(Request.HttpContext);

                var tokenStatus = authResult.Item3;

                switch (tokenStatus)
                {
                case TokenHelper.TokenStatus.Valid:
                {
                    var account = authResult.Item2;

                    AccountBalanceOutput output = new AccountBalanceOutput()
                    {
                        AccountId      = account.Id,
                        AccountBalance = account.Balance
                    };

                    return(Ok(output));
                }

                case TokenHelper.TokenStatus.Expired:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.ExpiredTokenMessage
                    };

                    return(Ok(status));
                }

                default:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.InvalidTokenMessage
                    };

                    return(Ok(status));
                }
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, $"{nameof(ViewBalance)}");
                return(StatusCode(500));
            }
        }
Beispiel #6
0
        public async Task <ActionResult> ViewTransactions()
        {
            try
            {
                var authResult = await _unifiedAuth.AuthenticateUser(Request.HttpContext);

                var tokenStatus = authResult.Item3;

                switch (tokenStatus)
                {
                case TokenHelper.TokenStatus.Valid:
                {
                    var account = authResult.Item2;

                    var transactions = await _context.Transactions.Where(x => x.AccountId == account.Id).ToListAsync();

                    var orders = transactions.Join(_context.Orders, transactions1 => transactions1.TransactionId,
                                                   orders1 => orders1.TransactionID, (transactions1, orders1) => orders1).ToList();

                    return(Ok(orders));
                }

                case TokenHelper.TokenStatus.Expired:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.ExpiredTokenMessage
                    };

                    return(Ok(status));
                }

                default:
                {
                    StatusOutput status = new StatusOutput()
                    {
                        message = StatusMessages.InvalidTokenMessage
                    };

                    return(Ok(status));
                }
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, $"{nameof(ViewTransactions)}");
                return(StatusCode(500));
            }
        }
Beispiel #7
0
        private bool SwitchStoryboard(string path)
        {
            try
            {
                var info = BeatmapFolderInfo.Parse(path);
                StatusOutput.ChangeText($"正在切换{Path.GetFileName(info.osb_file_path)}...");
                StoryboardPlayerHelper.PlayStoryboard(info);
                StatusOutput.ChangeText($"");
            }
            catch (Exception e)
            {
                logger.LogError($"无法切换SB:原因 {e.Message}");
                return(false);
            }

            return(true);
        }
Beispiel #8
0
        public async Task <StatusOutput> AlterarStatus(StatusInput statusInput, CancellationToken cancellationToken)
        {
            return(await Task.Run(() =>
            {
                StatusOutput statusOutput = new StatusOutput();
                statusOutput.Pedido = statusInput.Pedido;

                Pedido pedido = PedidoRepository.GetById(statusInput.Pedido);
                if (pedido == null)
                {
                    pedido = new Pedido();
                }

                pedido.AlterarStatus(statusInput.Status, statusInput.ItensAprovados, statusInput.ValorAprovado);
                statusOutput.Status = pedido.GetStatusDetalhado();
                return statusOutput;
            }, cancellationToken));
        }
Beispiel #9
0
        private Task DownloadBeatmap(int beatmap_setid)
        {
            return(Task.Run(() => {
                WebClient client = new WebClient();
                var file_name = $"{beatmap_setid}.osz";
                StatusOutput.ChangeText($"正在下载{beatmap_setid}...");

                client.DownloadFile(new Uri($"https://mikirasora.moe/api/osu/dl_map?beatmap_setid={beatmap_setid}&api=98D037CD"), file_name);

                using (ZipArchive archive = ZipFile.Open(file_name, ZipArchiveMode.Update))
                {
                    var output_path = Path.Combine(Setting.Instance.StoryboardFolders, $"{beatmap_setid}");
                    Directory.CreateDirectory(output_path);

                    archive.ExtractToDirectory(output_path);
                }
            }));
        }
Beispiel #10
0
 public BookwormForm()
 {
     InitializeComponent();
     LockMode.Active           = true;
     BookwormForm.FormInstance = this;
     Hotkeys      = new Hotkeys(Bot, this);
     StatusOutput = new StatusOutput(this);
     Hotkeys.LoadHotkeys();
     bLoadAndParseDictionary_Click(this, EventArgs.Empty);
     this.cbDatabase.SelectedIndex = 1;
     Bot.Database.SwitchDatabase(this.cbDatabase.SelectedItem.ToString());
     Bot.Vocabulary.LoadGrimmDictionaryAsync();
     GarbageCollector.StartCollectingInBackground();
     foreach (Screenpart screenpart in (Screenpart[])Enum.GetValues(typeof(Screenpart)))
     {
         this.lbScreenparts.Items.Add(screenpart);
     }
     Task.Run((Action)CaptureAndBot);
     // LoadTilePositions();
 }
Beispiel #11
0
        private async void SwitchStoryboard(int beatmap_setid)
        {
            var path = Directory.EnumerateDirectories(Setting.Instance.StoryboardFolders, $"{beatmap_setid}*").FirstOrDefault();

            if (string.IsNullOrWhiteSpace(path))
            {
                try
                {
                    await DownloadBeatmap(beatmap_setid);

                    path = Directory.EnumerateDirectories(Setting.Instance.StoryboardFolders, $"{beatmap_setid}*").FirstOrDefault();
                }
                catch (Exception e)
                {
                    StatusOutput.ChangeText($"下载{beatmap_setid}失败!{e.Message}", 5000);
                }
            }

            if (!SwitchStoryboard(path))
            {
                RequestSwitch();
            }
        }
Beispiel #12
0
        public async Task <ActionResult <Users> > RegisterUser(LoginInput input)
        {
            try
            {
                if (!_context.Users.Any(x => x.Username == input.username))
                {
                    DataSyncManager dataSyncManager = new DataSyncManager(_syncDbConnectionString);

                    byte[] salt = new byte[128 / 8];
                    using (var rng = RandomNumberGenerator.Create())
                    {
                        rng.GetBytes(salt);
                    }

                    Users newUser = new Users()
                    {
                        Username      = input.username,
                        Password      = PasswordHashHelper.GetHash(input.password, salt),
                        Salt          = salt,
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    _context.Users.Add(newUser);
                    await _context.SaveChangesAsync();

                    Users createdUser = await _context.Users.FirstOrDefaultAsync(x => x.Username == input.username);

                    Tokens newToken = new Tokens()
                    {
                        UserID        = createdUser.Id,
                        Token         = TokenHelper.GenerateToken(input.username, TokenHelper.TokenType.Standard),
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    Accounts newAccount = new Accounts()
                    {
                        UserID        = createdUser.Id,
                        Balance       = 1000000.99,
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    _context.Tokens.Add(newToken);
                    _context.Accounts.Add(newAccount);
                    await _context.SaveChangesAsync();

                    if (_dataSyncEnabled)
                    {
                        Users replicatedUser = new Users()
                        {
                            Username      = newUser.Username,
                            Password      = newUser.Password,
                            Salt          = newUser.Salt,
                            EnvironmentId = RDSEnums.EnvironmentId.ProductionSecondary
                        };

                        await dataSyncManager.SyncNewUser(replicatedUser, newToken.Token);
                    }

                    StatusOutput output = new StatusOutput()
                    {
                        message = StatusMessages.UserCreatedMessage
                    };
                    return(Ok(output));
                }
                else
                {
                    StatusOutput output = new StatusOutput()
                    {
                        message = StatusMessages.UserExistsMessage
                    };
                    return(Ok(output));
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, $"{nameof(RegisterUser)}");
                return(StatusCode(500));
            }
        }