From: <mik...@us...> - 2003-08-13 03:04:48
|
Update of /cvsroot/ccnet/ccnet/project/core/sourcecontrol In directory sc8-pr-cvs1:/tmp/cvs-serv7002/project/core/sourcecontrol Added Files: MultiSourceControl.cs Log Message: Adding a 'MultiSourceControl' SC plugin. Check the Test Case to see how it works. --- NEW FILE: MultiSourceControl.cs --- using System; using System.Collections; using Exortech.NetReflector; using tw.ccnet.core; namespace tw.ccnet.core.sourcecontrol { [ReflectorType("multi")] public class MultiSourceControl : ISourceControl { private IList _sourceControls; [ReflectorCollection("sourceControls", InstanceType=typeof(ArrayList), Required=true)] public IList SourceControls { get { if (_sourceControls == null) _sourceControls = new ArrayList(); return _sourceControls; } set { _sourceControls = value; } } public Modification[] GetModifications(DateTime from, DateTime to) { ArrayList modifications = new ArrayList(); foreach (ISourceControl sourceControl in SourceControls) { Modification[] mods = sourceControl.GetModifications(from, to); if (mods != null) { modifications.AddRange(mods); } } return (Modification[]) modifications.ToArray(typeof(Modification)); } public void LabelSourceControl(string label, DateTime timeStamp) { foreach (ISourceControl sourceControl in SourceControls) { sourceControl.LabelSourceControl(label, timeStamp); } } public void Run(IntegrationResult result) { result.Modifications = GetModifications(result.LastModificationDate, DateTime.Now); } } } |