/// <summary>
        /// Routine to create a complex event frame for use in testing.
        /// </summary>
        /// <param name="db">The AF Database where the event frame should be created.</param>
        /// <param name="efData">Data used to create the event frame.</param>
        /// <returns>Fully created event frame object is returned.</returns>
        /// <remarks>
        /// The Event Frame created in this routine can be verified using the FullEventFrameVerify() routine.
        /// </remarks>
        private AFEventFrame FullEventFrameCreate(AFDatabase db, EventFrameTestConfiguration efData)
        {
            var attrCat = db.AttributeCategories[efData.AttributeCategoryName];

            if (attrCat == null)
            {
                attrCat = db.AttributeCategories.Add(efData.AttributeCategoryName);
            }
            var elemCat = db.ElementCategories[efData.ElementCategoryName];

            if (elemCat == null)
            {
                elemCat = db.ElementCategories.Add(efData.ElementCategoryName);
            }

            var elem = db.Elements[efData.EventFrameElementName];

            if (elem == null)
            {
                elem = db.Elements.Add(efData.EventFrameElementName);
            }
            if (elem.IsDirty)
            {
                elem.ApplyChanges();
            }

            var newEventFrame = new AFEventFrame(db, efData.Name);

            var attr1 = newEventFrame.Attributes.Add(efData.Attribute1Name);

            attr1.Categories.Add(attrCat);
            attr1.Type = typeof(AFFile);
            var attr2 = newEventFrame.Attributes.Add(efData.Attribute2Name);

            attr2.Type = typeof(double);
            attr2.SetValue(efData.Attribute2Value, null);
            var attr3 = newEventFrame.Attributes.Add(efData.Attribute3Name);

            attr3.DataReferencePlugIn = db.PISystem.DataReferencePlugIns[efData.DataReferencePlugInName];
            attr3.ConfigString        = efData.DataReferenceConfigString;

            newEventFrame.Categories.Add(elemCat);
            newEventFrame.EventFrames.Add(efData.ChildEventFrame);
            newEventFrame.ExtendedProperties.Add(efData.ExtPropKey, efData.ExtPropValue);
            newEventFrame.ReferencedElements.Add(elem);

            var ann = new AFAnnotation(newEventFrame)
            {
                Name  = efData.AnnotationName,
                Value = efData.AnnotationValue,
            };

            ann.Save();

            return(newEventFrame);
        }
示例#2
0
        private AFEventFrame CreateEventFrame(AFDatabase db, AFElementTemplate eventFrameTemplate, AFCategory elementCategory)
        {
            AFEventFrame ef = null;

            if (eventFrameTemplate == null)
            {
                AFElement el2       = db.Elements[Constants.AF_ELEMENT_NAME + "2"];
                AFElement el        = db.Elements[Constants.AF_ELEMENT_NAME];
                AFTime    startTime = new AFTime(DateTime.Now.AddDays(-1));
                ef = new AFEventFrame(db, Constants.AF_EVENT_FRAME_NAME);
                ef.ReferencedElements.Add(el);
                ef.ReferencedElements.Add(el2);
                ef.PrimaryReferencedElement = el;
                ef.SetStartTime(startTime);
                ef.CanBeAcknowledged = true;
                ef.SetEndTime(new AFTime("*"));
                ef.Categories.Add(elementCategory);
                AFEventFrame ef1 = ef.EventFrames.Add(Constants.AF_EVENT_FRAME_NAME + "Child1");
                AFEventFrame ef2 = ef.EventFrames.Add(Constants.AF_EVENT_FRAME_NAME + "Child2");
                ef.Attributes.Add(Constants.AF_ATTRIBUTE_NAME);
                IList <AFAnnotation> annotations = el.GetAnnotations();
                AFAnnotation         ann         = new AFAnnotation(ef);
                ann.Name  = Constants.AF_EVENT_FRAME_ANNOTATION_NAME;
                ann.Value = "Sample value for annotation";
                ann.Save();
            }
            else
            {
                AFElement myTank1   = db.Elements["Tank 1"];
                AFElement myTank2   = db.Elements["Tank 2"];
                AFTime    startTime = new AFTime("*-1d");
                ef = new AFEventFrame(db, "Tank Level 1", eventFrameTemplate);
                ef.ReferencedElements.Add(myTank1);
                ef.ReferencedElements.Add(myTank2);
                ef.PrimaryReferencedElement = myTank1;
                ef.SetStartTime(AFTime.Now);
                ef.CheckIn();
                AFTime endTime = AFTime.Now;
                ef.SetEndTime(endTime);
            }
            return(ef);
        }
        public void DeleteAnnotationTest()
        {
            var          result     = instance.GetAnnotations(webId, null);
            PIAnnotation annotation = result.Items.Where(m => m.Name == Constants.AF_EVENT_FRAME_ANNOTATION_NAME).FirstOrDefault();

            annotation.Value = "odosdsaaCSWCCSA";
            string id = annotation.Id.ToString();

            instance.DeleteAnnotation(webId: webId, id: id);
            string     path = Constants.AF_EVENT_FRAME_PATH;
            AFDatabase db   = StandardPISystem.Databases[Constants.AF_DATABASE_NAME];

            db.Refresh();
            AFEventFrame eventFrame = AFObject.FindObject(path) as AFEventFrame;
            AFAnnotation ann        = eventFrame.GetAnnotations().Where(an => an.Name == Constants.AF_EVENT_FRAME_ANNOTATION_NAME).FirstOrDefault();

            Assert.IsNull(ann);
            DeleteSampleDatabaseForTests();
            CreateSampleDatabaseForTests();
        }