/// <summary> /// Adds an output object to the directory with the option of overriding an existing object with the same name. /// Returns true if the object was added. /// </summary> /// <param name="output"></param> /// <param name="canOverride"></param> /// <returns>Returns true if the object was added.</returns> public bool Add(OutputObject output, bool canOverride) { if (output == null) throw new NullReferenceException("File cannot be null."); if (Contains(output)) { //throw new Exception(string.Format("A file with the name '{0}' already exists in this directory.", file.Name)); if (canOverride) { //remove (skip) file(s) with the same name outputs = outputs.SkipWhile(f => f.Name.Equals(output.Name, StringComparison.CurrentCultureIgnoreCase)).ToList(); } else return false; } outputs.Add(output); output.ParentDirectory = this; return true; }
/// <summary> /// Returns true if the specified object exists in the directory. /// </summary> /// <param name="output"></param> /// <returns></returns> public bool Contains(OutputObject output) { if (output == null) throw new NullReferenceException("File cannot be null."); return outputs.Any(f => f.Name.Equals(output.Name, StringComparison.CurrentCultureIgnoreCase)); }