示例#1
0
 public virtual void SaveToDatabase()
 {
     if (this.m_saveToDb)
     {
         using (PlayerBussiness playerBussiness = new PlayerBussiness())
         {
             object @lock;
             Monitor.Enter(@lock = this.m_lock);
             try
             {
                 for (int i = 0; i < this.m_cards.Length; i++)
                 {
                     UsersCardInfo usersCardInfo = this.m_cards[i];
                     if (usersCardInfo != null && usersCardInfo.IsDirty)
                     {
                         if (usersCardInfo.CardID > 0)
                         {
                             playerBussiness.UpdateCards(usersCardInfo);
                         }
                         else
                         {
                             playerBussiness.AddCards(usersCardInfo);
                         }
                     }
                 }
             }
             finally
             {
                 Monitor.Exit(@lock);
             }
             List <UsersCardInfo> removedList;
             Monitor.Enter(removedList = this.m_removedList);
             try
             {
                 foreach (UsersCardInfo current in this.m_removedList)
                 {
                     if (current.CardID > 0)
                     {
                         playerBussiness.UpdateCards(current);
                     }
                 }
                 this.m_removedList.Clear();
             }
             finally
             {
                 Monitor.Exit(removedList);
             }
         }
     }
 }