private void CompareStations( List <Entities.Audit.AuditLogEntry> auditLogEntries, Entities.Ride original, Entities.Ride updated) { IList <int> originalStationIds = original.Stations.Select(x => x.Id).ToList(); IList <int> updatedStationsIds = updated.Stations.Select(x => x.Id).ToList(); if (originalStationIds.Except(updatedStationsIds).Any()) { auditLogEntries.Add(new Entities.Audit.AuditLogEntry { OriginalValue = string.Join(';', originalStationIds), NewValue = string.Join(';', updatedStationsIds), TypeOfChange = $"{(int)TypeOfChange.RideStations} - {TypeOfChange.RideStations}", Planned = false }); } IList <Entities.Station> originalStations = original.Stations.OrderBy(x => x.Name).ToList(); IList <Entities.Station> updateStations = original.Stations.OrderBy(x => x.Name).ToList(); if (originalStations.Any() && updateStations.Any()) { for (int i = 0; i < originalStations.Count && i < updateStations.Count; i++) { auditLogEntries.AddRange(_stationComparerService.Compare(originalStations[i], updateStations[i])); } } }
public IList <Entities.Audit.AuditLogEntry> Compare(Entities.Route original, Entities.Route updated) { var auditLogEntries = new List <Entities.Audit.AuditLogEntry>(); IList <Entities.Ride> originalRides = original.Rides.ToList(); IList <Entities.Ride> updatedRides = updated.Rides.ToList(); for (int i = 0; i < originalRides.Count && i < updatedRides.Count; i++) { auditLogEntries.AddRange(_rideComparerService.Compare(originalRides[i], updatedRides[i])); } return(auditLogEntries); }
public IList <Entities.Audit.AuditLogEntry> CompareContextsAndGetAudits( Entities.Context.EntityContext originalContext, Entities.Context.EntityContext updatedContext) { List <Entities.Audit.AuditLogEntry> auditLogEntries = new List <Entities.Audit.AuditLogEntry>(); for (int i = 0; i < originalContext.Routes.Count && i < updatedContext.Routes.Count; i++) { auditLogEntries.AddRange(_routeComparerService.Compare(originalContext.Routes[i], updatedContext.Routes[i])); } auditLogEntries = auditLogEntries .GroupBy(x => new { x.TypeOfChange, x.Planned, x.OriginalValue, x.NewValue }) .Select(x => x.ToList()) .SelectMany(x => x).ToList(); return(auditLogEntries); }