Beispiel #1
0
    public List <string> CompareWithOther(IVersionData data)
    {
        List <string> list = new List <string>();

        foreach (var v in data.FileInfoMap)
        {
            string fhd = null;
            this.FileInfoMap.TryGetValue(v.Key, out fhd);
            //本地存在,比较hash
            if (fhd != null)
            {
                if (fhd != v.Value)
                {
                    list.Add(v.Key);
                }
            }
            //本地不存在
            else
            {
                list.Add(v.Key);
            }
        }
        BDeBug.I.Log("需要更新个数:" + list.Count);
        return(list);
    }
Beispiel #2
0
        public void Start()
        {
            var configPath = Path.Combine(localPath, filePath);

            if (File.Exists(configPath))
            {
                localConfig = JsonMapper.ToObject <T>(File.ReadAllText(configPath));
            }
            else
            {
                localConfig = new T();
            }


            //1.本地版本和服务器版本对比
            var t = HttpMgr.Task.Create(Path.Combine(serverPath, filePath), null, (HttpMgr.Task task, WWW w) =>
            {
                BDeBug.I.Log("下载:" + task.url);
                if ((w.error) == null)
                {
                    var strw         = System.Text.Encoding.UTF8.GetString(w.bytes);
                    var serverConfig = JsonMapper.ToObject <T>(strw);

                    //获得本地与服务器的差集
                    var diffList = localConfig.CompareWithOther(serverConfig);
                    AllFileCount = diffList.Count;
                    //获取差集
                    if (AllFileCount > 0)
                    {
                        CreateDownloadTask(diffList);
                        DoNextDownloadTask();
                    }
                    else
                    {
                        //直接完成
                        OnSuccess("下载完成:");
                    }
                }
                else
                {
                    Debug.LogError(w.error);
                }
            });

            httpLayer.QueueTask(t);
        }
Beispiel #3
0
 /// <summary>
 /// Generates the hash.
 /// </summary>
 /// <param name="egmSerialNumber">The egm serial number.</param>
 /// <param name="casinoCode">The casino code.</param>
 /// <param name="egmVersion">The egm version.</param>
 /// <returns>System.String.</returns>
 public static string GenerateHash(string egmSerialNumber, string casinoCode, IVersionData egmVersion)
 {
     return(GenerateHash(egmVersion.ObjectName, egmVersion.VersionInfo, egmSerialNumber, casinoCode));
 }