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 Говорит о не найденном варианте }
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("Готово"); } }