@@ -15,12 +15,16 @@ public class AzureDevopsTrackerService : IAzureDevopsTrackerService
1515 {
1616 public readonly IWorkItemRepository _workItemRepository ;
1717 public readonly IWorkItemAdapter _workItemAdapter ;
18+ public readonly IChangeLogItemRepository _changeLogItemRepository ;
1819
1920 public AzureDevopsTrackerService (
20- IWorkItemAdapter workItemAdapter , IWorkItemRepository workItemRepository )
21+ IWorkItemAdapter workItemAdapter ,
22+ IWorkItemRepository workItemRepository ,
23+ IChangeLogItemRepository changeLogItemRepository )
2124 {
2225 _workItemAdapter = workItemAdapter ;
2326 _workItemRepository = workItemRepository ;
27+ _changeLogItemRepository = changeLogItemRepository ;
2428 }
2529
2630 public async Task Create ( CreateWorkItemDTO create , bool addWorkItemChange = true )
@@ -163,6 +167,11 @@ public void RemoveTimeByStateFromDataBase(WorkItem workItem)
163167
164168 public void CheckWorkItemAvailableToChangeLog ( WorkItem workItem , Fields fields )
165169 {
170+ if ( workItem . CurrentStatus != "Closed" &&
171+ workItem . LastStatus == "Closed" &&
172+ workItem . ChangeLogItem != null )
173+ RemoveChangeLogItem ( workItem ) ;
174+
166175 if ( workItem . CurrentStatus != "Closed" ||
167176 fields . ChangeLogDescription . IsNullOrEmpty ( ) )
168177 return ;
@@ -188,6 +197,18 @@ public ChangeLogItem ToChangeLogItem(WorkItem workItem, Fields fields)
188197 {
189198 return new ChangeLogItem ( workItem . Id , workItem . Title , fields . ChangeLogDescription , workItem . Type ) ;
190199 }
200+
201+ public void RemoveChangeLogItem ( WorkItem workItem )
202+ {
203+ var changeLotItem = _changeLogItemRepository . GetById ( workItem . ChangeLogItem ? . Id ) . Result ;
204+ if ( changeLotItem != null )
205+ {
206+ _changeLogItemRepository . Delete ( changeLotItem ) ;
207+ _changeLogItemRepository . SaveChangesAsync ( ) . Wait ( ) ;
208+
209+ workItem . RemoveChangeLogItem ( ) ;
210+ }
211+ }
191212 #endregion
192213 }
193214}
0 commit comments