public bool Delete(LazyPI.Common.Connection Connection, string TemplateID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elementtemplates/{webId}", Method.DELETE); request.AddUrlSegment("webId", TemplateID); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
public bool Delete(LazyPI.Common.Connection Connection, string AttrTempID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributetemplates/{webId}"); request.AddParameter("webId", AttrTempID); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
//This really creates a childe attributetemplate //TODO: Something is wrong here ID should be a parent ID public bool Create(LazyPI.Common.Connection Connection, LazyObjects.AFAttributeTemplate AttrTemp) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributetemplates/{webId}/attributetemplates"); request.AddUrlSegment("webId", AttrTemp.ID); request.AddBody(AttrTemp); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 201); }
public bool CaptureValues(LazyPI.Common.Connection Connection, string FrameID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/eventframes/{webId}/attributes/capture", Method.POST); request.AddUrlSegment("webId", FrameID); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204 ? true : false); }
public bool CreateChildElement(LazyPI.Common.Connection Connection, string ParentID, LazyObjects.AFElement Element) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}/elements", Method.POST); request.AddUrlSegment("webId", ParentID); request.AddBody(Element); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 201); }
public bool CreateEventFrame(LazyPI.Common.Connection Connection, string FrameID, LazyObjects.AFEventFrame Eventframe) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/eventframes/{webId}/eventframes", Method.POST); request.AddUrlSegment("webId", FrameID); request.AddBody(Eventframe); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 201 ? true : false); }
/// <summary> /// Gets AFattribute specified by the path. /// </summary> /// <param name="Path">The path provided by the WebAPI.</param> /// <returns>A specific AF Attribute.</returns> /// <remarks>It is recommended to use Get By ID over path.</remarks> public LazyObjects.AFAttribute FindByPath(LazyPI.Common.Connection Connection, string Path) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributes"); request.AddParameter("path", Path); var response = webConnection.Client.Execute<ResponseModels.AFAttribute>(request); if (response.ErrorException != null) { throw new ApplicationException("Error finding attribute by path. (See Inner Details)", response.ErrorException); } var data = response.Data; return new LazyObjects.AFAttribute(Connection, data.WebID, data.Name, data.Description, data.Path); }
public LazyObjects.AFElement Find(LazyPI.Common.Connection Connection,string ElementID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}"); request.AddUrlSegment("webId", ElementID); var response = webConnection.Client.Execute<LazyPI.WebAPI.ResponseModels.AFElement>(request); if (response.ErrorException != null) { throw new ApplicationException("Error finding element by ID. (See Inner Details)", response.ErrorException); } ResponseModels.AFElement data = response.Data; return new LazyObjects.AFElement(Connection, data.WebID, data.Name, data.Description, data.Path); }
public LazyObjects.AFAttributeTemplate Find(LazyPI.Common.Connection Connection, string AttrTempID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributetemplates/{webId}"); request.AddUrlSegment("webId", AttrTempID); var response = webConnection.Client.Execute<ResponseModels.AFAttributeTemplate>(request); if (response.ErrorException != null) { throw new ApplicationException("Error finding attribute template by ID. (See Inner Details)", response.ErrorException); } var data = response.Data; return new LazyObjects.AFAttributeTemplate(Connection, data.WebID, data.Name, data.Description, data.Path); }
/// <summary> /// Creates a new AFAttribute in the parent element referenced by parentWID. /// </summary> /// <param name="ParentID"></param> /// <param name="Attr">The definition of the new attribute.</param> /// <returns>Returns true if create completed.</returns> public bool Create(LazyPI.Common.Connection Connection, string ParentID, LazyObjects.AFAttribute Attr) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributes/{webId}", Method.POST); request.AddUrlSegment("webId", ParentID); //Copy to api object ResponseModels.AFAttribute clientAttr = new ResponseModels.AFAttribute(); clientAttr.Name = Attr.Name; clientAttr.Description = Attr.Description; request.AddBody(clientAttr); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 201); }
public bool CreateElementTemplate(LazyPI.Common.Connection Connection, string ParentID, LazyObjects.AFElementTemplate Template) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elementtemplates/{webId}/attributetemplates", Method.POST); request.AddUrlSegment("webId", ParentID); ResponseModels.AFElementTemplate temp = new ResponseModels.AFElementTemplate(); temp.WebID = temp.ID; temp.Name = Template.Name; temp.Description = Template.Description; temp.Path = Template.Path; temp.CategoryNames = Template.Categories.ToList(); temp.AllowElementToExtend = Template.IsExtendable; request.AddBody(temp); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 201); }
public IEnumerable<LazyObjects.AFAttributeTemplate> GetChildAttributeTemplates(LazyPI.Common.Connection Connection, string AttrTempID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributetemplates/{webId}/attributetemplates"); request.AddUrlSegment("webId", AttrTempID); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.AFAttributeTemplate>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error finding attribute template children. (See Inner Details)", response.ErrorException); } var data = response.Data; List<LazyObjects.AFAttributeTemplate> templateList = new List<LazyObjects.AFAttributeTemplate>(); foreach(var template in data.Items) { LazyObjects.AFAttributeTemplate attrTemplate = new Lazyobject.AFAttributeTemplate(Connection, template.ID, template.Name, template.Description, template.Path); templateList.Add(attrTemplate); } return templateList; }
public bool Update(LazyPI.Common.Connection Connection, LazyObjects.AFEventFrame Eventframe) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/eventframes/{webId}", Method.PATCH); request.AddUrlSegment("webId", Eventframe.ID); request.AddBody(Eventframe); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204 ? true : false); }
public bool Update(LazyPI.Common.Connection Connection, LazyObjects.AFElementTemplate template) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elementtemplates/{webId}", Method.PATCH); request.AddUrlSegment("webId", template.ID); request.AddBody(template); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
public IEnumerable<string> GetCategories(LazyPI.Common.Connection Connection, string ElementID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}/categories"); request.AddUrlSegment("webId", ElementID); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.ElementCategory>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error searching for element categories. (See Inner Details)", response.ErrorException); } var data = response.Data; List<string> results = new List<string>(); foreach(ResponseModels.ElementCategory category in data.Items) { results.Add(category.Name); } return results; }
public IEnumerable<string> GetCategories(LazyPI.Common.Connection Connection, string TemplateID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elementtemplates/{webId}"); request.AddUrlSegment("webId", TemplateID); var response = webConnection.Client.Execute<ResponseModels.AFElementTemplate>(request); if (response.ErrorException != null) { throw new ApplicationException("Error finding element template by ID. (See Inner Details)", response.ErrorException); } return response.Data.CategoryNames; }
public bool IsExtendible(LazyPI.Common.Connection Connection, string TemplateID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elementtemplates/{webId}"); request.AddUrlSegment("webId", TemplateID); var response = webConnection.Client.Execute<ResponseModels.AFElementTemplate>(request); if (response.ErrorException != null) { throw new ApplicationException("Error checking if element template is extendible. (See Inner Details)", response.ErrorException); } var data = response.Data; return data.AllowElementToExtend; }
public bool Update(LazyPI.Common.Connection Connection, LazyObjects.AFElement Element) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}", Method.PATCH); request.AddUrlSegment("webId", Element.ID); ResponseModels.AFElement temp = new ResponseModels.AFElement(); temp.WebID = Element.ID; temp.Name = Element.Name; temp.Description = Element.Description; temp.Path = Element.Path; temp.CategoryNames = Element.Categories.ToList(); temp.TemplateName = Element.Template.Name; request.AddBody(temp); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
public IEnumerable<LazyObjects.AFElement> GetElements(LazyPI.Common.Connection Connection, string RootID, string NameFilter = "*", string CategoryName = "*", string TemplateName = "*", ElementType ElementType = ElementType.Any, bool SearchFullHierarchy = false, string SortField = "Name", string SortOrder = "Ascending", int StartIndex = 0, int MaxCount = 1000) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}/elements"); request.AddUrlSegment("webId", RootID); request.AddParameter("nameFilter", NameFilter); request.AddParameter("templateName", TemplateName); request.AddParameter("elementType", ElementType); request.AddParameter("searchFullHierarchy", SearchFullHierarchy); request.AddParameter("sortField", SortField); request.AddParameter("sortOrder", SortOrder); request.AddParameter("startIndex", StartIndex); request.AddParameter("maxCount", MaxCount); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.AFElement>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error searching for child elements of and element. (See Inner Details)", response.ErrorException); } var data = response.Data; List<LazyObjects.AFElement> results = new List<LazyObjects.AFElement>(); foreach (var element in data.Items) { results.Add(new LazyObjects.AFElement(Connection, element.WebID, element.Name, element.Description, element.Path)); } return results; }
/// <summary> /// Set the value of a configuration item attribute. For attributes with a data reference or non-configuration item attributes, consult the documentation for streams. /// </summary> /// <param name="AttrID">The WebID of the AF Attribute to be updated.</param> /// <param name="Value">The AFValue to be applied to the Attribute.</param> /// <returns>Returns true if the value update completes.</returns> /// <remarks>Users must be aware of the value type that the attribute takes before changing the value. If a value entered by the user does not match the value type expressed in the attribute, it will not work or it will return an error.</remarks> public bool SetValue(LazyPI.Common.Connection Connection, string AttrID, LazyObjects.AFValue Value) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributes/{webId}/value", Method.PUT); request.AddUrlSegment("webId", AttrID); request.AddBody(Value); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
/// <summary> /// Update an attribute by replacing items in its definition. /// </summary> /// <param name="Attr">A partial attribute that contains the WebID and any properties to be updated.</param> /// <returns>Returns true if update completed.</returns> public bool Update(LazyPI.Common.Connection Connection, LazyObjects.AFAttribute Attr) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributes/{webId}", Method.PATCH); request.AddUrlSegment("webId", Attr.ID); request.AddBody(Attr); var statusCode = webConnection.Client.Execute(request).StatusCode; return ((int)statusCode == 204); }
public BaseObject(LazyPI.Common.Connection Connection, string id, string name, string description, string path) { this._Connection = Connection; this._ID = id; this._Name = name; this._Description = description; this._Path = path; }
//TODO: Implement GetAttributes //TODO: Implement GetCategories /// <summary> /// Get the attribute's value. This call is intended for use with attributes that have no data reference only. For attributes with a data reference, consult the documentation for Streams. /// </summary> /// <param name="attrWID">The WebID of the AF Attribute to be read.</param> /// <returns></returns> public LazyObjects.AFValue GetValue(LazyPI.Common.Connection Connection, string AttrID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/attributes/{webId}/value"); request.AddUrlSegment("webId", AttrID); var response = webConnection.Client.Execute<ResponseModels.AFValue>(request); if (response.ErrorException != null) { throw new ApplicationException("Error retrieving value from attribute. (See Inner Details)", response.ErrorException); } ResponseModels.AFValue data = response.Data; return new LazyObjects.AFValue(data.Timestamp, data.Value, data.UnitsAbbreviation, data.Good, data.Questionable, data.Substituted); }
public AFAttributeTemplate(LazyPI.Common.Connection Connection, string ID, string Name, string Description, string Path) : base(Connection, ID, Name, Description, Path) { }
public IEnumerable<LazyObjects.AFElement> GetReferencedElements(LazyPI.Common.Connection Connection, string FrameID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/eventframes/{webId}/referencedelements"); request.AddUrlSegment("webId", FrameID); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.AFElement>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error retrieving elements referenced by event frame. (See Inner Details)", response.ErrorException); } var data = response.Data; List<LazyObjects.AFElement> results = new List<LazyObjects.AFElement>(); //TODO: Think of a more efficient way to do this. foreach (var element in data.Items) { results.Add(LazyObjects.AFElement.Find(Connection, element.WebID)); } return results; }
public IEnumerable<LazyObjects.AFEventFrame> GetEventFrames(LazyPI.Common.Connection Connection, string ElementID, LazyPI.SearchMode SearchMode, DateTime StartTime, DateTime EndTime, string NameFilter, string CategoryName, string TemplateName, string SortField, string SortOrder, int StartIndex, int MaxCount) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}/eventframes"); request.AddUrlSegment("webId", ElementID); request.AddParameter("searchMode", SearchMode); request.AddParameter("startTime", StartTime); request.AddParameter("endTime", EndTime); request.AddParameter("nameFilter", NameFilter); request.AddParameter("categoryName", CategoryName); request.AddParameter("templateName", TemplateName); request.AddParameter("sortField", SortField); request.AddParameter("sortOrder", SortOrder); request.AddParameter("startIndex", StartIndex); request.AddParameter("maxCount", MaxCount); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.AFEventFrame>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error searching for element template. (See Inner Details)", response.ErrorException); } var data = response.Data; List<LazyObjects.AFEventFrame> results = new List<LazyObjects.AFEventFrame>(); foreach (ResponseModels.AFEventFrame frame in data.Items) { results.Add(new LazyObjects.AFEventFrame(Connection, frame.WebID, frame.Name, frame.Description, frame.Path)); } return results; }
/// <summary> /// Creates element using the partial Attribute provided. /// </summary> /// <param name="ElementID">The element that will hold the attribute.</param> /// <param name="Attr">The partial attribute holding information to create attribute.</param> /// <returns>Returns true if creation completes properly.</returns> /// <remarks>It is expected that the attribute will not have ID and Path</remarks> public static bool Create(LazyPI.Common.Connection Connection, string ElementID, AFAttribute Attr) { return _AttrLoader.Create(Connection, ElementID, Attr); }
public string GetElementTemplate(LazyPI.Common.Connection Connection, string ElementID) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}"); request.AddUrlSegment("webId", ElementID); var response = webConnection.Client.Execute<LazyPI.WebAPI.ResponseModels.AFElement>(request); if (response.ErrorException != null) { throw new ApplicationException("Error searching for element template. (See Inner Details)", response.ErrorException); } var data = response.Data; return data.TemplateName; }
public AFAttribute(LazyPI.Common.Connection Connection, string ID, string Name, string Description, string Path) : base(Connection, ID, Name, Description, Path) { Initialize(); }
public IEnumerable<LazyObjects.AFAttribute> GetAttributes(LazyPI.Common.Connection Connection, string ParentID, string NameFilter = "*", string CategoryName = "*", string TemplateName = "*", string ValueType = "*", bool SearchFullHierarchy = false, string SortField = "Name", string SortOrder = "Ascending", int StartIndex = 0, bool ShowExcluded = false, bool ShowHidden = false, int MaxCount = 1000) { WebAPIConnection webConnection = (WebAPIConnection)Connection; var request = new RestRequest("/elements/{webId}/attributes"); request.AddUrlSegment("webId", ParentID); request.AddParameter("nameFilter", NameFilter); request.AddParameter("categoryName", CategoryName); request.AddParameter("templateName", TemplateName); request.AddParameter("valueType", ValueType); request.AddParameter("searchFullHierarchy", SearchFullHierarchy); request.AddParameter("sortField", SortField); request.AddParameter("sortOrder", SortOrder); request.AddParameter("startIndex", StartIndex); request.AddParameter("showExcluded", ShowExcluded); request.AddParameter("showHidden", ShowHidden); request.AddParameter("maxCount", MaxCount); var response = webConnection.Client.Execute<ResponseModels.ResponseList<ResponseModels.AFAttribute>>(request); if (response.ErrorException != null) { throw new ApplicationException("Error searching for element attributes. (See Inner Details)", response.ErrorException); } var data = response.Data; List<LazyObjects.AFAttribute> resultList = new List<LazyObjects.AFAttribute>(); foreach(var result in data.Items) { resultList.Add(LazyObjects.AFAttribute.Find(Connection, result.WebID)); } return resultList; }