Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- namespace SharpDig
- {
- /// <summary>
- /// Klasa reprezentująca sesję użytkownika
- /// </summary>
- public class Account
- {
- private string _userkey;
- private DateTime _userkeydate;
- private SelfProfile _profile;
- private readonly string _accountkey;
- private readonly string _login, _password;
- /// <summary>
- /// Profil użytkownika reprezentowanego przez sesję
- /// </summary>
- public SelfProfile Profile
- {
- get
- {
- if (_profile == null)
- Login();
- return _profile;
- }
- }
- /// <summary>
- /// Klucz sesji użytkownika
- /// </summary>
- internal string UserKey
- {
- get
- {
- if (_userkey == default(string) || (DateTime.Now - _userkeydate).Days >= 1)
- Login();
- return _userkey;
- }
- }
- private readonly ApiLayer _apiLayer;
- /// <summary>
- /// Loguje się na konto użytkownika, uzyskując dostęp do sesji
- /// </summary>
- public void Login()
- {
- Debug.Assert(_accountkey != "" || _login != "" && _password != "");
- _profile = _accountkey != "" ?
- Request<SelfProfile>.Create(_apiLayer, "user", "login").AddPostParam("accountkey", _accountkey)
- : Request<SelfProfile>.Create(_apiLayer, "user", "login").AddPostParam("login", _login).AddPostParam("password", _password);
- _userkey = Profile.UserKey;
- _userkeydate = DateTime.Now;
- }
- /// <summary>
- /// Tworzy instancję obiektu reprezentującego sesję użytkownika na podstawie podanego kluczu konta
- /// </summary>
- /// <param name="layer">Referencja do obiektu ApiLayer</param>
- /// <param name="acckey">Klucz konta użytkownika</param>
- public Account(ApiLayer layer, string acckey)
- {
- _apiLayer = layer;
- _accountkey = acckey;
- }
- /// <summary>
- /// Tworzy instancję obiektu reprezentującego sesję użytkownika na podstawie nazwy użytkownika i hasła
- /// </summary>
- /// <param name="layer">Referencja do obiektu ApiLayer</param>
- /// <param name="login">Login użytkownika</param>
- /// <param name="password">Hasło użytkownika</param>
- public Account(ApiLayer layer, string login, string password)
- {
- _apiLayer = layer;
- _login = login;
- _password = password;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment