Beispiel #1
0
        /// <summary>
        /// 获取服务数据集
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="result"></param>
        /// <param name="isShow">Status不为0: 是否弹窗</param>
        /// <returns></returns>
        public static T GetServiceData <T>(this BaseResultData <T> result, bool isShow = true)
        {
            var data = default(T);

            //todo 硬编码,需要调整
            if (result.Status == 0)
            {
                data = result.Data;
            }
            else
            {
                if (isShow)
                {
                    MessageHelper.ShowWarning(result.Msg);
                }

                LogHelper.Info(typeof(Utilities).FullName, result.Msg);
            }

            return(data);
        }
Beispiel #2
0
        // 데이터 CSV 파일은 POE 클라이언트를 VisualGGPK.exe (libggpk) 를 통해 추출할 수 있다.
        private bool BaseDataUpdates(string path)
        {
            bool success = false;

            if (File.Exists(path + "csv/ko/BaseItemTypes.csv") && File.Exists(path + "csv/ko/Words.csv"))
            {
                try
                {
                    List <string[]> oCsvEnList = new List <string[]>();
                    List <string[]> oCsvKoList = new List <string[]>();

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/en/BaseItemTypes.csv")))
                    {
                        string   sEnContents = oStreamReader.ReadToEnd();
                        string[] sEnLines    = sEnContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sEnLines)
                        {
                            //oCsvEnList.Add(sLine.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries));
                            oCsvEnList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/ko/BaseItemTypes.csv")))
                    {
                        string   sKoContents = oStreamReader.ReadToEnd();
                        string[] sKoLines    = sKoContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sKoLines)
                        {
                            //oCsvKoList.Add(sLine.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries));
                            oCsvKoList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    List <BaseResultData> datas = new List <BaseResultData>();

                    for (int i = 1; i < oCsvEnList.Count; i++)
                    {
                        if (
                            oCsvEnList[i][6] == "Metadata/Items/Currency/AbstractMicrotransaction" ||
                            oCsvEnList[i][6] == "Metadata/Items/HideoutDoodads/AbstractHideoutDoodad"
                            )
                        {
                            continue;
                        }

                        BaseResultData baseResultData = new BaseResultData();
                        baseResultData.ID           = oCsvEnList[i][1].Replace("Metadata/Items/", "");
                        baseResultData.InheritsFrom = oCsvEnList[i][6].Replace("Metadata/Items/", "");
                        baseResultData.NameEn       = Regex.Replace(oCsvEnList[i][5], "^\"(.+)\"$", "$1");
                        baseResultData.NameKo       = Regex.Replace(oCsvKoList[i][5], "^\"(.+)\"$", "$1");
                        baseResultData.Detail       = "";

                        if (datas.Find(x => x.NameEn == baseResultData.NameEn) == null)
                        {
                            datas.Add(baseResultData);
                        }
                    }

                    BaseData rootClass = Json.Deserialize <BaseData>("{\"result\":[{\"data\":[]}]}");
                    rootClass.Result[0].Data = datas.ToArray();

                    using (StreamWriter writer = new StreamWriter(path + "Bases.txt", false, Encoding.UTF8))
                    {
                        writer.Write(Json.Serialize <BaseData>(rootClass));
                    }

                    //-----------------------------

                    oCsvEnList = new List <string[]>();
                    oCsvKoList = new List <string[]>();

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/en/Words.csv")))
                    {
                        string   sEnContents = oStreamReader.ReadToEnd();
                        string[] sEnLines    = sEnContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sEnLines)
                        {
                            oCsvEnList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/ko/Words.csv")))
                    {
                        string   sKoContents = oStreamReader.ReadToEnd();
                        string[] sKoLines    = sKoContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sKoLines)
                        {
                            oCsvKoList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    List <WordeResultData> wdatas = new List <WordeResultData>();

                    for (int i = 1; i < oCsvEnList.Count; i++)
                    {
                        WordeResultData wordeResultData = new WordeResultData();
                        wordeResultData.Key    = oCsvEnList[i][1];
                        wordeResultData.NameEn = Regex.Replace(oCsvEnList[i][6], "^\"(.+)\"$", "$1");
                        wordeResultData.NameKo = Regex.Replace(oCsvKoList[i][6], "^\"(.+)\"$", "$1");
                        wdatas.Add(wordeResultData);
                    }

                    WordData wordClass = Json.Deserialize <WordData>("{\"result\":[{\"data\":[]}]}");
                    wordClass.Result[0].Data = wdatas.ToArray();

                    using (StreamWriter writer = new StreamWriter(path + "Words.txt", false, Encoding.UTF8))
                    {
                        writer.Write(Json.Serialize <WordData>(wordClass));
                    }

                    //-----------------------------

                    oCsvEnList = new List <string[]>();
                    oCsvKoList = new List <string[]>();

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/en/Prophecies.csv")))
                    {
                        string   sEnContents = oStreamReader.ReadToEnd();
                        string[] sEnLines    = sEnContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sEnLines)
                        {
                            oCsvEnList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/ko/Prophecies.csv")))
                    {
                        string   sKoContents = oStreamReader.ReadToEnd();
                        string[] sKoLines    = sKoContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sKoLines)
                        {
                            oCsvKoList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    datas = new List <BaseResultData>();

                    for (int i = 1; i < oCsvEnList.Count; i++)
                    {
                        BaseResultData baseResultData = new BaseResultData();
                        baseResultData.ID           = "Prophecies/" + oCsvEnList[i][1];
                        baseResultData.InheritsFrom = "Prophecies/Prophecy";
                        baseResultData.NameEn       = Regex.Replace(oCsvEnList[i][4], "^\"(.+)\"$", "$1");
                        baseResultData.NameKo       = Regex.Replace(oCsvKoList[i][4], "^\"(.+)\"$", "$1");
                        baseResultData.Detail       = "";

                        datas.Add(baseResultData);
                    }

                    rootClass = Json.Deserialize <BaseData>("{\"result\":[{\"data\":[]}]}");
                    rootClass.Result[0].Data = datas.ToArray();

                    using (StreamWriter writer = new StreamWriter(path + "Prophecies.txt", false, Encoding.UTF8))
                    {
                        writer.Write(Json.Serialize <BaseData>(rootClass));
                    }

                    //-----------------------------

                    oCsvEnList = new List <string[]>();
                    oCsvKoList = new List <string[]>();

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/en/MonsterVarieties.csv")))
                    {
                        string   sEnContents = oStreamReader.ReadToEnd();
                        string[] sEnLines    = sEnContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sEnLines)
                        {
                            oCsvEnList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    using (StreamReader oStreamReader = new StreamReader(File.OpenRead(path + "csv/ko/MonsterVarieties.csv")))
                    {
                        string   sKoContents = oStreamReader.ReadToEnd();
                        string[] sKoLines    = sKoContents.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sLine in sKoLines)
                        {
                            oCsvKoList.Add(Regex.Split(sLine, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
                        }
                    }

                    datas = new List <BaseResultData>();

                    for (int i = 1; i < oCsvEnList.Count; i++)
                    {
                        BaseResultData baseResultData = new BaseResultData();
                        baseResultData.ID           = oCsvEnList[i][1].Replace("Metadata/Monsters/", "");
                        baseResultData.InheritsFrom = oCsvEnList[i][11].Replace("Metadata/Monsters/", "");
                        baseResultData.NameEn       = Regex.Replace(oCsvEnList[i][35], "^\"(.+)\"$", "$1");
                        baseResultData.NameKo       = Regex.Replace(oCsvKoList[i][35], "^\"(.+)\"$", "$1");
                        baseResultData.Detail       = "";

                        if (datas.Find(x => x.NameEn == baseResultData.NameEn) == null)
                        {
                            datas.Add(baseResultData);
                        }
                    }

                    rootClass = Json.Deserialize <BaseData>("{\"result\":[{\"data\":[]}]}");
                    rootClass.Result[0].Data = datas.ToArray();

                    using (StreamWriter writer = new StreamWriter(path + "Monsters.txt", false, Encoding.UTF8))
                    {
                        writer.Write(Json.Serialize <BaseData>(rootClass));
                    }

                    success = true;
                }
                catch { }
            }

            return(success);
        }