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);
        }
Example #5
0
        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);
        }
Example #8
0
        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);
        }
Example #10
0
        /// <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);
        }
Example #15
0
        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;
        }
Example #18
0
        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);
        }
Example #19
0
        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;
        }
Example #20
0
        /// <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);
        }
Example #21
0
        /// <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);
        }
Example #22
0
 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;
 }
Example #23
0
        //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;
        }
Example #26
0
        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;
        }
Example #27
0
 /// <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);
 }
Example #28
0
        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;
        }
Example #29
0
 public AFAttribute(LazyPI.Common.Connection Connection, string ID, string Name, string Description, string Path)
     : base(Connection, ID, Name, Description, Path)
 {
     Initialize();
 }
Example #30
0
        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;
        }