public bool SendAllItemsToMail(string sender, string title, eMailType type)
 {
     if (this.m_saveToDb)
     {
         base.BeginChanges();
         try
         {
             using (PlayerBussiness playerBussiness = new PlayerBussiness())
             {
                 object @lock;
                 Monitor.Enter(@lock = this.m_lock);
                 try
                 {
                     List <ItemInfo> items = this.GetItems();
                     int             count = items.Count;
                     for (int i = 0; i < count; i += 5)
                     {
                         MailInfo mailInfo = new MailInfo();
                         mailInfo.SenderID   = 0;
                         mailInfo.Sender     = sender;
                         mailInfo.ReceiverID = this.m_player.PlayerCharacter.ID;
                         mailInfo.Receiver   = this.m_player.PlayerCharacter.NickName;
                         mailInfo.Title      = title;
                         mailInfo.Type       = (int)type;
                         mailInfo.Content    = "";
                         List <ItemInfo> list = new List <ItemInfo>();
                         for (int j = 0; j < 5; j++)
                         {
                             int num = i * 5 + j;
                             if (num < items.Count)
                             {
                                 list.Add(items[num]);
                             }
                         }
                         if (!this.SendItemsToMail(list, mailInfo, playerBussiness))
                         {
                             return(false);
                         }
                     }
                 }
                 finally
                 {
                     Monitor.Exit(@lock);
                 }
             }
         }
         catch (Exception arg)
         {
             Console.WriteLine("Send Items Mail Error:" + arg);
         }
         finally
         {
             this.SaveToDatabase();
             base.CommitChanges();
         }
         this.m_player.Out.SendMailResponse(this.m_player.PlayerCharacter.ID, eMailRespose.Receiver);
         return(true);
     }
     return(true);
 }
Example #2
0
        /// <summary>
        /// 群发邮件
        /// </summary>
        public bool SendAllItemsToMail(string sender, string title, eMailType type)
        {
            if (m_saveToDb)
            {
                BeginChanges();
                try
                {
                    using (PlayerBussiness pb = new PlayerBussiness())
                    {
                        lock (m_lock)
                        {
                            List <ItemInfo> items = GetItems();

                            int count = items.Count;
                            for (int i = 0; i < count; i += 5)
                            {
                                MailInfo mail = new MailInfo();
                                mail.SenderID   = 0;
                                mail.Sender     = sender;
                                mail.ReceiverID = m_player.PlayerCharacter.ID;
                                mail.Receiver   = m_player.PlayerCharacter.NickName;
                                mail.Title      = title;
                                mail.Type       = (int)type;
                                mail.Content    = "";

                                List <ItemInfo> list = new List <ItemInfo>();
                                for (int j = 0; j < 5; j++)
                                {
                                    int index = i * 5 + j;
                                    if (index < items.Count)
                                    {
                                        list.Add(items[index]);
                                    }
                                }
                                if (SendItemsToMail(list, mail, pb) == false)
                                {
                                    return(false);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Send Items Mail Error:" + ex);
                }
                finally
                {
                    SaveToDatabase();
                    CommitChanges();
                }
                m_player.Out.SendMailResponse(m_player.PlayerCharacter.ID, eMailRespose.Receiver);
            }
            return(true);
        }
Example #3
0
 public void CopyFromInfo(MailInfo mail_info)
 {
     mail_idx    = mail_info.mail_idx;
     mail_type   = mail_info.mail_type;
     sender_idx  = mail_info.sender_idx;
     sender_name = mail_info.sender_name;
     send_time   = mail_info.send_time;
     expire_time = mail_info.expire_time;
     flags       = mail_info.flags;
     subject     = mail_info.subject;
 }
Example #4
0
 public void Read(ByteArray by)
 {
     mail_idx    = by.ReadLong();
     mail_type   = (eMailType)by.ReadByte();
     sender_idx  = by.ReadLong();
     sender_name = by.ReadString();
     send_time   = by.ReadLong();
     expire_time = by.ReadInt();
     flags       = by.ReadUInt();
     subject     = by.ReadString();
 }
Example #5
0
 public void Read(ByteArray by)
 {
     mail_idx      = by.ReadLong();
     mail_type     = (eMailType)by.ReadByte();
     spid          = by.ReadUShort();
     receiver_idx  = by.ReadLong();
     sender_idx    = by.ReadLong();
     sender_name   = by.ReadString();
     send_time     = by.ReadLong();
     expire_time   = by.ReadInt();
     delivery_time = by.ReadInt();
     flags         = by.ReadUInt();
     subject       = by.ReadString();
     bin_mail_content.Read(by);
 }
Example #6
0
 public void Copy(MailInfo mail_info)
 {
     mail_idx         = mail_info.mail_idx;
     mail_type        = mail_info.mail_type;
     spid             = mail_info.spid;
     receiver_idx     = mail_info.receiver_idx;
     sender_idx       = mail_info.sender_idx;
     sender_name      = mail_info.sender_name;
     send_time        = mail_info.send_time;
     expire_time      = mail_info.expire_time;
     delivery_time    = mail_info.delivery_time;
     flags            = mail_info.flags;
     subject          = mail_info.subject;
     bin_mail_content = mail_info.bin_mail_content;
 }
Example #7
0
        public bool SendAllItemsToMail(string sender, string title, eMailType type)
        {
            bool result   = true;
            bool sentMail = false;

            if (this.m_saveToDb)
            {
                base.BeginChanges();
                try
                {
                    object @lock;
                    Monitor.Enter(@lock = this.m_lock);
                    try
                    {
                        List <ItemInfo> items = this.GetItems();
                        int             count = items.Count;
                        if (count > 0)
                        {
                            sentMail = true;
                        }
                        result = this.m_player.SendItemsToMail(items, "Game.Server.GameUtils.CommonBag.Sender", title, type);
                    }
                    finally
                    {
                        Monitor.Exit(@lock);
                    }
                }
                catch (Exception ex)
                {
                    PlayerInventory.log.Error("Send Items Mail Error:", ex);
                }
                finally
                {
                    this.SaveToDatabase();
                    base.CommitChanges();
                }
                if (sentMail)
                {
                    this.m_player.Out.SendMailResponse(this.m_player.PlayerCharacter.ID, eMailRespose.Receiver);
                }
            }
            return(result);
        }
Example #8
0
        /// <summary>
        /// 群发邮件
        /// </summary>
        public bool SendAllItemsToMail(string sender,string title,eMailType type)
        {
            if (m_saveToDb)
            {
                BeginChanges();
                try
                {
                    using (PlayerBussiness pb = new PlayerBussiness())
                    {
                        lock (m_lock)
                        {
                            List<ItemInfo> items = GetItems();

                            int count = items.Count;
                            for (int i = 0; i < count; i += 5)
                            {
                                MailInfo mail = new MailInfo();
                                mail.SenderID = 0;
                                mail.Sender = sender;
                                mail.ReceiverID = m_player.PlayerCharacter.ID;
                                mail.Receiver = m_player.PlayerCharacter.NickName;
                                mail.Title = title;
                                mail.Type = (int)type;
                                mail.Content = "";

                                List<ItemInfo> list = new List<ItemInfo>();
                                for(int j = 0; j < 5; j ++)
                                {
                                    int index = i * 5 + j;
                                    if(index < items.Count)
                                    {
                                        list.Add(items[index]);
                                    }
                                }
                                if (SendItemsToMail(list, mail, pb) == false)
                                {
                                    return false;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Send Items Mail Error:" + ex);
                }
                finally
                {
                    SaveToDatabase();
                    CommitChanges();
                }
                m_player.Out.SendMailResponse(m_player.PlayerCharacter.ID, eMailRespose.Receiver);
            }
            return true;
        }