示例#1
0
        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);
        }
示例#2
0
        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()
                });
            }
        }