Beispiel #1
0
 internal void SaveMail(List <TableMailInfoWrap> mailList, int saveCount)
 {
     try {
         foreach (var mailInfo in mailList)
         {
             if (!mailInfo.Modified)
             {
                 continue;
             }
             TableMailInfo dataMail = mailInfo.ToProto();
             List <int>    itemIds  = new List <int>();
             List <int>    itemNums = new List <int>();
             foreach (var item in mailInfo.m_Items)
             {
                 itemIds.Add(item.m_ItemId);
                 itemNums.Add(item.m_ItemNum);
             }
             dataMail.ItemIds     = Converter.IntList2String(itemIds);
             dataMail.ItemNumbers = Converter.IntList2String(itemNums);
             Msg_LD_Save msg = new Msg_LD_Save();
             msg.MsgId = (int)DataEnum.TableMailInfo;
             msg.PrimaryKeys.Add(dataMail.Guid.ToString());
             msg.Data = DbDataSerializer.Encode(dataMail);
             DispatchAction(SaveInternal, msg);
         }
     } catch (Exception e) {
         LogSys.Log(LOG_TYPE.ERROR, "DataCache Save ERROR:{0}, Stacktrace:{1}", e.Message, e.StackTrace);
     }
 }
Beispiel #2
0
 public void FromProto(TableMailInfo proto)
 {
     m_TableMailInfo = proto;
     UpdatePrimaryKeys();
     UpdateForeignKeys();
     m_SendDate   = DateTime.ParseExact(m_TableMailInfo.SendDate, "yyyyMMddHHmmss", null);
     m_ExpiryDate = DateTime.ParseExact(m_TableMailInfo.ExpiryDate, "yyyyMMddHHmmss", null);
 }
Beispiel #3
0
 public void FromProto(TableMailInfo proto)
 {
     m_TableMailInfo = proto;
     UpdatePrimaryKeys();
     UpdateForeignKeys();
     m_SendDate    = DateTime.ParseExact(m_TableMailInfo.SendDate, "yyyyMMddHHmmss", null);
     m_ExpiryDate  = DateTime.ParseExact(m_TableMailInfo.ExpiryDate, "yyyyMMddHHmmss", null);
     m_ItemIds     = DataProtoUtility.SplitGeneralList <int>(new char[] { ',' }, m_TableMailInfo.ItemIds);
     m_ItemNumbers = DataProtoUtility.SplitGeneralList <int>(new char[] { ',' }, m_TableMailInfo.ItemNumbers);
 }
 private void InitMailData()
 {
     if (m_MailInitStatus == DataInitStatus.Unload)
     {
         if (UserServerConfig.DataStoreAvailable == true)
         {
             m_MailInitStatus = DataInitStatus.Loading;
             Msg_LD_Load msg = new Msg_LD_Load();
             msg.MsgId = (int)DataEnum.TableMailInfo;
             GameFrameworkMessage.Msg_LD_SingleLoadRequest slr = new GameFrameworkMessage.Msg_LD_SingleLoadRequest();
             slr.MsgId    = (int)GameFrameworkData.DataEnum.TableMailInfo;
             slr.LoadType = GameFrameworkMessage.Msg_LD_SingleLoadRequest.LoadTypeEnum.LoadAll;
             slr.Keys.Clear();
             msg.LoadRequests.Add(slr);
             RequestLoad(msg, ((ret) => {
                 if (ret.ErrorNo == Msg_DL_LoadResult.ErrorNoEnum.Success)
                 {
                     List <TableMailInfoWrap> mailList = new List <TableMailInfoWrap>();
                     foreach (var singlerow in ret.Results)
                     {
                         object _msg;
                         if (DbDataSerializer.Decode(singlerow.Data, DataEnum2Type.Query(slr.MsgId), out _msg))
                         {
                             TableMailInfo dataMail = _msg as TableMailInfo;
                             if (null != dataMail)
                             {
                                 TableMailInfoWrap mailInfo = new TableMailInfoWrap();
                                 mailInfo.FromProto(dataMail);
                                 List <int> itemIds = Converter.ConvertNumericList <int>(dataMail.ItemIds);
                                 List <int> itemNums = Converter.ConvertNumericList <int>(dataMail.ItemNumbers);
                                 for (int i = 0; i < itemIds.Count && i < itemNums.Count; ++i)
                                 {
                                     var item = new MailItem();
                                     item.m_ItemId = itemIds[i];
                                     item.m_ItemNum = itemNums[i];
                                     mailInfo.m_Items.Add(item);
                                 }
                                 mailList.Add(mailInfo);
                             }
                         }
                     }
                     UserServer.Instance.GlobalProcessThread.InitMailData(mailList);
                     m_MailInitStatus = DataInitStatus.Done;
                     LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Green, "Load DataCache global data success. Table:TableMailInfo");
                 }
                 else if (ret.ErrorNo == Msg_DL_LoadResult.ErrorNoEnum.NotFound)
                 {
                     //暂时初始化为空列表
                     List <TableMailInfoWrap> mailList = new List <TableMailInfoWrap>();
                     UserServer.Instance.GlobalProcessThread.InitMailData(mailList);
                     m_MailInitStatus = DataInitStatus.Done;
                     LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Green, "Load DataCache global data success. Table:TableMailInfo (empty)");
                 }
                 else
                 {
                     m_MailInitStatus = DataInitStatus.Unload;
                     LogSys.Log(LOG_TYPE.ERROR, ConsoleColor.Red, "Load DataCache global data failed. Table: {0}", "TableMailInfo");
                 }
             }
                               ));
         }
         else
         {
             m_MailInitStatus = DataInitStatus.Done;
             LogSys.Log(LOG_TYPE.INFO, "init mail done!");
         }
     }
 }
Beispiel #5
0
 public void FromProto(TableMailInfo proto)
 {
     m_TableMailInfo = proto;
     UpdatePrimaryKeys();
     UpdateForeignKeys();
     m_SendDate = DateTime.ParseExact(m_TableMailInfo.SendDate,"yyyyMMddHHmmss",null);
     m_ExpiryDate = DateTime.ParseExact(m_TableMailInfo.ExpiryDate,"yyyyMMddHHmmss",null);
 }