Esempio n. 1
0
        public Tuple <ResultCode, UserInfoDb> Refine(string userInput)
        {
            var hashMaker  = new HashMaker();
            var resultCode = ResultCode.SUCCESS;
            var userInfoDb = new UserInfoDb();

            try
            {
                // Parsing
                var signInRequest = JsonConvert.DeserializeObject <RequestSignIn>(userInput);

                // Refining
                var    salt       = hashMaker.GetSalt();
                var    pwd        = signInRequest.Password;
                string saltAndPwd = string.Concat(pwd, salt);
                string hashedPwd  = hashMaker.GetSha256Hash(saltAndPwd);

                // Mapping
                userInfoDb.UserId         = signInRequest.UserId.ToLower();
                userInfoDb.Email          = signInRequest.Email;
                userInfoDb.Salt           = salt;
                userInfoDb.HashedPassword = hashedPwd;
                userInfoDb.HeroCollection = new List <int>();

                var ret = new Tuple <ResultCode, UserInfoDb>(resultCode, userInfoDb);

                return(ret);
            }
            catch (Exception)
            {
                resultCode = ResultCode.LCN0002;
                var ret = new Tuple <ResultCode, UserInfoDb>(resultCode, userInfoDb);
                return(ret);
            }
        }
Esempio n. 2
0
        public async Task <ThumbnailResponse> GetThumbnailResponse(string rawVideoId)
        {
            if (_HohoemaApp.NiconicoContext == null)
            {
                return(null);
            }

//            using (var releaser = await _ThumbnailAccessLock.LockAsync())
            {
                ThumbnailResponse res = null;

                res = await Util.ConnectionRetryUtil.TaskWithRetry(() =>
                {
                    return(_HohoemaApp.NiconicoContext.Video.GetThumbnailAsync(rawVideoId));
                },
                                                                   retryCount : 5,
                                                                   retryInterval : 1000
                                                                   );

                if (res != null)
                {
                    await UserInfoDb.AddOrReplaceAsync(res.UserId.ToString(), res.UserName, res.UserIconUrl.AbsoluteUri);

                    Debug.WriteLine("サムネ取得:" + rawVideoId);
                }
                else
                {
                    Debug.WriteLine("サムネ取得失敗:" + rawVideoId);
                }

                return(res);
            }
        }
Esempio n. 3
0
        public async Task <UserDetail> GetUserDetail(string userId)
        {
            var userDetail = await ConnectionRetryUtil.TaskWithRetry(() =>
            {
                return(_HohoemaApp.NiconicoContext.User.GetUserDetail(userId));
            });

            if (userDetail != null)
            {
                await UserInfoDb.AddOrReplaceAsync(userId, userDetail.Nickname, userDetail.ThumbnailUri);
            }

            return(userDetail);
        }
Esempio n. 4
0
        public async Task<bool> UpdateUser(UserInfoDb userInfo)
        {
            var user = await _context.UsersRights.SingleOrDefaultAsync(l => userInfo.UserId.Equals(l.UserId));
            if (user == null)
            {
                throw new SecurityDbException(
                    "UserId not exists", ExceptionType.NotFound, EntityType.UserRights, new[] { userInfo.UserId });
            }

            user.UserLogin = userInfo.UserLogin;
            user.FirstName = userInfo.FirstName;
            user.MiddleName = userInfo.MiddleName;
            user.LastName = userInfo.LastName;

            await _context.SaveChangesAsync();
            return true;
        }
Esempio n. 5
0
        public async Task<bool> AddUser(UserInfoDb userInfo, UserRightsDb userRightsDb)
        {
            if (await _context.UsersRights.AnyAsync(l => userInfo.UserId.Equals(l.UserId)))
            {
                throw new SecurityDbException(
                    "UserId already exist", ExceptionType.NameExists, EntityType.UserRights, new[] { userInfo.UserId });
            }
            var userRightsMapped = _mapper.Map<UserRights>(userInfo);
            await _context.UsersRights.AddAsync(userRightsMapped);
            await _context.SaveChangesAsync();

            return await EditUserRightsByNames(userInfo.UserId,
                userRightsDb.Roles.Select(l => l.Name).ToArray(),
                userRightsDb.AccessFunctions.Select(l => l.Name).ToArray(),
                userRightsDb.AccessRights.Select(l => l.Name).ToArray(),
                userRightsDb.DeniedRights.Select(l => l.Name).ToArray());
        }
Esempio n. 6
0
        public async Task <WatchApiResponse> GetWatchApiResponse(string rawVideoId, bool forceLowQuality = false, HarmfulContentReactionType harmfulContentReaction = HarmfulContentReactionType.None)
        {
            if (_HohoemaApp.NiconicoContext == null)
            {
                return(null);
            }

            if (!_HohoemaApp.IsLoggedIn)
            {
                return(null);
            }


            await WaitNicoPageAccess();


            using (var releaser = await _NicoPageAccessLock.LockAsync())
            {
                var res = await Util.ConnectionRetryUtil.TaskWithRetry(() =>
                {
                    return(_HohoemaApp.NiconicoContext.Video.GetWatchApiAsync(
                               rawVideoId
                               , forceLowQuality: forceLowQuality
                               , harmfulReactType: harmfulContentReaction
                               ));
                });

                if (res != null && res.UploaderInfo != null)
                {
                    var uploaderInfo = res.UploaderInfo;
                    await UserInfoDb.AddOrReplaceAsync(uploaderInfo.id, uploaderInfo.nickname, uploaderInfo.icon_url);
                }

                if (res != null)
                {
                    var data = await VideoInfoDb.GetEnsureNicoVideoInfoAsync(rawVideoId);

                    if (data != null)
                    {
                        await VideoInfoDb.UpdateNicoVideoInfo(data, res);
                    }
                }

                return(res);
            }
        }
Esempio n. 7
0
        public async Task <UserDetail> GetUserInfo(string userId)
        {
            if (_HohoemaApp.NiconicoContext == null)
            {
                return(null);
            }

            await WaitNicoPageAccess();



            var user = await ConnectionRetryUtil.TaskWithRetry(() =>
            {
                return(_HohoemaApp.NiconicoContext.User.GetUserDetail(userId));
            });

            if (user != null)
            {
                await UserInfoDb.AddOrReplaceAsync(userId, user.Nickname, user.ThumbnailUri);
            }

            return(user);
        }
Esempio n. 8
0
        protected override async Task ListPageNavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            if (PlayableList.Value == null)
            {
                return;
            }

            CanEditMylist = false;


            // お気に入り状態の取得
            _NowProcessFavorite = true;

            var favManager = HohoemaApp.FollowManager;

            IsFavoriteMylist.Value = favManager.IsFollowItem(FollowItemType.Mylist, PlayableList.Value.Id);

            CanChangeFavoriteMylistState.Value =
                IsFavoriteMylist.Value == true ||
                favManager.CanMoreAddFollow(FollowItemType.Mylist);

            _NowProcessFavorite = false;



            IsLoginUserDeflist      = false;
            IsUserOwnerdMylist      = HohoemaApp.UserMylistManager.HasMylistGroup(PlayableList.Value.Id);
            IsWatchAfterLocalMylist = PlayableList.Value.Origin == PlaylistOrigin.Local &&
                                      PlayableList.Value.Id == HohoemaPlaylist.WatchAfterPlaylistId;

            switch (PlayableList.Value.Origin)
            {
            case PlaylistOrigin.LoginUser:

                var mylistGroup = HohoemaApp.UserMylistManager.GetMylistGroup(PlayableList.Value.Id);
                MylistTitle        = mylistGroup.Name;
                MylistDescription  = mylistGroup.Description;
                ThemeColor         = mylistGroup.IconType.ToColor();
                IsPublic           = mylistGroup.IsPublic;
                IsLoginUserDeflist = mylistGroup.IsDeflist;

                OwnerUserId = mylistGroup.UserId;
                UserName    = HohoemaApp.LoginUserName;

                CanEditMylist = !IsLoginUserDeflist;

                if (IsLoginUserDeflist)
                {
                    MylistState = "とりあえずマイリスト";
                }
                else
                {
                    MylistState = IsPublic ? "公開マイリスト" : "非公開マイリスト";
                }
                break;


            case PlaylistOrigin.OtherUser:
                var response = await HohoemaApp.ContentFinder.GetMylistGroupDetail(PlayableList.Value.Id);

                var mylistGroupDetail = response.MylistGroup;
                MylistTitle       = mylistGroupDetail.Name;
                MylistDescription = mylistGroupDetail.Description;
                IsPublic          = mylistGroupDetail.IsPublic;
                ThemeColor        = mylistGroupDetail.GetIconType().ToColor();

                OwnerUserId = mylistGroupDetail.UserId;

                MylistState = IsPublic ? "公開マイリスト" : "非公開マイリスト";


                var user = await UserInfoDb.GetAsync(OwnerUserId);

                if (user != null)
                {
                    UserName = user.Name;
                }
                else
                {
                    await Task.Delay(500);

                    var userDetail = await HohoemaApp.ContentFinder.GetUserDetail(OwnerUserId);

                    UserName = userDetail.Nickname;
                }

                CanEditMylist = false;

                break;



            case PlaylistOrigin.Local:

                MylistTitle = PlayableList.Value.Name;
                OwnerUserId = HohoemaApp.LoginUserId.ToString();
                UserName    = HohoemaApp.LoginUserName;

                MylistState = "ローカルマイリスト";

                CanEditMylist = true;

                break;

            default:
                break;
            }



            UpdateTitle(MylistTitle);


            EditMylistGroupCommand.RaiseCanExecuteChanged();
        }
Esempio n. 9
0
        // Execute
        public ResultCode Execute(UserInfoDb userInfoDb)
        {
            var ret = _dbManager.SignIn(userInfoDb);

            return(ret);
        }
Esempio n. 10
0
 /// <summary>
 /// 查询所有信息
 /// </summary>
 /// <param name="filter"></param>
 /// <returns></returns>
 public IList <UserInfo> GetList()
 {
     return(UserInfoDb.GetList());
 }