/// <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); }
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); }