Ejemplo n.º 1
0
        /*
         * public void Login(string username, string password)
         * {
         *  bool result = false;
         *  Player player = null;
         *
         *  try
         *  {
         *      using (UNODBEntities db = new UNODBEntities())
         *      {
         *          try
         *          {
         *              player = db.Players.Where(a => a.username == username && a.password == password).FirstOrDefault();
         *          }
         *          catch(Exception e)
         *          {
         *              throw e;
         *          }
         *
         *          if(player != null)
         *          {
         *              if(!IsLogged(player))
         *              {
         *                  result = true;
         *
         *                  player.isLogged = true;
         *
         *                  db.SaveChanges();
         *              }
         *              else
         *              {
         *                  result = false;
         *                  throw new PlayerAlreadyLoggedException(resourceManager.GetString("PlayerAlreadyLogged"));
         *              }
         *          }else if(player == null)
         *          {
         *              result = false;
         *          }
         *      }
         *  }
         *  catch(Exception e)
         *  {
         *      throw e;
         *  }
         *
         *  LoginCallback.LoginVerification(result);
         * }
         */

        public void Login(string username, string password)
        {
            int         result = 0;
            Player      player = null;
            DataManager dataManager = new DataManager();
            const int   SUCCEDED = 1, INCORRECT_DATA = 2, PLAYER_ALREADY_LOGGED = 3, PLAYER_WITHOUT_VERIFICATION = 4;

            try
            {
                using (UNODBEntities db = new UNODBEntities())
                {
                    try
                    {
                        player = db.Players.Where(a => a.username == username).FirstOrDefault();
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }

                    if (player != null && dataManager.VerifyPassword(password, player.password))
                    {
                        if (!IsLogged(player))
                        {
                            if (CheckPlayerVerification(player))
                            {
                                result = SUCCEDED;

                                player.isLogged = true;

                                db.SaveChanges();
                            }
                            else
                            {
                                result = PLAYER_WITHOUT_VERIFICATION;
                            }
                        }
                        else
                        {
                            result = PLAYER_ALREADY_LOGGED;
                        }
                    }
                    else
                    {
                        result = INCORRECT_DATA;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            LoginCallback.LoginVerification(result);
        }