public PlayerDetails GetPlayerDetails(string realm, string name)
        {
            var playerInfo   = _gameApiClient.GetCharacterDetails(realm, name);
            var debtorStatus = _debtorRepository.GetDebtorStatus(realm, name);

            return(new PlayerDetails()
            {
                DebtorStatus = debtorStatus, InGameInfo = playerInfo
            });
        }
Example #2
0
        public Guid OrderCollection(DebtDetails debtDetails)
        {
            var clientId = _playerRepository.GetPlayerId(debtDetails.ClientRealm, debtDetails.ClientName);

            if (clientId == default(Guid))
            {
                var clientApiResult = _gameApiClient.GetCharacterDetails(debtDetails.ClientRealm, debtDetails.ClientName);
                if (clientApiResult == null)
                {
                    throw new ArgumentOutOfRangeException(nameof(debtDetails.ClientName), "Could not find specified character");
                }

                clientId = _playerRepository.AddPlayer(debtDetails.ClientRealm, debtDetails.ClientName);
            }

            var debtorId = _playerRepository.GetPlayerId(debtDetails.DebtorRealm, debtDetails.DebtorName);

            if (debtorId == default(Guid))
            {
                var debtorApiResult = _gameApiClient.GetCharacterDetails(debtDetails.DebtorRealm, debtDetails.DebtorName);
                if (debtorApiResult == null)
                {
                    throw new ArgumentOutOfRangeException(nameof(debtDetails.DebtorName), "Could not find specified character");
                }

                debtorId = _playerRepository.AddPlayer(debtDetails.DebtorRealm, debtDetails.DebtorName);
            }

            var orderId = _debtRepository.AddDebt(debtorId, clientId, debtDetails.DebtContextId, debtDetails.DebtAmount);

            var userName = WindowsIdentity.GetCurrent().Name;

            _debtCollectionRepository.UpdateOrderAssignment(orderId, userName);

            return(orderId);
        }