protected override ValidationResult IsValid(object value, ValidationContext validationContext) { ChangesetQuery changesetQuery = (ChangesetQuery)validationContext.ObjectInstance; if (changesetQuery.HighDate == null || changesetQuery.LowDate == null || changesetQuery.HighDate >= changesetQuery.LowDate) { return(ValidationResult.Success); } return(new ValidationResult("High Date must be greater than or equal to Low Date.", new List <string> { validationContext.MemberName })); }
public IEnumerable <Changeset> QueryChangesets(ChangesetQuery changesetQuery, string branchMapping) { foreach (Microsoft.TeamFoundation.VersionControl.Client.Changeset tfsChangeset in CRUD.ReadTFSChangesets(_versionControlServer, changesetQuery, branchMapping, _logger)) { yield return(new Changeset() { ID = tfsChangeset.ChangesetId.ToString(), CommitDate = tfsChangeset.CreationDate, Author = tfsChangeset.OwnerDisplayName, Changes = tfsChangeset.Changes .Where(c => c.Item != null) .Select(c => new Change() { RepositoryPath = c.Item.ServerItem, DownloadFile = c.Item.DownloadFile }) }); } }
public static IEnumerable <Changeset> ReadTFSChangesets(VersionControlServer versionControlServer, ChangesetQuery changesetQuery, string branchMapping, ILogger logger) { if (versionControlServer == null) { return(new List <Changeset>(0)); } try { logger.Information("Querying Changesets from TFS."); if (!changesetQuery.SelectedChangesetAuthors.Any()) { QueryHistoryParameters query = new QueryHistoryParameters(branchMapping, RecursionType.Full) { VersionStart = new DateVersionSpec(changesetQuery.LowDate.Value), VersionEnd = new DateVersionSpec(changesetQuery.HighDate.Value) }; return(versionControlServer .QueryHistory(query) .Select(c => versionControlServer.GetChangeset(c.ChangesetId))); } else { List <Changeset> changesets = new List <Changeset>(); foreach (string author in changesetQuery.SelectedChangesetAuthors) { QueryHistoryParameters query = new QueryHistoryParameters(branchMapping, RecursionType.Full) { VersionStart = new DateVersionSpec(changesetQuery.LowDate.Value), VersionEnd = new DateVersionSpec(changesetQuery.HighDate.Value), Author = author }; changesets.AddRange(versionControlServer .QueryHistory(query) .Select(c => versionControlServer.GetChangeset(c.ChangesetId))); } return(changesets.OrderByDescending(c => c.CreationDate)); } } catch (Exception e) { logger.Error(e.Message); return(null); } }