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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 10
0
 public void ChangeReference(string Reference)
 {
     ChangeRef?.Invoke(Reference);
 }