Exemplo n.º 1
0
        public void OpenFile(string filename)
        {
            BeginUpdate();
            bool _succes = false;

            FileReadResult readResult;

            CodeSnippetCollection _collection = ReadCollection(filename, out readResult);

            switch (readResult)
            {
            case FileReadResult.ErrorUnknownIdentifier:
            case FileReadResult.ErrorVersionToOld:
            case FileReadResult.ErrorReadingFile:
                FileHelperLegacy.OpenFileLegacy(this, filename, _passwordHelper, _mainform, TreeHelper, out _succes);
                EndUpdate();
                return;

            case FileReadResult.FileNotFound:
            case FileReadResult.OpenCanceled:
                if (CodeLib.Instance.CodeSnippets.Count == 0)
                {
                    NewDoc(true);
                }
                EndUpdate();
                return;
            }

            CodeLib.Instance.Load(_collection);

            if (!CodeLib.Instance.CodeSnippets.ContainsKey(Constants.TRASHCAN))
            {
                CodeLib.Instance.CodeSnippets.Add(CodeSnippet.TrashcanSnippet());
            }

            if (!CodeLib.Instance.CodeSnippets.ContainsKey(Constants.CLIPBOARDMONITOR))
            {
                CodeLib.Instance.CodeSnippets.Add(CodeSnippet.ClipboardMonitorSnippet());
            }

            CodeCollectionToForm(string.Empty);

            EndUpdate();

            TreeHelper.FindNodeByPath(_collection.LastSelected);

            Config.LastOpenedFile = filename;
            FileInfo fi = new FileInfo(filename);

            Config.LastOpenedDir = fi.Directory.FullName;

            CurrentFile = filename;
            CodeLib.Instance.Changed = false;
            _lastOpenedDate          = DateTime.Now;
            SetTitle();
        }
Exemplo n.º 2
0
        public ActionResult Index()
        {
            var model = new CodeSnippetCollection(
                mapDirectory("/content/src/quickstart"),
                mapDirectory("/content/src/codeproject"),
                mapDirectory("/content/src/codeproject_exchange")
                );

            return(View(model));
        }
Exemplo n.º 3
0
        internal PreDefinedCodeSnippets()
        {
            string lang = GetLanguage();

            if (lang == "python")  //check if lang is python)
            {
                langCollection = new PythonCodeSnippets();
            }
            else if (lang == "ironruby")
            {
                langCollection = new RubyCodeSnippets();
            }
        }
Exemplo n.º 4
0
        private void Save(CodeSnippetCollection collection, string fileName)
        {
            SecureString      usbKeyPW     = null;
            SecureString      _pw          = null;
            FileEncyptionMode _encryptmode = FileEncyptionMode.DefaultEncryption;

            if (!string.IsNullOrEmpty(_passwordHelper.UsbKeyId))
            {
                bool   _canceled = false;
                byte[] _key      = _passwordHelper.GetUsbKey(_passwordHelper.UsbKeyId, false, out _canceled);
                if (_canceled)
                {
                    return;
                }
                usbKeyPW = StringCipher.ToSecureString(Utils.ByteArrayToString(_key));
            }

            if (_passwordHelper.Password != null)
            {
                _pw          = _passwordHelper.Password;
                _encryptmode = FileEncyptionMode.PasswordEncryption;
            }

            if (usbKeyPW != null)
            {
                _pw          = usbKeyPW;
                _encryptmode = FileEncyptionMode.UsbKEYEncryption;
            }

            EncryptedBinaryFile <CodeSnippetCollection, FileHeader> _writer = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(fileName, _pw);
            FileHeader _header = new FileHeader()
            {
                Version = Config.CurrentVersion().ToString(), FileEncyptionMode = _encryptmode, UsbKeyId = _passwordHelper.UsbKeyId
            };

            try
            {
                _writer.Save(_header, collection);
                CodeLib.Instance.Changed = false;
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show(_mainform, $"Access to file '{fileName}' denied!.", "File error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            catch (Exception)
            {
                return;
            }
        }
Exemplo n.º 5
0
        public void FormToCodeLib()
        {
            CodeSnippetCollection collection = new CodeSnippetCollection {
                LastSaved = _lastOpenedDate
            };

            FormToCodeCollection(_treeViewLibrary.Nodes);
            if (_treeViewLibrary.SelectedNode != null)
            {
                collection.LastSelected = _treeViewLibrary.SelectedNode.FullPath;
            }

            _mainform.SaveEditor();
            CodeLib.Instance.Save(collection);
        }
Exemplo n.º 6
0
 internal static CodeSnippetCollection TryDecrypt(string data, SecureString password, out bool succes)
 {
     try
     {
         data = Utils.FromBase64(data);
         data = StringCipher.Decrypt(data, password);
         CodeSnippetCollection _collection = Utils.FromJson <CodeSnippetCollection>(data);
         succes = true;
         return(_collection);
     }
     catch (Exception)
     {
     }
     succes = false;
     return(null);
 }
Exemplo n.º 7
0
        private void AutoSaveFile()
        {
            string _fileName = GetAutoSaveFileName();

            CodeSnippetCollection _collection = new CodeSnippetCollection
            {
                LastSaved = _lastOpenedDate,
            };

            FormToCodeCollection(_treeViewLibrary.Nodes);
            if (_treeViewLibrary.SelectedNode != null)
            {
                _collection.LastSelected = _treeViewLibrary.SelectedNode.FullPath;
            }

            _mainform.SaveEditor();
            CodeLib.Instance.Save(_collection);

            Save(_collection, _fileName);
        }
Exemplo n.º 8
0
        public void ExportLibrary()
        {
            FolderBrowserDialog _dialog = new FolderBrowserDialog();

            _dialog.Description = "Export to:";
            var _dialogResult = _dialog.ShowDialog();

            if (_dialogResult == DialogResult.Cancel)
            {
                return;
            }

            CodeSnippetCollection _collection = new CodeSnippetCollection();

            CodeLib.Instance.Save(_collection);

            CodeSnippetCollectionExporterService _export = new CodeSnippetCollectionExporterService(_dialog.SelectedPath, _collection);

            _export.Export();
        }
Exemplo n.º 9
0
        public void SaveFile(bool saveas)
        {
            _textBoxHelper.SaveState();

            string _selectedfile = CurrentFile;

            if (string.IsNullOrEmpty(_selectedfile))
            {
                saveas = true;
            }

            if (saveas == true)
            {
                SaveFileDialog d = new SaveFileDialog {
                    Filter = "json Files (*.json)|*.json|All Files (*.*)|*.*"
                };
                DialogResult dr = d.ShowDialog();
                if (dr == DialogResult.Cancel)
                {
                    return;
                }

                _selectedfile = d.FileName;
            }

            StopWatch _watch = new StopWatch();

            _watch.Start();

            if (IsOverwritingNewerFile(_selectedfile))
            {
                FormOverwrite f = new FormOverwrite();
                f.ShowDialog();
                switch (f.DlgResult)
                {
                case OverwriteMode.Cancel:
                    return;

                case OverwriteMode.Overwrite:
                    break;

                case OverwriteMode.Reload:
                    Reload();
                    return;
                }
            }

            CurrentFile     = _selectedfile;
            _lastOpenedDate = DateTime.Now;
            SetTitle();

            CodeSnippetCollection _collection = new CodeSnippetCollection {
                LastSaved = _lastOpenedDate
            };

            FormToCodeCollection(_treeViewLibrary.Nodes);
            if (_treeViewLibrary.SelectedNode != null)
            {
                _collection.LastSelected = _treeViewLibrary.SelectedNode.FullPath;
            }

            _mainform.SaveEditor();
            CodeLib.Instance.Save(_collection);

            BackupHelper backupHelper = new BackupHelper(CurrentFile);

            backupHelper.Backup();

            Save(_collection, _selectedfile);
        }
Exemplo n.º 10
0
        public CodeSnippetCollection ReadCollection(string filename, out FileReadResult readResult)
        {
            SecureString password = _passwordHelper.Password;

            string usbKeyId = null;

            readResult = FileReadResult.Succes;
            string        _fileData       = string.Empty;
            SecureString  _usbKeyPassword = null;
            VersionNumber _minimalVersion = new VersionNumber(3, 0, 0, 0);

            CodeSnippetCollection _resultCollection = new CodeSnippetCollection();

            FileHeader _header = null;

            try
            {
                EncryptedBinaryFile <CodeSnippetCollection, FileHeader> _readHeader = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(filename, null);
                _header = _readHeader.ReadHeader();
                if (!_header.Identifier.Equals(Constants.FILEHEADERIDENTIFIER))
                {
                    readResult = FileReadResult.ErrorUnknownIdentifier;
                    return(null);
                }

                VersionNumber _fileVersion = new VersionNumber(_header.Version);
                if (_fileVersion < _minimalVersion)
                {
                    readResult = FileReadResult.ErrorVersionToOld;
                    return(null);
                }
            }
            catch
            {
                readResult = FileReadResult.ErrorReadingFile;
                return(null);
            }

            EncryptedBinaryFile <CodeSnippetCollection, FileHeader> _reader = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(filename, null);

            switch (_header.FileEncyptionMode)
            {
            case FileEncyptionMode.DefaultEncryption:
                _reader = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(filename, null);
                try
                {
                    _passwordHelper.ClearPassWord();
                    _resultCollection = _reader.Read();
                    return(_resultCollection);    // SUCCES
                }
                catch
                {
                    readResult = FileReadResult.ErrorReadingFile;
                    return(null);
                }

            case FileEncyptionMode.PasswordEncryption:

retryPassword:
                _reader = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(filename, password);
                try
                {
                    _resultCollection = _reader.Read();

                    _passwordHelper.Password = password;
                    _passwordHelper.UsbKeyId = null;
                    _passwordHelper.ShowKey();

                    return(_resultCollection);    // SUCCES
                }
                catch (FileLoadException)
                {
                    _passwordHelper.ClearPassWord();
                    readResult = FileReadResult.ErrorReadingFile;
                    return(null);
                }
                catch (FileNotFoundException)
                {
                    _passwordHelper.ClearPassWord();
                    readResult = FileReadResult.ErrorReadingFile;
                    return(null);
                }
                catch (Exception)
                {
                    goto setPassword;
                }

setPassword:
                FormSetPassword _formSet = new FormSetPassword();
                DialogResult _dg = _formSet.ShowDialog();
                if (_dg == DialogResult.OK)
                {
                    password = _formSet.Password;
                    goto retryPassword;
                }
                else
                {
                    readResult = FileReadResult.OpenCanceled;
                    return(null);
                }

            case FileEncyptionMode.UsbKEYEncryption:
                bool _canceled;

                usbKeyId = _header.UsbKeyId;
                byte[] _key = _passwordHelper.GetUsbKey(_header.UsbKeyId, false, out _canceled);
                if (_canceled)
                {
                    readResult = FileReadResult.OpenCanceled;
                    return(null);
                }

                _usbKeyPassword = StringCipher.ToSecureString(Utils.ByteArrayToString(_key));

                _reader = new EncryptedBinaryFile <CodeSnippetCollection, FileHeader>(filename, _usbKeyPassword);
                try
                {
                    _resultCollection = _reader.Read();

                    _passwordHelper.Password = null;
                    _passwordHelper.UsbKeyId = _header.UsbKeyId;
                    _passwordHelper.ShowKey();

                    return(_resultCollection);    // SUCCES
                }
                catch
                {
                    _passwordHelper.ClearPassWord();
                    readResult = FileReadResult.ErrorReadingFile;
                    return(null);
                }
            }

            _passwordHelper.ClearPassWord();
            readResult = FileReadResult.ErrorReadingFile;
            return(null);
        }
Exemplo n.º 11
0
 internal PreDefinedCodeSnippets()
 {
     string lang = GetLanguage();
     if (lang == "python") {//check if lang is python)
         langCollection = new PythonCodeSnippets();
     }
     else if (lang == "ironruby"){
         langCollection = new RubyCodeSnippets();
     }
 }
 public CodeSnippetCollectionExporterService(string targetDirectory, CodeSnippetCollection collection)
 {
     _TargetDirectory = new DirectoryInfo(targetDirectory);
     _Collection      = collection;
 }