コード例 #1
0
        /// <summary>
        /// Получаем из таблици PLATFORM_USER пользователя по его уникальному идентификатору.
        /// "преобразуем" полученные данный в объект типа "AccountUserModel"
        /// Из таблици "PLATFORM_USER_ACCOUNT" вытаскиваем все записи (пользователь --- какой-либо счёт этого пользователя --- права на этот счёт этого пользователя)
        /// преобразуем полученные записи в словарь и записываем в свойство UserRightsMask
        ///
        /// так же получает данные о кошельке пользователя
        /// </summary>
        /// <param name="id">Уникальный идентификатор пользователя, по которому нужно пудучить детальную информацию</param>
        /// <remarks>Тестируется в методе NuAccountDbEditUserInfo</remarks>
        public AccountUserModel GetUserInfoById(int id)
        {
            AccountUserModel result = null;

            try
            {
                using (var ctx = DatabaseContext.Instance.Make())
                {
                    var user = ctx.PLATFORM_USER.FirstOrDefault(x => x.ID == id);

                    if (user != null)
                    {
                        result = SiteAdminLinqToEntity.DecoratePlatformUser(user);
                        var userRights = user.PLATFORM_USER_ACCOUNT.Where(x => x.PlatformUser == id);
                        result.UserRightsMask = userRights.ToDictionary(x => x.Account, y => (UserAccountRights)y.RightsMask);

                        var wallet = ctx.WALLET.FirstOrDefault(x => x.User == id);
                        if (wallet != null)
                        {
                            result.WalletBalance  = wallet.Balance;
                            result.WalletCurrency = wallet.Currency;
                        }
                        else
                        {
                            Logger.InfoFormat("GetWalletDetailsById() - не найдено кошелька для пользователя {0}", id);
                        }
                    }
                }
            }
            #region catch
            catch (EntityException ex)
            {
                Logger.Error(String.Format("Не удалось получить данные о пользователе {0}, из за невозможности обратиться к серверу", id), ex);
            }
            catch (Exception ex)
            {
                Logger.Error("GetUserInfoById", ex);
            }
            #endregion
            return(result);
        }
コード例 #2
0
        public List <AccountUserModel> GetAllPlatformUser()
        {
            var result = new List <AccountUserModel>();

            try
            {
                using (var ctx = DatabaseContext.Instance.Make())
                {
                    var usersInfo = from x in ctx.PLATFORM_USER
                                    select new
                    {
                        user              = x,
                        right             = x.PLATFORM_USER_ACCOUNT,
                        walletBalance     = x.WALLET.Balance,
                        walletCurrency    = x.WALLET.Currency,
                        service           = x.SERVICE,
                        CountOwnerSignal  = x.SERVICE.Count,
                        countSubscription = x.SUBSCRIPTION.Count
                    };
                    foreach (var useInfo in usersInfo)
                    {
                        var us = SiteAdminLinqToEntity.DecoratePlatformUser(useInfo.user);
                        us.UserRightsMask    = useInfo.right.ToDictionary(x => x.Account, y => (UserAccountRights)y.RightsMask);
                        us.UserService       = useInfo.service;
                        us.CountOwnerSignal  = useInfo.CountOwnerSignal;
                        us.CountSubscription = useInfo.countSubscription;
                        us.WalletBalance     = useInfo.walletBalance;
                        us.WalletCurrency    = useInfo.walletCurrency;
                        result.Add(us);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("GetAllPlatformUser()", ex);
                return(null);
            }

            return(result);
        }