/// <summary> /// Deletes a fortress completly. /// </summary> /// <param name="fortressVm"></param> public void DeleteFortress(FortressViewModel fortressVm) { try { var enterMasterkeyView = new EnterMasterkeyView() { PotFortressName = fortressVm.Name, PotFortressPath = fortressVm.FullName }; enterMasterkeyView.ShowDialog(); // If the user entered the valid masterkey if (enterMasterkeyView.DialogResult == true) { if (File.Exists(fortressVm.FullName)) { File.Delete(fortressVm.FullName); Fortresses.Remove(fortressVm); Communication.InformUser($"{fortressVm.Name} has been deleted."); } } } catch (Exception ex) { ex.SetUserMessage("Couldn't delete the selected fortress. Maybe it has already been deleted."); Communication.InformUserAboutError(ex); Logger.log.Error($"Error trying to delete a fortess: {ex}"); } }
/// <summary> /// Delinks an externally added fortress from the list. /// </summary> /// <param name="deletableVm"></param> public void DelinkExternalFortress(FortressViewModel deletableVm) { try { if (!File.Exists(IOPathHelper.GetLinkedFortressListFile())) { return; } var linkedFortessFile = File.ReadAllLines(IOPathHelper.GetLinkedFortressListFile()).ToList(); if (linkedFortessFile.Contains(deletableVm.FullName)) { linkedFortessFile.Remove(deletableVm.FullName); } File.WriteAllLines(IOPathHelper.GetLinkedFortressListFile(), linkedFortessFile); Fortresses.Remove(deletableVm); } catch (Exception ex) { Logger.log.Error($"Error while de-linking a fortress: {ex}"); ex.SetUserMessage($"Couldn't de-link fortress - An error occured while trying to de-link it. The problem could be solved by restarting the program."); Communication.InformUserAboutError(ex); } }