/// <summary> /// Adds a new Snippet. /// </summary> /// <param name="name">The Name of the Snippet.</param> /// <param name="content">The Content of the Snippet.</param> /// <returns>The correct Snippet object.</returns> /// <exception cref="ArgumentNullException">If <paramref name="name"/> or <paramref name="content"/> are <c>null</c>.</exception> /// <exception cref="ArgumentNullException">If <paramref name="name"/> is empty.</exception> public Snippet AddSnippet(string name, string content) { if(name == null) throw new ArgumentNullException("name"); if(name.Length == 0) throw new ArgumentException("Name cannot be empty", "name"); if(content == null) throw new ArgumentNullException("content"); // content can be empty lock(this) { SnippetNameComparer comp = new SnippetNameComparer(); Snippet temp = new Snippet(name, content, this); if(Array.Find(GetSnippets(), delegate(Snippet s) { return comp.Compare(s, temp) == 0; }) != null) return null; temp = null; File.WriteAllText(GetFullPathForSnippets(name + ".cs"), content); return new Snippet(name, content, this); } }
/// <summary> /// Removes a new Snippet. /// </summary> /// <param name="name">The Name of the Snippet to remove.</param> /// <returns>True if the Snippet is removed successfully.</returns> /// <exception cref="ArgumentNullException">If <paramref name="name"/> is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">If <paramref name="name"/> is empty.</exception> public bool RemoveSnippet(string name) { if(name == null) throw new ArgumentNullException("name"); if(name.Length == 0) throw new ArgumentException("Name cannot be empty", "name"); lock(this) { SnippetNameComparer comp = new SnippetNameComparer(); Snippet temp = new Snippet(name, "", this); if(Array.Find(GetSnippets(), delegate(Snippet s) { return comp.Compare(s, temp) == 0; }) == null) return false; temp = null; File.Delete(GetFullPathForSnippets(name + ".cs")); } return true; }