Skip to content

Commit 2a0ebf5

Browse files
madkooMOlausson
authored andcommitted
Feature/revision date must be increasing (#160)
* Ensuring that if Workitme change date is equal to revisions date time we need to update the revision date time by 1 ms to othwerise we get exception when next revision is saved
1 parent c7605a2 commit 2a0ebf5

File tree

1 file changed

+11
-3
lines changed
  • src/WorkItemMigrator/WorkItemImport

1 file changed

+11
-3
lines changed

src/WorkItemMigrator/WorkItemImport/Agent.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@
55
using System.Text.RegularExpressions;
66
using System.Threading;
77
using System.Threading.Tasks;
8+
89
using Microsoft.TeamFoundation.Client;
910
using Microsoft.TeamFoundation.Core.WebApi;
1011
using Microsoft.TeamFoundation.WorkItemTracking.Client;
1112
using Microsoft.VisualStudio.Services.Common;
1213
using Microsoft.VisualStudio.Services.Operations;
14+
1315
using Migration.Common;
1416
using Migration.Common.Log;
1517
using Migration.WIContract;
18+
1619
using VsWebApi = Microsoft.VisualStudio.Services.WebApi;
1720
using WebApi = Microsoft.TeamFoundation.WorkItemTracking.WebApi;
1821
using WebModel = Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;
@@ -740,15 +743,20 @@ private void EnsureAssigneeField(WiRevision rev, WorkItem wi)
740743
rev.Fields.Add(new WiField() { ReferenceName = WiFieldReference.AssignedTo, Value = assignedTo });
741744
}
742745

743-
private void EnsureDateFields(WiRevision rev)
746+
private void EnsureDateFields(WiRevision rev, WorkItem wi)
744747
{
745748
if (rev.Index == 0 && !rev.Fields.HasAnyByRefName(WiFieldReference.CreatedDate))
746749
{
747750
rev.Fields.Add(new WiField() { ReferenceName = WiFieldReference.CreatedDate, Value = rev.Time.ToString("o") });
748751
}
749752
if (!rev.Fields.HasAnyByRefName(WiFieldReference.ChangedDate))
750753
{
751-
rev.Fields.Add(new WiField() { ReferenceName = WiFieldReference.ChangedDate, Value = rev.Time.ToString("o") });
754+
if (wi.ChangedDate == rev.Time)
755+
{
756+
rev.Fields.Add(new WiField() { ReferenceName = WiFieldReference.ChangedDate, Value = rev.Time.AddMilliseconds(1).ToString("o") });
757+
}
758+
else
759+
rev.Fields.Add(new WiField() { ReferenceName = WiFieldReference.ChangedDate, Value = rev.Time.ToString("o") });
752760
}
753761

754762
}
@@ -853,7 +861,7 @@ public bool ImportRevision(WiRevision rev, WorkItem wi)
853861
if (rev.Index == 0)
854862
EnsureClasificationFields(rev);
855863

856-
EnsureDateFields(rev);
864+
EnsureDateFields(rev, wi);
857865
EnsureAuthorFields(rev);
858866
EnsureAssigneeField(rev, wi);
859867
EnsureFieldsOnStateChange(rev, wi);

0 commit comments

Comments
 (0)