/// <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); }
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(); }