Пример #1
0
        protected virtual IUriNode addProvenance(ref IGraph targetGraph, string responsiblePerson, bool aurthorIsUri)
        {
            string   fileImportUri       = Common.ImportFileUriBaseString + "#" + DateTime.Now.ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat) + "FileImport";
            IUriNode fileParseActionNode = targetGraph.CreateUriNode(UriFactory.Create(fileImportUri));

            targetGraph.Assert(fileParseActionNode, UriNodeExt.RdfType(targetGraph), targetGraph.CreateUriNode(Properties.Settings.Default.ProvActivity));
            ILiteralNode startTimeNode = targetGraph.CreateLiteralNode(DateTime.Now.ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), UriFactory.Create(XmlSpecsHelper.XmlSchemaDataTypeDateTime));

            targetGraph.Assert(fileParseActionNode, targetGraph.CreateUriNode(Properties.Settings.Default.ProvStartedAtTime), startTimeNode);
            INode aurthor = null;

            if (!aurthorIsUri)
            {
                aurthor = targetGraph.CreateLiteralNode(responsiblePerson);//maybe sanitise this...
            }
            else
            {
                Uri aurthorUri;
                if (Uri.TryCreate(responsiblePerson, UriKind.Absolute, out aurthorUri))
                {
                    aurthor = targetGraph.CreateUriNode(aurthorUri);
                }
                else
                {
                    OnMessageToDisplay("Aurthors name Uri invalid", "Error", System.Windows.MessageBoxImage.Error);
                }
            }
            if (aurthor != null)
            {
                targetGraph.Assert(fileParseActionNode, targetGraph.CreateUriNode(Properties.Settings.Default.ProvWasAttributedTo), aurthor);
            }

            return(fileParseActionNode);
        }
        private void populateServiceListFromGraph(IGraph sourceGraph)
        {
            NodeFactory          fact = new NodeFactory();
            IEnumerable <Triple> scheduledServices = sourceGraph.GetTriplesWithPredicateObject(UriNodeExt.RdfType(sourceGraph),
                                                                                               fact.CreateUriNode(new Uri(Properties.Settings.Default.ScheduledService)));

            int    rsSpaceTaken = RailService.RSWIDTH + RailService.RSSPACE;
            int    nServices = scheduledServices.Count();
            uint   nCol = (uint)Math.Floor(this.cnvServices.ActualWidth / (rsSpaceTaken)) - 1;
            uint   nrows = (uint)nServices / nCol;
            uint   col = 0; uint row = 0;
            double cnvHeight = this.cnvServices.ActualHeight;

            foreach (Triple service in scheduledServices)
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    addRSDisplay(sourceGraph, rsSpaceTaken, nCol, ref col, ref row, service);
                }
                                                  ));
            }
        }