Пример #1
0
        public async Task <AccountResult> GetAccount(Guid accountId)
        {
            Customer customer = await mongoDB.Customers
                                .Find(Builders <Customer> .Filter.ElemMatch(x => x.Accounts, e => e.Id == accountId))
                                .SingleOrDefaultAsync();

            Account data = null;

            foreach (var item in customer.Accounts)
            {
                if (item.Id == accountId)
                {
                    data = item;
                }
            }

            if (data == null)
            {
                throw new AccountNotFoundException($"The account {accountId} does not exists or is not processed yet.");
            }

            AccountResult accountVM = this.mapper.Map <AccountResult>(data);

            return(accountVM);
        }
Пример #2
0
        public async Task <AccountResult> SignInAsync(string userId, string passWord)
        {
            string        url           = "http://localhost:5001/api/account/signin";
            AccountResult accountResult = new AccountResult();

            try
            {
                var postData = new Dictionary <string, string>();
                postData.Add("userId", userId);
                postData.Add("passWord", passWord);
                //  var content = new FormUrlEncodedContent(postData);
                var response = await httpClient.PostAsync(url, postData);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var result = await response.Content.ReadAsStringAsync();

                    accountResult = JsonConvert.DeserializeObject <AccountResult>(result);
                    return(accountResult);
                }
            }
            catch (Exception ex)
            {
                logger.LogError("SignIn在重试后失败," + ex.Message + "堆栈信息:" + ex.StackTrace);
                // logger.LogWarning("SignIn在重试后失败," + ex.Message + "堆栈信息:" + ex.StackTrace);
                accountResult = new AccountResult
                {
                    Status  = "登陆失败",
                    Message = $"异常信息:{ex.Message}{System.Environment.NewLine}堆栈信息{ex.StackTrace}"
                };
            }
            //登陆结果应该永远不为空

            return(accountResult);
        }
Пример #3
0
        void FillForm(AccountResult account)
        {
            FormEnableEdit.IsEnabled = true;
            EnableFormEdit           = false;

            FormUsername.Content  = account.Username;
            FormPassword.Text     = account.Password;
            FormLastLogin.Content = account.LastLogin.ToString();

            FormAccessLevel.Items.Clear();
            var Levels = Enum.GetNames(typeof(UoClientSDK.AccessLevel)).Select(level => new ComboBoxItem()
            {
                Content = level.ToString()
            });

            foreach (var level in Levels)
            {
                FormAccessLevel.Items.Add(level);
            }
            FormAccessLevel.Text = account.AccessLevel.ToString();

            FormBanned.IsChecked = account.Banned;

            FillAddresses(AddressesBlock, account.Addresses);
            FillAddresses(RestrictionsBlock, account.AddressRestrictions);
        }
Пример #4
0
        // Register is always used for someone not in the database, only first time User or first time Asset use this method
        public async Task<AccountResult> RegisterUser(RegistrationModelBase model)
        {
            UserProfile profile;
            User user = null;

            switch (model.Type)
            {
                case IdentityTypes.USER:
                    profile = new UserProfile(model as UserRegistrationModel);
                    user = new User(model as UserRegistrationModel, profile);
                    break;
                case IdentityTypes.BIKE_MESSENGER:
                case IdentityTypes.CNG_DRIVER:
                    profile = new AssetProfile(model as AssetRegistrationModel);
                    user = new Asset(model as AssetRegistrationModel, profile as AssetProfile);
                    break;
                case IdentityTypes.ENTERPRISE:
                    var enterpriseProfile = new EnterpriseUserProfile(model as EnterpriseUserRegistrationModel);
                    user = new EnterpriseUser(model as EnterpriseUserRegistrationModel, enterpriseProfile);
                    break;

            }
            var identityResult = await accountManager.CreateAsync(user, model.Password);
            var creationResult = new AccountResult(identityResult, user);

            return creationResult;
        }
Пример #5
0
        public void CopiesValuesFromSourceAccountTest()
        {
            var account = Model.Create <Account>();

            var sut = new AccountResult(account);

            sut.Should().BeEquivalentTo(account, opt => opt.ExcludingMissingMembers());
        }
Пример #6
0
 bool TryGetAccount(string accountname, out AccountResult account)
 {
     if (string.IsNullOrEmpty(accountname) || !Accounts.ContainsKey(accountname))
     {
         account = new AccountResult();
         return(false);
     }
     else
     {
         account = Accounts[accountname];
         return(true);
     }
 }
Пример #7
0
        public static void ShowResults(string title, AccountResult result)
        {
            ShowHeader(title);
            Console.WriteLine("SessionId     {0}", result.SessionId);
            Console.WriteLine("SessionDate   {0}", result.SessionDate);
            Console.WriteLine("AccountNumber {0}", result.AccountNumber);
            Console.WriteLine("HoldType      {0}", result.HoldType);
            Console.WriteLine("IsSuccessful  {0}", result.Success);

            if (result.Exceptions != null)
                foreach (ExceptionMessage ex in result.Exceptions) {
                    Console.WriteLine("    Exception: [{0}] - {1}, {2}", ((int)ex.ExceptionType), ex.ExceptionType, ex.Message);
                }
            Console.WriteLine();
        }