private async Task InitControllerAsync() { try { DatController = new DatController(DatFilePath); if (DatController.IsValid) { await DatController.GetMarkAsync(); } } catch (Exception e) { Logger.Write(e.Message); } }
private async Task <Dictionary <Patch, int> > RunAsync(DatController mainDatController, IEnumerable <Patch> patches) { var results = new Dictionary <Patch, int>(); var enumerable = patches as Patch[] ?? patches.ToArray(); foreach (var patch in enumerable) { if (!mainDatController.InstallOrNot(patch)) { continue; } // recognize and prepare appropriate client dat files var clientDatList = new Dictionary <int, DatController> { { ClientDat.LocalEnglish.Id, mainDatController } }; foreach (var clientDatId in patch.ClientDatRelated) { if (clientDatId == ClientDat.LocalEnglish.Id) { continue; } var cdat = ClientDat.GetById(clientDatId); if (cdat == null) { continue; } var controller = new DatController(cdat.FullPath); if (controller.IsValid) { clientDatList.Add(clientDatId, controller); } } int result; switch (patch.ContentType) { case PatchContentType.Text: case PatchContentType.Image: case PatchContentType.Sound: case PatchContentType.Font: case PatchContentType.Texture: result = await PatchDat(clientDatList, patch); break; case PatchContentType.Loadscreen: result = ReplaceLoadScreens(Settings.Default.LotroPath, patch); break; default: result = -1; break; } if (result > -1) { mainDatController.RenewMark(patch); } results.Add(patch, result); Logger.Write($"завершена установка патча {patch.PatchVersion.Full} с результатом {result}."); // old client dat, have to update it first if (result == -2) { break; } } if (results.Count > 0) { if (!await mainDatController.WriteNinjaMark()) { Logger.Write("не удалось записать метку применения патчей."); } } return(results); }
public async Task <Dictionary <Patch, int> > PatchAsync(DatController datController, IEnumerable <Patch> patches) { return(await Task.Run(() => RunAsync(datController, patches))); }
public void CloseController() { DatController?.Close(); DatController = null; }
public ApplySubscriptionViewModel(DatController datController) { _patches = datController.DatPatches; }