public override Task <GetAccountsResponse> Get(GetAccountsRequest request, ServerCallContext context)
        {
            var accounts = request.Ids.Select(id => accountsRepository.Get(id))
                           .Where(account => account != null)
                           .Select(account => mapper.Map <Account>(account));

            return(Task.FromResult(new GetAccountsResponse {
                Accounts = { accounts }
            }));
        }
Exemplo n.º 2
0
        public Task Get(MessageContext context, GetAccountsEvent inputEvent)
        {
            var accounts = inputEvent.Ids.Select(id => accountsRepository.Get(id))
                           .Where(account => account != null)
                           .ToArray();

            publishingRouter.Publish(context.ReplyTo, new SelectedAccountsEvent {
                Accounts = accounts
            }, context.FlowId);
            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        public void SelectCharacter(Client sender, params object[] args)
        {
            if (Guid.TryParse(args[0].ToString(), out Guid userGuid) &&
                int.TryParse(args[1].ToString(), out int accountId) &&
                int.TryParse(args[2].ToString(), out int characterIndex))
            {
                if (EntityHelper.GetAccounts().All(account => account.DbModel.Id != accountId))
                {
                    RoleplayContext ctx = Singletons.RoleplayContextFactory.Create();
                    using (AccountsRepository accountsRepository = new AccountsRepository(ctx))
                        using (CharactersRepository charactersRepository = new CharactersRepository(ctx))
                        {
                            AccountModel  accountModel  = accountsRepository.Get(accountId);
                            AccountEntity accountEntity = new AccountEntity(accountModel, sender);
                            accountEntity.Login(userGuid);

                            int characterId = accountEntity.DbModel.Characters.Where(character => character.IsAlive).ToList()[characterIndex].Id;

                            CharacterModel  characterModel  = charactersRepository.Get(characterId);
                            CharacterEntity characterEntity = new CharacterEntity(accountEntity, characterModel);
                            accountEntity.SelectCharacter(characterEntity);
                        }
                }
            }
            else
            {
                sender.Kick("Nie udało się zalogować. Skontaktuj się z administratorem.");
            }
        }
Exemplo n.º 4
0
        public override async Task <TransferResponse> Transfer(TransferRequest request, ServerCallContext context)
        {
            if (!accountsRepository.CanTransfer(request.Transfer.AccountId, request.Transfer.Recipient, request.Transfer.Amount))
            {
                throw new ArgumentException("Cannot transfer founds.");
            }

            var transfer = CreateRequest(request.Transfer);
            var result   = await transactionsClient.CreateAsync(transfer, context.RequestHeaders.SelectCustom());

            accountsRepository.Transfer(request.Transfer.AccountId, request.Transfer.Recipient, request.Transfer.Amount);
            var affectedAccounts = new[] { accountsRepository.Get(request.Transfer.AccountId), accountsRepository.Get(request.Transfer.Recipient) };

            if (affectedAccounts.Length > 0)
            {
                projectionChannel.Publish(context.RequestHeaders.GetFlowId(), new DataProjection <Models.Account, string> {
                    Upsert = affectedAccounts
                });
            }

            return(new TransferResponse {
                Transaction = result.Transaction
            });
        }
Exemplo n.º 5
0
 public Task <Register> Get(int Id)
 {
     return(accountsRepository.Get(Id));
 }
Exemplo n.º 6
0
 internal IEnumerable <Account> Get(string userId)
 {
     return(_repo.Get(userId));
 }