public void ChangeBasedOnArchive(ArchiveId archiveId, Reason reason, OperatorName @operator, Organization.DutchTranslation organization, RequestedChanges requestedChanges) { //TODO: Verify there are no duplicate identifiers (will fail anyway) and report as rejection requestedChanges .VerifyWith(_view.With(requestedChanges)) .RecordUsing(archiveId, reason, @operator, organization, Apply); }
public void RecordUsing( ArchiveId archiveId, Reason reason, OperatorName @operator, Organization.DutchTranslation organization, Action <object> applier) { if (organization == null) { throw new ArgumentNullException(nameof(organization)); } if (applier == null) { throw new ArgumentNullException(nameof(applier)); } if (_changes.Count == 0) { return; } if (_changes.OfType <RejectedChange>().Any()) { applier(new Messages.RoadNetworkChangesBasedOnArchiveRejected { ArchiveId = archiveId, Reason = reason, Operator = @operator, OrganizationId = organization.Identifier, Organization = organization.Name, Changes = _changes .OfType <RejectedChange>() .Select(change => change.Translate()) .ToArray() }); } else { applier(new Messages.RoadNetworkChangesBasedOnArchiveAccepted { ArchiveId = archiveId, Reason = reason, Operator = @operator, OrganizationId = organization.Identifier, Organization = organization.Name, Changes = _changes .OfType <AcceptedChange>() .Select(change => change.Translate()) .ToArray() }); } }