Ejemplo n.º 1
0
        /// <summary>
        /// Adds a new channel instance to the collection
        /// of channel instances in this observation record.
        /// </summary>
        /// <param name="channelDefinition">Channel definition to use for looking up channel definition index of new channel instance.</param>
        /// <returns>NEw channel instance.</returns>
        public ChannelInstance AddNewChannelInstance(ChannelDefinition channelDefinition)
        {
            CollectionElement channelInstanceElement = new CollectionElement()
            {
                TagOfElement = OneChannelInstanceTag
            };
            ChannelInstance channelInstance = new ChannelInstance(channelInstanceElement, this);

            channelInstance.ChannelDefinitionIndex = (uint)channelDefinition.DataSource.ChannelDefinitions.IndexOf(channelDefinition);
            channelInstanceElement.AddElement(new CollectionElement()
            {
                TagOfElement = ChannelInstance.SeriesInstancesTag
            });

            CollectionElement?channelInstancesElement = PhysicalRecord.Body.Collection.GetCollectionByTag(ChannelInstancesTag);

            if (channelInstancesElement == null)
            {
                channelInstancesElement = new CollectionElement()
                {
                    TagOfElement = ChannelInstancesTag
                };
                PhysicalRecord.Body.Collection.AddElement(channelInstancesElement);
            }

            channelInstancesElement.AddElement(channelInstanceElement);

            return(channelInstance);
        }
Ejemplo n.º 2
0
        private void ShowCollections(Int32 level, String nodeText, String parentNodeText)
        {
            listView1.Items.Clear();
            listView1.Columns.Clear();

            if (level == 0 || level == 1)
            {
                listView1.Columns.Add("Name", -1, HorizontalAlignment.Left);
                listView1.Columns.Add("Description", -1, HorizontalAlignment.Left);
                listView1.Columns.Add("Type", -1, HorizontalAlignment.Left);
                listView1.Columns.Add("Package", -1, HorizontalAlignment.Left);

                IList list;
                if (level == 0)
                {
                    list = collections;
                }
                else
                {
                    list = new ArrayList();
                    list.Add(CollectionElement.FindByName((ArrayList)collections, nodeText));
                }
                foreach (CollectionElement e in list)
                {
                    ListViewItem lvi = new ListViewItem(e.Name);
                    lvi.SubItems.Add(e.Description);
                    lvi.SubItems.Add(e.Type.Name);
                    lvi.SubItems.Add(e.Type.Package);
                    listView1.Items.Add(lvi);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds a new channel definition to the collection
        /// of channel definitions in this data source record.
        /// </summary>
        public ChannelDefinition AddNewChannelDefinition()
        {
            CollectionElement channelDefinitionElement = new CollectionElement()
            {
                TagOfElement = OneChannelDefinitionTag
            };
            ChannelDefinition channelDefinition = new ChannelDefinition(channelDefinitionElement, this);

            channelDefinition.Phase            = Phase.None;
            channelDefinition.QuantityMeasured = QuantityMeasured.None;
            channelDefinitionElement.AddElement(new CollectionElement()
            {
                TagOfElement = ChannelDefinition.SeriesDefinitionsTag
            });

            CollectionElement channelDefinitionsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelDefinitionsTag);

            if ((object)channelDefinitionsElement == null)
            {
                channelDefinitionsElement = new CollectionElement()
                {
                    TagOfElement = ChannelDefinitionsTag
                };
                m_physicalRecord.Body.Collection.AddElement(channelDefinitionsElement);
            }

            channelDefinitionsElement.AddElement(channelDefinitionElement);

            return(channelDefinition);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Adds a new series instance to the collection
        /// of series instances in this channel instance.
        /// </summary>
        /// <returns>New series instance.</returns>
        public SeriesInstance AddNewSeriesInstance()
        {
            if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count)
            {
                throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition.");
            }

            CollectionElement seriesInstanceElement = new CollectionElement {
                TagOfElement = OneSeriesInstanceTag
            };
            SeriesDefinition seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count];
            SeriesInstance   seriesInstance   = new SeriesInstance(seriesInstanceElement, this, seriesDefinition);

            seriesInstanceElement.AddOrUpdateVector(SeriesInstance.SeriesValuesTag, PhysicalType.UnsignedInteger1, new byte[0]);

            CollectionElement?seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag);

            if (seriesInstancesElement == null)
            {
                seriesInstancesElement = new CollectionElement {
                    TagOfElement = SeriesInstancesTag
                };
                m_physicalStructure.AddElement(seriesInstancesElement);
            }

            seriesInstancesElement.AddElement(seriesInstanceElement);

            return(seriesInstance);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Adds a new series definition to the collection
        /// of series definitions in this channel definition.
        /// </summary>
        /// <returns>New series definition.</returns>
        public SeriesDefinition AddNewSeriesDefinition()
        {
            CollectionElement seriesDefinitionElement = new CollectionElement {
                TagOfElement = OneSeriesDefinitionTag
            };
            SeriesDefinition seriesDefinition = new SeriesDefinition(seriesDefinitionElement, this);

            seriesDefinition.ValueTypeID              = SeriesValueType.Val;
            seriesDefinition.QuantityUnits            = QuantityUnits.None;
            seriesDefinition.QuantityCharacteristicID = QuantityCharacteristic.None;
            seriesDefinition.StorageMethodID          = StorageMethods.Values;

            CollectionElement?seriesDefinitionsElement = m_physicalStructure.GetCollectionByTag(SeriesDefinitionsTag);

            if (seriesDefinitionsElement == null)
            {
                seriesDefinitionsElement = new CollectionElement {
                    TagOfElement = SeriesDefinitionsTag
                };
                m_physicalStructure.AddElement(seriesDefinitionsElement);
            }

            seriesDefinitionsElement.AddElement(seriesDefinitionElement);

            return(seriesDefinition);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Adds a new series instance to the collection
        /// of series instances in this channel instance.
        /// </summary>
        public SeriesInstance AddNewSeriesInstance()
        {
            CollectionElement seriesInstancesElement;
            CollectionElement seriesInstanceElement;
            SeriesDefinition  seriesDefinition;
            SeriesInstance    seriesInstance;

            if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count)
            {
                throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition.");
            }

            seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag);
            seriesInstanceElement  = new CollectionElement()
            {
                TagOfElement = OneSeriesInstanceTag
            };
            seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count];
            seriesInstance   = new SeriesInstance(seriesInstanceElement, this, seriesDefinition);

            if ((object)seriesInstancesElement == null)
            {
                seriesInstancesElement = new CollectionElement()
                {
                    TagOfElement = SeriesInstancesTag
                };

                m_physicalStructure.AddElement(seriesInstancesElement);
            }

            seriesInstancesElement.AddElement(seriesInstanceElement);

            return(seriesInstance);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Adds a new channel setting to the collection
        /// of channel settings in this monitor settings record.
        /// </summary>
        public ChannelSetting AddNewChannelSetting(ChannelDefinition channelDefinition)
        {
            CollectionElement channelSettingElement = new CollectionElement()
            {
                TagOfElement = OneChannelSettingTag
            };
            ChannelSetting channelSetting = new ChannelSetting(channelSettingElement, this);

            channelSetting.ChannelDefinitionIndex = (uint)channelDefinition.DataSource.ChannelDefinitions.IndexOf(channelDefinition);

            CollectionElement channelSettingsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelSettingsArrayTag);

            if ((object)channelSettingsElement == null)
            {
                channelSettingsElement = new CollectionElement()
                {
                    TagOfElement = OneChannelSettingTag
                };
                m_physicalRecord.Body.Collection.AddElement(channelSettingsElement);
            }

            channelSettingsElement.AddElement(channelSettingElement);

            return(channelSetting);
        }
Ejemplo n.º 8
0
        /// <summary></summary>
        public CollectionElement LastCollectionElement()
        {
            CollectionElement ce = collectionElements[collectionElements.Count - 1];

            collectionElements.RemoveAt(collectionElements.Count - 1);
            return(ce);            //remove last
        }
Ejemplo n.º 9
0
 void OnParentChanged(CollectionElement element, ParentChangedEventArgs e)
 {
     if (e.From != null)
     {
         base.OnRequestDelete(this, new WorkspaceRequestEventArgs(this));
     }
 }
Ejemplo n.º 10
0
        public static ServiceDocument ToServiceDocument(IEnumerable <string> userStreams,
                                                        IEnumerable <string> systemStreams,
                                                        string userHostName)
        {
            if (userStreams == null || systemStreams == null || userHostName == null)
            {
                return(null);
            }

            var document = new ServiceDocument();

            var userWorkspace = new WorkspaceElement();

            userWorkspace.SetTitle("User event streams");

            var systemWorkspace = new WorkspaceElement();

            systemWorkspace.SetTitle("System event streams");

            foreach (var userStream in userStreams)
            {
                var collection = new CollectionElement();

                collection.SetTitle(userStream);
                collection.SetUri(HostName.Combine(userHostName, "/streams/{0}", userStream));

                collection.AddAcceptType(ContentType.Xml);
                collection.AddAcceptType(ContentType.Atom);
                collection.AddAcceptType(ContentType.Json);
                collection.AddAcceptType(ContentType.AtomJson);

                userWorkspace.AddCollection(collection);
            }

            foreach (var systemStream in systemStreams)
            {
                var collection = new CollectionElement();

                collection.SetTitle(systemStream);
                collection.SetUri(HostName.Combine(userHostName, "/streams/{0}", systemStream));

                collection.AddAcceptType(ContentType.Xml);
                collection.AddAcceptType(ContentType.Atom);
                collection.AddAcceptType(ContentType.Json);
                collection.AddAcceptType(ContentType.AtomJson);

                systemWorkspace.AddCollection(collection);
            }

            document.AddWorkspace(userWorkspace);
            document.AddWorkspace(systemWorkspace);

            return(document);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Initializes a new collection element.
        /// </summary>
        /// <param name="name">The name to consider.</param>
        /// <param name="id">The ID to consider.</param>
        /// <param name="specification">The specification to consider.</param>
        /// <param name="elements">The elements to consider.</param>
        public static CollectionElement CreateCollection(
            string name,
            string id,
            params DataElement[] elements)
        {
            CollectionElement element = new CollectionElement(name, id);

            element.WithItems(elements);

            return(element);
        }
        private void PrepareForIndex(QueryTranslator q)
        {
            IQueryableCollection collPersister = q.GetCollectionPersister(collectionRole);

            if (!collPersister.HasIndex)
            {
                throw new QueryException("unindexed collection before []");
            }
            string[] indexCols = collPersister.IndexColumnNames;
            if (indexCols.Length != 1)
            {
                throw new QueryException("composite-index appears in []: " + path);
            }
            string[] keyCols = collPersister.KeyColumnNames;

            JoinFragment ojf = q.CreateJoinFragment(useThetaStyleJoin);

            ojf.AddCrossJoin(collPersister.TableName, collectionName);
            ojf.AddFromFragmentString(join.ToFromFragmentString);
            if (collPersister.IsOneToMany)
            {
                IQueryable persister = (IQueryable)collPersister.ElementPersister;
                ojf.AddJoins(
                    ((IJoinable)persister).FromJoinFragment(collectionName, true, false),
                    ((IJoinable)persister).WhereJoinFragment(collectionName, true, false)
                    );
            }

            if (!continuation)
            {
                AddJoin(collPersister.TableName, collectionName, keyCols);
            }
            join.AddCondition(collectionName, indexCols, " = ");

            string[] eltCols = collPersister.ElementColumnNames;

            CollectionElement elem = new CollectionElement();

            elem.ElementColumns = StringHelper.Qualify(collectionName, eltCols);
            elem.Type           = collPersister.ElementType;
            elem.IsOneToMany    = collPersister.IsOneToMany;
            elem.Alias          = collectionName;
            elem.Join           = join;
            collectionElements.Add(elem);               //addlast
            SetExpectingCollectionIndex();

            q.AddCollection(collectionName, collectionRole);
            q.AddJoin(collectionName, ojf);
        }
Ejemplo n.º 13
0
        // Static Methods

        /// <summary>
        /// Creates a new channel definition belonging to the given data source record.
        /// </summary>
        /// <param name="dataSourceRecord">The data source record that the new channel definition belongs to.</param>
        /// <returns>The new channel definition.</returns>
        public static ChannelDefinition CreateChannelDefinition(DataSourceRecord dataSourceRecord)
        {
            ChannelDefinition channelDefinition = dataSourceRecord.AddNewChannelDefinition();

            channelDefinition.Phase            = Phase.None;
            channelDefinition.QuantityMeasured = QuantityMeasured.None;

            CollectionElement physicalStructure = channelDefinition.PhysicalStructure;

            physicalStructure.AddElement(new CollectionElement {
                TagOfElement = SeriesDefinitionsTag
            });

            return(channelDefinition);
        }
Ejemplo n.º 14
0
    void OnTriggerExit2D(Collider2D other)
    {
        CollectionElement c = other.GetComponent <CollectionElement>();

        if (c == null)
        {
            return;
        }
        if (!triggerers.Contains(c.collection))
        {
            return;
        }

        foreach (var g in other.gameObject.GetComponentsInChildren <Gun>())
        {
            g.RemoveOverride(gunData);
        }
    }
Ejemplo n.º 15
0
        // Static Methods

        /// <summary>
        /// Creates a new data source record from scratch.
        /// </summary>
        /// <param name="dataSourceName">The name of the data source to be created.</param>
        /// <returns>The new data source record.</returns>
        public static DataSourceRecord CreateDataSourceRecord(string dataSourceName)
        {
            Guid             recordTypeTag    = Record.GetTypeAsTag(RecordType.DataSource);
            Record           physicalRecord   = new Record(recordTypeTag);
            DataSourceRecord dataSourceRecord = new DataSourceRecord(physicalRecord);

            DateTime now = DateTime.UtcNow;

            dataSourceRecord.DataSourceTypeID = DataSourceType.Simulate;
            dataSourceRecord.DataSourceName   = dataSourceName;
            dataSourceRecord.Effective        = now;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelDefinitionsTag
            });

            return(dataSourceRecord);
        }
Ejemplo n.º 16
0
    void OnTriggerExit(Collider other)
    {
        if (!camIsActive)
        {
            return;
        }

        CollectionElement element = other.GetComponent <CollectionElement>();

        if (!element)
        {
            return;
        }

        if (!triggeringCollections.Contains(element.collection))
        {
            return;
        }
        ExitAction(other);
    }
Ejemplo n.º 17
0
        // Static Methods

        /// <summary>
        /// Creates a new observation record from scratch with the given data source and settings.
        /// </summary>
        /// <param name="dataSource">The data source record that defines the channels in this observation record.</param>
        /// <param name="settings">The monitor settings to be applied to this observation record.</param>
        /// <returns>The new observation record.</returns>
        public static ObservationRecord CreateObservationRecord(DataSourceRecord dataSource, MonitorSettingsRecord?settings)
        {
            Guid              recordTypeTag     = Record.GetTypeAsTag(RecordType.Observation);
            Record            physicalRecord    = new Record(recordTypeTag);
            ObservationRecord observationRecord = new ObservationRecord(physicalRecord, dataSource, settings);

            DateTime now = DateTime.UtcNow;

            observationRecord.Name          = now.ToString();
            observationRecord.CreateTime    = now;
            observationRecord.StartTime     = now;
            observationRecord.TriggerMethod = TriggerMethod.None;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelInstancesTag
            });

            return(observationRecord);
        }
Ejemplo n.º 18
0
        // Static Methods

        /// <summary>
        /// Creates a new monitor settings record from scratch.
        /// </summary>
        /// <returns>The new monitor settings record.</returns>
        public static MonitorSettingsRecord CreateMonitorSettingsRecord()
        {
            Guid   recordTypeTag  = Record.GetTypeAsTag(RecordType.MonitorSettings);
            Record physicalRecord = new Record(recordTypeTag);
            MonitorSettingsRecord monitorSettingsRecord = new MonitorSettingsRecord(physicalRecord);

            DateTime now = DateTime.UtcNow;

            monitorSettingsRecord.Effective      = now;
            monitorSettingsRecord.TimeInstalled  = now;
            monitorSettingsRecord.UseCalibration = false;
            monitorSettingsRecord.UseTransducer  = false;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelSettingsArrayTag
            });

            return(monitorSettingsRecord);
        }
Ejemplo n.º 19
0
        private void PrepareForIndex(QueryTranslator q)
        {
            IQueryableCollection collPersister = q.GetCollectionPersister(collectionRole);

            if (!collPersister.HasIndex)
            {
                throw new QueryException("unindexed collection before []");
            }
            string[] indexCols = collPersister.IndexColumnNames;
            if (indexCols.Length != 1)
            {
                throw new QueryException("composite-index appears in []: " + path);
            }

            JoinSequence fromJoins = new JoinSequence(q.Factory)
                                     .SetUseThetaStyle(useThetaStyleJoin)
                                     .SetRoot(collPersister, collectionName)
                                     .SetNext(joinSequence.Copy());

            if (!continuation)
            {
                AddJoin(collectionName, collPersister.CollectionType);
            }
            joinSequence.AddCondition(new SqlString(collectionName + '.' + indexCols[0] + " = "));

            CollectionElement elem = new CollectionElement();

            elem.ElementColumns = collPersister.GetElementColumnNames(collectionName);
            elem.Type           = collPersister.ElementType;
            elem.IsOneToMany    = collPersister.IsOneToMany;
            elem.Alias          = collectionName;
            elem.JoinSequence   = joinSequence;
            collectionElements.Add(elem);             //addlast
            SetExpectingCollectionIndex();

            q.AddCollection(collectionName, collectionRole);
            q.AddJoin(collectionName, fromJoins);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Adds a new channel definition to the collection
        /// of channel definitions in this data source record.
        /// </summary>
        public ChannelDefinition AddNewChannelDefinition()
        {
            CollectionElement channelDefinitionsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelDefinitionsTag);
            CollectionElement channelDefinitionElement  = new CollectionElement()
            {
                TagOfElement = OneChannelDefinitionTag
            };
            ChannelDefinition channelDefinition = new ChannelDefinition(channelDefinitionElement, this);

            if ((object)channelDefinitionsElement == null)
            {
                channelDefinitionsElement = new CollectionElement()
                {
                    TagOfElement = ChannelDefinitionsTag
                };

                m_physicalRecord.Body.Collection.AddElement(channelDefinitionsElement);
            }

            channelDefinitionsElement.AddElement(channelDefinitionElement);

            return(channelDefinition);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Removes the given series definition from the collection of series definitions.
        /// </summary>
        /// <param name="seriesDefinition">The series definition to be removed.</param>
        public void Remove(SeriesDefinition seriesDefinition)
        {
            CollectionElement        seriesDefinitionsElement = m_physicalStructure.GetCollectionByTag(SeriesDefinitionsTag);
            List <CollectionElement> seriesDefinitionElements;
            SeriesDefinition         definition;

            if ((object)seriesDefinitionsElement == null)
            {
                return;
            }

            seriesDefinitionElements = seriesDefinitionsElement.GetElementsByTag(OneSeriesDefinitionTag).Cast <CollectionElement>().ToList();

            foreach (CollectionElement seriesDefinitionElement in seriesDefinitionElements)
            {
                definition = new SeriesDefinition(seriesDefinitionElement, this);

                if (Equals(seriesDefinition, definition))
                {
                    seriesDefinitionsElement.RemoveElement(seriesDefinitionElement);
                }
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Removes the given channel definition from the collection of channel definitions.
        /// </summary>
        /// <param name="channelDefinition">The channel definition to be removed.</param>
        public void Remove(ChannelDefinition channelDefinition)
        {
            CollectionElement        channelDefinitionsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelDefinitionsTag);
            List <CollectionElement> channelDefinitionElements;
            ChannelDefinition        definition;

            if ((object)channelDefinitionsElement == null)
            {
                return;
            }

            channelDefinitionElements = channelDefinitionsElement.GetElementsByTag(OneChannelDefinitionTag).Cast <CollectionElement>().ToList();

            foreach (CollectionElement channelDefinitionElement in channelDefinitionElements)
            {
                definition = new ChannelDefinition(channelDefinitionElement, this);

                if (Equals(channelDefinition, definition))
                {
                    channelDefinitionsElement.RemoveElement(channelDefinitionElement);
                }
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Adds a new series definition to the collection
        /// of series definitions in this channel definition.
        /// </summary>
        public SeriesDefinition AddNewSeriesDefinition()
        {
            CollectionElement seriesDefinitionsElement = m_physicalStructure.GetCollectionByTag(SeriesDefinitionsTag);
            CollectionElement seriesDefinitionElement  = new CollectionElement()
            {
                TagOfElement = OneSeriesDefinitionTag
            };
            SeriesDefinition seriesDefinition = new SeriesDefinition(seriesDefinitionElement, this);

            if ((object)seriesDefinitionsElement == null)
            {
                seriesDefinitionsElement = new CollectionElement()
                {
                    TagOfElement = SeriesDefinitionsTag
                };

                m_physicalStructure.AddElement(seriesDefinitionsElement);
            }

            seriesDefinitionsElement.AddElement(seriesDefinitionElement);

            return(seriesDefinition);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Adds a new channel instance to the collection
        /// of channel instances in this observation record.
        /// </summary>
        public ChannelInstance AddNewChannelInstance()
        {
            CollectionElement channelInstancesElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelInstancesTag);
            CollectionElement channelInstanceElement  = new CollectionElement()
            {
                TagOfElement = OneChannelInstanceTag
            };
            ChannelInstance channelInstance = new ChannelInstance(channelInstanceElement, this);

            if ((object)channelInstancesElement == null)
            {
                channelInstancesElement = new CollectionElement()
                {
                    TagOfElement = OneChannelInstanceTag
                };

                m_physicalRecord.Body.Collection.AddElement(channelInstancesElement);
            }

            channelInstancesElement.AddElement(channelInstanceElement);

            return(channelInstance);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Removes the given channel setting from the collection of channel settings.
        /// </summary>
        /// <param name="channelSetting">The channel setting to be removed.</param>
        public void Remove(ChannelSetting channelSetting)
        {
            CollectionElement        channelSettingsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelSettingsArrayTag);
            List <CollectionElement> channelSettingElements;
            ChannelSetting           setting;

            if ((object)channelSettingsElement == null)
            {
                return;
            }

            channelSettingElements = channelSettingsElement.GetElementsByTag(OneChannelSettingTag).Cast <CollectionElement>().ToList();

            foreach (CollectionElement channelSettingElement in channelSettingElements)
            {
                setting = new ChannelSetting(channelSettingElement, this);

                if (Equals(channelSetting, setting))
                {
                    channelSettingsElement.RemoveElement(channelSettingElement);
                }
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Adds a new channel setting to the collection
        /// of channel settings in this monitor settings record.
        /// </summary>
        public ChannelSetting AddNewChannelSetting()
        {
            CollectionElement channelSettingsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelSettingsArrayTag);
            CollectionElement channelSettingElement  = new CollectionElement()
            {
                TagOfElement = OneChannelSettingTag
            };
            ChannelSetting channelSetting = new ChannelSetting(channelSettingElement, this);

            if ((object)channelSettingsElement == null)
            {
                channelSettingsElement = new CollectionElement()
                {
                    TagOfElement = OneChannelSettingTag
                };

                m_physicalRecord.Body.Collection.AddElement(channelSettingsElement);
            }

            channelSettingsElement.AddElement(channelSettingElement);

            return(channelSetting);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Removes the given channel instance from the collection of channel instances.
        /// </summary>
        /// <param name="channelInstance">The channel instance to be removed.</param>
        public void Remove(ChannelInstance channelInstance)
        {
            CollectionElement        channelInstancesElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelInstancesTag);
            List <CollectionElement> channelInstanceElements;
            ChannelInstance          instance;

            if ((object)channelInstancesElement == null)
            {
                return;
            }

            channelInstanceElements = channelInstancesElement.GetElementsByTag(OneChannelInstanceTag).Cast <CollectionElement>().ToList();

            foreach (CollectionElement channelSettingElement in channelInstanceElements)
            {
                instance = new ChannelInstance(channelSettingElement, this);

                if (Equals(channelInstance, instance))
                {
                    channelInstancesElement.RemoveElement(channelSettingElement);
                }
            }
        }
		private void PrepareForIndex(QueryTranslator q)
		{
			IQueryableCollection collPersister = q.GetCollectionPersister(collectionRole);

			if (!collPersister.HasIndex)
			{
				throw new QueryException("unindexed collection before []");
			}
			string[] indexCols = collPersister.IndexColumnNames;
			if (indexCols.Length != 1)
			{
				throw new QueryException("composite-index appears in []: " + path);
			}

			JoinSequence fromJoins = new JoinSequence(q.Factory)
				.SetUseThetaStyle(useThetaStyleJoin)
				.SetRoot(collPersister, collectionName)
				.SetNext(joinSequence.Copy());

			if (!continuation)
			{
				AddJoin(collectionName, collPersister.CollectionType);
			}
			joinSequence.AddCondition(new SqlString(collectionName + '.' + indexCols[0] + " = "));

			CollectionElement elem = new CollectionElement();
			elem.ElementColumns = collPersister.GetElementColumnNames(collectionName);
			elem.Type = collPersister.ElementType;
			elem.IsOneToMany = collPersister.IsOneToMany;
			elem.Alias = collectionName;
			elem.JoinSequence = joinSequence;
			collectionElements.Add(elem); //addlast
			SetExpectingCollectionIndex();

			q.AddCollection(collectionName, collectionRole);
			q.AddJoin(collectionName, fromJoins);
		}
		private void PrepareForIndex( QueryTranslator q )
		{
			IQueryableCollection collPersister = q.GetCollectionPersister( collectionRole );

			if( !collPersister.HasIndex )
			{
				throw new QueryException( "unindexed collection before []" );
			}
			string[ ] indexCols = collPersister.IndexColumnNames;
			if( indexCols.Length != 1 )
			{
				throw new QueryException( "composite-index appears in []: " + path );
			}
			string[ ] keyCols = collPersister.KeyColumnNames;

			JoinFragment ojf = q.CreateJoinFragment( useThetaStyleJoin );
			ojf.AddCrossJoin( collPersister.TableName, collectionName );
			ojf.AddFromFragmentString( join.ToFromFragmentString );
			if( collPersister.IsOneToMany )
			{
				IQueryable persister = (IQueryable) collPersister.ElementPersister;
				ojf.AddJoins(
					( (IJoinable) persister).FromJoinFragment( collectionName, true, false ),
					( (IJoinable) persister).WhereJoinFragment( collectionName, true, false )
					);
			}

			if( !continuation )
			{
				AddJoin( collPersister.TableName, collectionName, keyCols );
			}
			join.AddCondition( collectionName, indexCols, " = " );

			string[ ] eltCols = collPersister.ElementColumnNames;

			CollectionElement elem = new CollectionElement();
			elem.ElementColumns = StringHelper.Qualify( collectionName, eltCols );
			elem.Type = collPersister.ElementType;
			elem.IsOneToMany = collPersister.IsOneToMany;
			elem.Alias = collectionName;
			elem.Join = join;
			collectionElements.Add( elem ); //addlast
			SetExpectingCollectionIndex();

			q.AddCollection( collectionName, collectionRole );
			q.AddJoin( collectionName, ojf );
		}
Ejemplo n.º 30
0
 public void SetUp()
 {
     _writer     = XmlWriter.Create(new MemoryStream());
     _collection = new CollectionElement();
 }
Ejemplo n.º 31
0
 /// <summary>
 /// Creates a new instance of the <see cref="ChannelSetting"/> class.
 /// </summary>
 /// <param name="physicalStructure">The collection element which is the physical structure of the channel setting.</param>
 /// <param name="monitorSettingsRecord">The monitor settings record in which the channel setting resides.</param>
 public ChannelSetting(CollectionElement physicalStructure, MonitorSettingsRecord monitorSettingsRecord)
 {
     m_physicalStructure     = physicalStructure;
     m_monitorSettingsRecord = monitorSettingsRecord;
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Creates a new instance of the <see cref="SeriesInstance"/> class.
 /// </summary>
 /// <param name="physicalStructure">The physical structure of the series instance.</param>
 /// <param name="channel">The channel instance that this series instance resides in.</param>
 /// <param name="definition">The series definition that defines this series instance.</param>
 public SeriesInstance(CollectionElement physicalStructure, ChannelInstance channel, SeriesDefinition definition)
 {
     m_physicalStructure = physicalStructure;
     m_channel           = channel;
     m_definition        = definition;
 }