public void LoadGraphFromText()
 {
     if (CheckGraphForClearing())
     {
         try
         {
             var dialog = new FileDialogViewModel(FileDialogMode.Open);
             var res    = WindowManager.ShowDialog(dialog);
             if (res.HasValue && res.Value)
             {
                 var textViewer       = new TextViewerViewModel(String.Empty, false, true, false);
                 var textViewerResult = WindowManager.ShowDialog(textViewer);
                 if (textViewerResult.HasValue && textViewerResult.Value)
                 {
                     _repository.LoadFromText(Document, textViewer.Text, dialog.SourceType);
                     EllipseVerticesPositionIfNeed();
                     UndoRedoManager.Instance.Clear();
                     Init();
                 }
             }
         }
         catch (Exception e)
         {
             ShowError(e);
         }
     }
 }
        public void SaveAs()
        {
            try
            {
                var dialog = new FileDialogViewModel(FileDialogMode.Save);
                var res    = WindowManager.ShowDialog(dialog);
                if (res.HasValue && res.Value)
                {
                    var filter   = _repository.GetFilterForSourceFileType(dialog.SourceType);
                    var fileName = DialogPresenter.ShowFileSaveDialog(filter);

                    if (String.IsNullOrEmpty(fileName))
                    {
                        return;
                    }

                    _repository.SaveToFile(Document, fileName, dialog.SourceType);
                    Title = ProjectName + $" - {fileName}";
                    UnmodifyDocument();
                }
            }
            catch (Exception e)
            {
                ShowError(e);
            }
        }
        public void LoadGraphFromFile()
        {
            if (CheckGraphForClearing())
            {
                try
                {
                    var dialog = new FileDialogViewModel(FileDialogMode.Open);
                    var res    = WindowManager.ShowDialog(dialog);
                    if (res.HasValue && res.Value)
                    {
                        var filter   = _repository.GetFilterForSourceFileType(dialog.SourceType);
                        var fileName = DialogPresenter.ShowFileOpenDialog(filter);

                        if (String.IsNullOrEmpty(fileName))
                        {
                            return;
                        }

                        _repository.LoadFromFile(Document, fileName, dialog.SourceType);

                        EllipseVerticesPositionIfNeed();
                        UndoRedoManager.Instance.Clear();
                        Init();
                        Title = ProjectName + $" - {fileName}";
                    }
                }
                catch (Exception e)
                {
                    ShowError(e);
                }
            }
        }
 public void SaveAsText()
 {
     try
     {
         var dialog = new FileDialogViewModel(FileDialogMode.Save);
         var res    = WindowManager.ShowDialog(dialog);
         if (res.HasValue && res.Value)
         {
             var text       = _repository.PresentAsText(Document, dialog.SourceType);
             var textViewer = new TextViewerViewModel(text, true, false, true);
             WindowManager.ShowDialog(textViewer);
         }
     }
     catch (Exception e)
     {
         ShowError(e);
     }
 }