コード例 #1
0
        public static ResulDataVarEcho GetVarID(string Id, string Patch, bool DownloadAutoVar = true)
        {
            // Поиск среди бд
            bool state = true;

            foreach (var Mon in Bd.months)
            {
                foreach (var v in Mon.vars)
                {
                    if (v.varOtvet.Id == Id)
                    {
                        state = false;
                        return(new ResulDataVarEcho {
                            NameMesac = Mon.Name, var = v
                        });
                    }
                }
                if (!state)
                {
                    break;
                }
            }
            // В бд не удалось найти
            if (DownloadAutoVar)
            {
                return new ResulDataVarEcho {
                           NameMesac = "NotName", var = new Var {
                               Num = uint.MaxValue, varOtvet = GetVar.Get(Id, Patch, false)
                           }
                }
            }
            ;
            return(new ResulDataVarEcho {
                NameMesac = "NotDownloadVar"
            });                                                           // 999 Говорит о не найденном варианте
        }
コード例 #2
0
        public static void DownloadBD(string PatchSave = null, Messenge messenge = null)
        {
            PatchSave += PatchSave != null?Path.Combine(PatchSave, Setting.NameFolderData) : Setting.NameFolderData;

            Directory.CreateDirectory(PatchSave);
            List <Month> months = new List <Month>(0);

            // Получение списка месяцев
            restart : try
            {
                var Mon = GetMonths.Get();
                if (messenge != null)
                {
                    messenge.Invoke("Будет загруженно " + Mon.Count + " вариантов");
                }
                // Проход по месяцам
                foreach (var elem in Mon)
                {
                    Month month = new Month {
                        Name = elem.Mesac, vars = new List <Var>(0)
                    };
                    // Проход по вариантам
                    string PatchVar = Path.Combine(PatchSave, elem.Mesac.Replace(":", null).Replace(" ", null));
                    PatchVar = Path.GetFullPath(PatchVar);
                    Directory.CreateDirectory(PatchVar);
                    foreach (var ElemTwo in elem.varXimIndices)
                    {
                        if (messenge != null)
                        {
                            messenge.Invoke("Начинаю загрузку: " + ElemTwo.Num);
                        }
res:
                        try
                        {
                            month.vars.Add(new Var {
                                Num = ElemTwo.Num, varOtvet = GetVar.Get(ElemTwo.Id, PatchVar, true, messenge)
                            });
                        }
                        catch { if (messenge != null)
                                {
                                    messenge.Invoke("Произошла ошибка осуществляю перезапуск: " + ElemTwo.Num);
                                }
                                goto res; }
                        if (messenge != null)
                        {
                            messenge.Invoke("Скачал вариант: " + ElemTwo.Num);
                        }
                    }
                    if (messenge != null)
                    {
                        messenge.Invoke("Скачал месяц: " + elem.Mesac);
                    }
                    months.Add(month);
                }
            }
            catch (Exception e) { Console.WriteLine(e.Message); goto restart; }
            Bd = new DataSave {
                months = months, Patch = Path.GetFullPath(PatchSave)
            };
            File.WriteAllText((PatchSave != null) ? Path.Combine(PatchSave, Setting.NameJsonBd) : Setting.NameJsonBd, JsonConvert.SerializeObject(Bd));
            if (messenge != null)
            {
                messenge.Invoke("Готово");
            }
        }