コード例 #1
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <typeparam name="T">配置类型</typeparam>
        /// <param name="list">配置列表</param>
        /// <returns>是否成功</returns>
        public static bool Save <T>(List <T> list) where T : class, global::ProtoBuf.IExtensible
        {
            if (list.Count == 0)
            {
                return(false);
            }

            Type type = typeof(T);

            string[] name;
            if (!TableManager.tableNameDictionary.TryGetValue(type, out name))
            {
                Log.AddLog(string.Format("错误表格的类型:", type.FullName));
                return(false);
            }

            byte[] buffer = TableManager.Serialize(list);
            if (buffer == null)
            {
                return(false);
            }

            string configBinaryFile = HttpRuntime.AppDomainAppPath + "protodatas/" + name[0];

            using (FileStream fileStream = File.Create(configBinaryFile))
            {
                fileStream.Write(buffer, 0, buffer.Length);
            }

            return(true);
        }
コード例 #2
0
        /// <summary>
        /// 页面载入响应
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.ContentType = "application/x-msdownload";
            string filename = "attachment; filename=" + "GiftExConfig.protodata.bytes";

            Response.AddHeader("Content-Disposition", filename);

            Response.BinaryWrite(TableManager.Serialize(GiftTable.GiftList));
        }
コード例 #3
0
        /// <summary>
        /// 打包表格
        /// </summary>
        /// <param name="version">版本</param>
        /// <returns>Zip包缓冲区</returns>
        public static byte[] PackTable(string version)
        {
            using (MemoryStream memory = new MemoryStream())
            {
                using (ZipOutputStream stream = new ZipOutputStream(memory))
                {
                    byte[] buffer = null;

                    // 服务器列表
                    if (!string.IsNullOrEmpty(version) && version[version.Length - 1] != '/')
                    {
                        version = version + '/';
                    }

                    foreach (var data in ServerListConfig.DataList)
                    {
                        string md5Path   = version + "updateex/" + data.Name + "/";
                        string tablePath = md5Path + TableManager.Directory;

                        TableManager.ClearMD5Record();

                        // 活动
                        List <mw.ActivityConfig> Updateactivitytable = GMTActivityMananger.GetTableActivity().Values.ToList();
                        if (null != Updateactivitytable)
                        {
                            buffer = TableManager.Serialize(Updateactivitytable);
                            TableManager.UpdateMD5(buffer, TableManager.Directory + "ActivityExConfig.protodata.bytes");
                            stream.PutNextEntry(new ZipEntry(tablePath + "ActivityExConfig.protodata.bytes"));
                            stream.Write(buffer, 0, buffer.Length);
                        }

                        List <mw.AchieveConfig> Updateachievetable = GMTActivityMananger.GetTableAchieve().Values.ToList();
                        if (null != Updateachievetable)
                        {
                            buffer = TableManager.Serialize(Updateachievetable);
                            TableManager.UpdateMD5(buffer, TableManager.Directory + "AchieveExConfig.protodata.bytes");
                            stream.PutNextEntry(new ZipEntry(tablePath + "AchieveExConfig.protodata.bytes"));
                            stream.Write(buffer, 0, buffer.Length);
                        }

                        List <mw.RewardConfig> Updaterewardtable = GMTActivityMananger.GetTableReward().Values.ToList();
                        if (null != Updaterewardtable)
                        {
                            buffer = TableManager.Serialize(Updaterewardtable);
                            TableManager.UpdateMD5(buffer, TableManager.Directory + "RewardExConfig.protodata.bytes");
                            stream.PutNextEntry(new ZipEntry(tablePath + "RewardExConfig.protodata.bytes"));
                            stream.Write(buffer, 0, buffer.Length);
                        }

                        // 文本
                        buffer = TableManager.Serialize(TextManager.GetConfigList());
                        TableManager.UpdateMD5(buffer, TableManager.Directory + "UIDescExConfig.protodata.bytes");
                        stream.PutNextEntry(new ZipEntry(tablePath + "UIDescExConfig.protodata.bytes"));
                        stream.Write(buffer, 0, buffer.Length);

                        buffer = Encoding.UTF8.GetBytes(TableManager.GetMD5Text());
                        stream.PutNextEntry(new ZipEntry(md5Path + "md5.txt"));
                        stream.Write(buffer, 0, buffer.Length);
                    }

                    stream.CloseEntry();
                    stream.Finish();

                    byte[] zipBuffer = new byte[memory.Length];
                    Array.Copy(memory.GetBuffer(), zipBuffer, zipBuffer.Length);

                    return(zipBuffer);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 发送表格
        /// </summary>
        /// <param name="version">版本号</param>
        /// <returns>是否成功</returns>
        public static bool SendTable(string version)
        {
            byte[] buffer = null;
            errorText = "";

            foreach (var data in ServerListConfig.DataList)
            {
                string md5Path   = version + "/updateex/" + data.Name + "/";
                string tablePath = md5Path + TableManager.Directory;
                FTPManager.MakeDirectory(version + "/");
                FTPManager.MakeDirectory(version + "/updateex/");
                FTPManager.MakeDirectory(version + "/updateex/" + data.Name);
                FTPManager.MakeDirectory(tablePath);

                TableManager.ClearMD5Record();

                // 活动
                List <mw.ActivityConfig> Updateactivitytable = GMTActivityMananger.GetTableActivity().Values.ToList();
                buffer = TableManager.Serialize(Updateactivitytable);
                TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.ActivityConfig)][0]);
                if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.ActivityConfig)][0], buffer))
                {
                    errorText += FTPManager.GetLastError();
                }

                List <mw.AchieveConfig> Updateachievetable = GMTActivityMananger.GetTableAchieve().Values.ToList();
                buffer = TableManager.Serialize(Updateachievetable);
                TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.AchieveConfig)][0]);
                if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.AchieveConfig)][0], buffer))
                {
                    errorText += FTPManager.GetLastError();
                }

                List <mw.RewardConfig> Updaterewardtable = GMTActivityMananger.GetTableReward().Values.ToList();
                buffer = TableManager.Serialize(Updaterewardtable);
                TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.RewardConfig)][0]);
                if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.RewardConfig)][0], buffer))
                {
                    errorText += FTPManager.GetLastError();
                }

                //编辑礼包
                List <mw.GiftConfig> UpdatereGiftTable = new List <mw.GiftConfig>();
                UpdatereGiftTable = GiftManager.addgiftconfig;
                buffer            = TableManager.Serialize(UpdatereGiftTable);
                TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.GiftConfig)][0]);
                if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.GiftConfig)][0], buffer))
                {
                    errorText += FTPManager.GetLastError();
                }

                // 文本
                buffer = TableManager.Serialize(TextManager.GetConfigList());
                TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.UIDescConfig)][0]);
                if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.UIDescConfig)][0], buffer))
                {
                    errorText += FTPManager.GetLastError();
                }

                buffer = Encoding.UTF8.GetBytes(TableManager.GetMD5Text());
                if (!FTPManager.Upload(md5Path + "md5.txt", buffer))
                {
                    errorText += FTPManager.GetLastError();
                }
            }

            if (string.IsNullOrEmpty(errorText))
            {
                return(true);
            }

            return(false);
        }