Beispiel #1
0
 public PlaylistRequest(UserStatus userStatus, PlayHistory history,
     PlayOperation operation, Channel channel, Song lastPlay)
 {
     UserStatus     = userStatus;
     History        = history;
     Operation      = operation;
     RequestChannel = channel;
     LastPlay       = lastPlay;
 }
Beispiel #2
0
 public static void SaveUserStatus(UserStatus status)
 {
     IFormatter format = new BinaryFormatter();
     using (FileStream fs = s_statusFile.Open(FileMode.OpenOrCreate))
     {
         format.Serialize(fs,status);
     }
     //format.Serialize(
     //    s_statusFile.Open(FileMode.OpenOrCreate),
     //    status);
 }
Beispiel #3
0
 /// <summary>
 /// Signs out and remove saved user status if exists.
 /// </summary>
 public void Logout()
 {
     _status = null;
     StorageManager.ClearUserStatus();
 }
Beispiel #4
0
 /// <summary>
 /// Tries to recover user sign-in status from storage.
 /// </summary>
 /// <returns>Returns true if a valid user status 
 /// has been loaded successfully.</returns>
 public bool TryLoadStatus()
 {
     if (LocalUserStatusExists)
     {
         _status = StorageManager.LoadUserStatus();
         return _status != null;
     }
     else
     {
         return false;
     }
 }
Beispiel #5
0
        /// <summary>
        /// Signs in with user email and password and
        /// receives response from DoubanFM server.
        /// </summary>
        /// <param name="email">User email.</param>
        /// <param name="password">User password.</param>
        /// <param name="saveStatus">Indicates if this client should
        /// save user's status when sign-in succeeded.</param>
        /// <returns></returns>
        public LoginResponse Login(string email, string password,
            bool saveStatus)
        {
            //Get response via http post.
            var jResp = ConnectionManager.GetPostResponse(
                ConnectionManager.LoginUri,
                new LoginRequestForm(new LoginRequest(email, password)));

            //Create response from json.
            LoginResponse resp = new LoginResponse(jResp);

            if (resp.Result == LoginResult.Success)
            {
                //Update local storage for user status.
                StorageManager.ClearUserStatus();
                _status = new UserStatus()
                {
                    Expire = jResp.expire,
                    Token = jResp.token,
                    UserID = jResp.user_id
                };

                if (saveStatus)
                {
                    StorageManager.SaveUserStatus(_status);
                }
            }

            return resp;
        }