Guest User

sharpdig #2

a guest
Aug 9th, 2013
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.70 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3.  
  4. namespace SharpDig
  5. {
  6.     /// <summary>
  7.     /// Klasa reprezentująca sesję użytkownika
  8.     /// </summary>
  9.     public class Account
  10.     {
  11.         private string _userkey;
  12.         private DateTime _userkeydate;
  13.         private SelfProfile _profile;
  14.  
  15.         private readonly string _accountkey;
  16.         private readonly string _login, _password;
  17.  
  18.         /// <summary>
  19.         /// Profil użytkownika reprezentowanego przez sesję
  20.         /// </summary>
  21.         public SelfProfile Profile
  22.         {
  23.             get
  24.             {
  25.                 if (_profile == null)
  26.                     Login();
  27.                 return _profile;
  28.             }
  29.         }
  30.  
  31.         /// <summary>
  32.         /// Klucz sesji użytkownika
  33.         /// </summary>
  34.         internal string UserKey
  35.         {
  36.             get
  37.             {
  38.                 if (_userkey == default(string) || (DateTime.Now - _userkeydate).Days >= 1)
  39.                     Login();
  40.                 return _userkey;
  41.             }
  42.         }
  43.  
  44.         private readonly ApiLayer _apiLayer;
  45.  
  46.         /// <summary>
  47.         /// Loguje się na konto użytkownika, uzyskując dostęp do sesji
  48.         /// </summary>
  49.         public void Login()
  50.         {
  51.             Debug.Assert(_accountkey != "" || _login != "" && _password != "");
  52.             _profile = _accountkey != "" ?
  53.                 Request<SelfProfile>.Create(_apiLayer, "user", "login").AddPostParam("accountkey", _accountkey)
  54.                 : Request<SelfProfile>.Create(_apiLayer, "user", "login").AddPostParam("login", _login).AddPostParam("password", _password);
  55.             _userkey = Profile.UserKey;
  56.            _userkeydate = DateTime.Now;
  57.         }
  58.  
  59.         /// <summary>
  60.         /// Tworzy instancję obiektu reprezentującego sesję użytkownika na podstawie podanego kluczu konta
  61.         /// </summary>
  62.         /// <param name="layer">Referencja do obiektu ApiLayer</param>
  63.         /// <param name="acckey">Klucz konta użytkownika</param>
  64.         public Account(ApiLayer layer, string acckey)
  65.         {
  66.             _apiLayer = layer;
  67.             _accountkey = acckey;
  68.         }
  69.  
  70.         /// <summary>
  71.         /// Tworzy instancję obiektu reprezentującego sesję użytkownika na podstawie nazwy użytkownika i hasła
  72.         /// </summary>
  73.         /// <param name="layer">Referencja do obiektu ApiLayer</param>
  74.         /// <param name="login">Login użytkownika</param>
  75.         /// <param name="password">Hasło użytkownika</param>
  76.         public Account(ApiLayer layer, string login, string password)
  77.         {
  78.             _apiLayer = layer;
  79.             _login = login;
  80.             _password = password;
  81.         }
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment