public void Refresh(ChangeRef changeRef) { AdditionalDataExpander.IsExpanded = false; openChangeRef = changeRef; Change change = changeRef.GetChange().Result; versionRef = change.ReleaseVersion; VersionText.Text = $"Version: {change.ReleaseVersion.VersionName}"; eventBlock = true; ChangeTitleField.Text = change.Title; eventBlock = true; DescriptionField.Text = change.Description; if (change.AdditionalData == null) { change.AdditionalData = JObject.Parse("{}"); } eventBlock = true; AdditionalDataField.Text = change.AdditionalData.ToString(Newtonsoft.Json.Formatting.Indented); }
public void Duplicate(ChangeControl control) { int index = ChangeParent.Children.IndexOf(control); if (index == -1) { return; } VersionController versionController = MainWindow.GetInstance().VersionController; Version version = openVersionRef.GetVersion().Result; ChangeRef oldChangeRef = version.Changes[index]; string guid = Guid.NewGuid().ToString(); string relativePath = Path.Combine(version.VersionName, "changes", $"{guid}.json"); ChangeRef newChangeRef = new ChangeRef(versionController, guid, relativePath); version.Changes.Insert(index + 1, newChangeRef); Change oldChange = oldChangeRef.GetChange(false).Result; VersionRef releaseVersion = new VersionRef(versionController, oldChange.ReleaseVersion.RelativeFilePath, oldChange.ReleaseVersion.VersionName); Change newChange = new Change(versionController, guid, relativePath, oldChange.Title, oldChange.Description, releaseVersion); if (oldChange.AdditionalData != null) { newChange.AdditionalData = (JObject)oldChange.AdditionalData.DeepClone(); } versionController.CacheChange(newChange); ChangeControl newControl = new ChangeControl(newChangeRef); ChangeParent.Children.Insert(index + 1, newControl); }
public async Task PostSerializeReload(VersionController versionController) { ChangeLog changeLog = await versionController.GetChangeLog(); if (EmptyPage.Visibility == Visibility.Visible) { return; } if (ChangeLogPage.Visibility == Visibility.Visible) { OpenPage(PageType.ChangeLog); return; } if (VersionPage.Visibility == Visibility.Visible) { VersionRef oldRef = VersionPage.GetRef(); foreach (VersionRef versionRef in changeLog.Versions) { if (versionRef.VersionName == oldRef.VersionName) { OpenPage(PageType.Version, versionRef); return; } } OpenPage(PageType.ChangeLog); return; } if (ChangePage.Visibility == Visibility.Visible) { VersionRef oldVersionRef = VersionPage.GetRef(); ChangeRef oldChangeRef = ChangePage.GetChangeRef(); foreach (VersionRef versionRef in changeLog.Versions) { if (versionRef.VersionName == oldVersionRef.VersionName) { Version version = await versionRef.GetVersion(); foreach (ChangeRef changeRef in version.Changes) { if (changeRef.Guid == oldChangeRef.Guid) { OpenPage(PageType.Change, versionRef, changeRef); return; } } OpenPage(PageType.Version, versionRef); return; } } OpenPage(PageType.ChangeLog); return; } }
public async void BackButtonPressed(object sender, RoutedEventArgs args) { Change change = await openChangeRef.GetChange(); VersionRef versionRef = change.ReleaseVersion; openChangeRef = null; ContentArea.GetInstance().OpenPage(ContentArea.PageType.Version, versionRef); }
public void Duplicate(VersionControl control) { int index = VersionParent.Children.IndexOf(control); if (index == -1) { return; } VersionController versionController = MainWindow.GetInstance().VersionController; ChangeLog changeLog = versionController.GetChangeLog().Result; VersionRef oldVersionRef = changeLog.Versions[index]; string duplicateName = GetDuplicateName(oldVersionRef.VersionName); VersionRef newVersionRef = new VersionRef(versionController, oldVersionRef.RelativeFilePath, duplicateName); changeLog.Versions.Insert(index + 1, newVersionRef); VersionControl newControl = new VersionControl(newVersionRef); VersionParent.Children.Insert(index + 1, newControl); Version oldVersion = oldVersionRef.GetVersion(false).Result; Version version = new Version(versionController, duplicateName, oldVersion.Description, oldVersion.DownloadLink, oldVersion.ReleaseDate, new System.Collections.Generic.List <ChangeRef>()); if (oldVersion.AdditionalData != null) { version.AdditionalData = (JObject)oldVersion.AdditionalData.DeepClone(); } foreach (ChangeRef oldChangeRef in oldVersion.Changes) { string guid = Guid.NewGuid().ToString(); string newChangePath = Path.Combine(version.VersionName, "changes", $"{guid}.json"); ChangeRef newChangeRef = new ChangeRef(versionController, guid, newChangePath); Change oldChange = oldChangeRef.GetChange(false).Result; Change newChange = new Change(versionController, guid, newChangePath, oldChange.Title, oldChange.Description, newVersionRef); if (oldChange.ReleaseVersion != null) { newChange.ReleaseVersion = new VersionRef(versionController, newVersionRef.RelativeFilePath, newVersionRef.VersionName); } if (oldChange.AdditionalData != null) { newChange.AdditionalData = (JObject)oldChange.AdditionalData.DeepClone(); } version.Changes.Add(newChangeRef); versionController.CacheChange(newChange); } versionController.CacheVersion(version); }
public void MoveDown(ChangeControl control) { int index = ChangeParent.Children.IndexOf(control); if (index == -1 || index == ChangeParent.Children.Count - 1) { return; } Version version = openVersionRef.GetVersion().Result; ChangeRef changeRef = version.Changes[index]; version.Changes.Remove(changeRef); ChangeParent.Children.Remove(control); version.Changes.Insert(index + 1, changeRef); ChangeParent.Children.Insert(index + 1, control); }
public void OpenPage(PageType pageType, VersionRef versionRef = null, ChangeRef changeRef = null) { EmptyPage.Visibility = Visibility.Collapsed; ChangeLogPage.Visibility = Visibility.Collapsed; VersionPage.Visibility = Visibility.Collapsed; ChangePage.Visibility = Visibility.Collapsed; switch (pageType) { case PageType.Empty: EmptyPage.Visibility = Visibility.Visible; break; case PageType.ChangeLog: ChangeLogPage.Visibility = Visibility.Visible; ChangeLogPage.Refresh(); break; case PageType.Version: if (versionRef == null) { return; } VersionPage.Visibility = Visibility.Visible; VersionPage.Refresh(versionRef); break; case PageType.Change: if (changeRef == null) { return; } ChangePage.Visibility = Visibility.Visible; ChangePage.Refresh(changeRef); break; } }
private void NewChangeButtonPressed(object sender, RoutedEventArgs args) { Version version = openVersionRef.GetVersion().Result; VersionController versionController = MainWindow.GetInstance().VersionController; string guid = Guid.NewGuid().ToString(); string relativePath = Path.Combine(version.VersionName, "changes", $"{guid}.json"); ChangeRef changeRef = new ChangeRef(versionController, guid, relativePath); version.Changes.Insert(0, changeRef); Change change = new Change(versionController, guid, relativePath, "New Change", string.Empty, openVersionRef); change.ReleaseVersion = new VersionRef(versionController, openVersionRef.RelativeFilePath, openVersionRef.VersionName); versionController.CacheChange(change); ChangeControl newControl = new ChangeControl(changeRef); ChangeParent.Children.Insert(0, newControl); ContentArea.GetInstance().OpenPage(ContentArea.PageType.Change, openVersionRef, changeRef); }
public ChangeControl(ChangeRef changeRef) { InitializeComponent(); ChangeTitle.Text = changeRef.GetChange(false).Result.Title; }
public void ChangeReference(string Reference) { ChangeRef?.Invoke(Reference); }