예제 #1
0
        public ProcedureRoute GiveMeMappedObject()
        {
            ProcedureRoute result = new ProcedureRoute();

            result.Id = new System.Uri($"https://id.parliament.uk/{TripleStoreId}");
            result.ProcedureRouteIsToProcedureStep = new ProcedureStep[]
            {
                new ProcedureStep()
                {
                    Id = new System.Uri($"https://id.parliament.uk/{FromStepTripleStoreId}"),
                    ProcedureStepName = FromStepName
                }
            };
            result.ProcedureRouteIsFromProcedureStep = new ProcedureStep[]
            {
                new ProcedureStep()
                {
                    Id = new System.Uri($"https://id.parliament.uk/{ToStepTripleStoreId}"),
                    ProcedureStepName = ToStepName
                }
            };

            return(result);
        }
예제 #2
0
        public override BaseResource[] TransformSource(DataSet dataset)
        {
            ProcedureRoute procedureRoute = new ProcedureRoute();
            DataRow        row            = dataset.Tables[0].Rows[0];

            Uri idUri = GiveMeUri(GetText(row["TripleStoreId"]));

            if (idUri == null)
            {
                return(null);
            }
            else
            {
                procedureRoute.Id = idUri;
            }
            if (Convert.ToBoolean(row["IsDeleted"]))
            {
                return new BaseResource[] { procedureRoute }
            }
            ;

            string routeType = GetText(row["ProcedureRouteTypeName"]);

            if (string.IsNullOrWhiteSpace(routeType))
            {
                return(null);
            }

            if (Enum.TryParse <ProcedureRouteType>(routeType, out ProcedureRouteType procedureRouteKind) == false)
            {
                logger.Warning($"Invalid route type '{routeType}' found");
                return(null);
            }

            procedureRoute.ProcedureRouteHasProcedure = giveMeUris(dataset.Tables[1], "TripleStoreId")
                                                        .Select(u => new Procedure()
            {
                Id = u
            })
                                                        .ToArray();

            Uri fromStepUri = GiveMeUri(GetText(row["FromStep"]));

            if (fromStepUri != null)
            {
                ProcedureStep fromProcedureStep = new ProcedureStep();
                fromProcedureStep.Id = fromStepUri;
                switch (procedureRouteKind)
                {
                case ProcedureRouteType.Allows:
                    fromProcedureStep.ProcedureStepAllowsAllowedProcedureRoute = new List <AllowedProcedureRoute>()
                    {
                        new AllowedProcedureRoute()
                        {
                            Id = procedureRoute.Id
                        }
                    };
                    break;

                case ProcedureRouteType.Causes:
                    fromProcedureStep.ProcedureStepCausesCausedProcedureRoute = new List <CausedProcedureRoute>()
                    {
                        new CausedProcedureRoute()
                        {
                            Id = procedureRoute.Id
                        }
                    };
                    break;

                case ProcedureRouteType.Precludes:
                    fromProcedureStep.ProcedureStepPrecludesPrecludedProcedureRoute = new List <PrecludedProcedureRoute>()
                    {
                        new PrecludedProcedureRoute()
                        {
                            Id = procedureRoute.Id
                        }
                    };
                    break;

                case ProcedureRouteType.Requires:
                    fromProcedureStep.ProcedureStepRequiresRequiredProcedureRoute = new List <RequiredProcedureRoute>()
                    {
                        new RequiredProcedureRoute()
                        {
                            Id = procedureRoute.Id
                        }
                    };
                    break;
                }
                procedureRoute.ProcedureRouteIsFromProcedureStep = new List <ProcedureStep>()
                {
                    fromProcedureStep
                };
            }
            else
            {
                return(null);
            }
            Uri toStepUri = GiveMeUri(GetText(row["ToStep"]));

            if (toStepUri != null)
            {
                procedureRoute.ProcedureRouteIsToProcedureStep = new List <ProcedureStep>()
                {
                    new ProcedureStep()
                    {
                        Id = toStepUri
                    }
                }
            }
            ;
            else
            {
                return(null);
            }

            return(new BaseResource[] { procedureRoute });
        }