Пример #1
0
        public IEnumerable <LazyObjects.AFEventFrame> GetEventFrames(LazyPI.Common.Connection Connection, string ElementID, LazyPI.Common.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.Id, frame.Name, frame.Description, frame.Path));
            }

            return(results);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public IEnumerable <LazyObjects.AFAttributeTemplate> GetAttributeTemplates(LazyPI.Common.Connection Connection, string ElementID)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/elementtemplates/{webId}/attributetemplates");

            request.AddUrlSegment("webId", ElementID);

            var response = webConnection.Client.Execute <ResponseModels.ResponseList <ResponseModels.AFAttributeTemplate> >(request);

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error finding element templates for element. (See Inner Details)", response.ErrorException);
            }

            var data = response.Data;

            List <LazyObjects.AFAttributeTemplate> results = new List <LazyObjects.AFAttributeTemplate>();

            foreach (var template in data.Items)
            {
                LazyObjects.AFAttributeTemplate attr = new LazyObjects.AFAttributeTemplate(Connection, template.WebId, template.Id, template.Name, template.Description, template.Path);
                results.Add(attr);
            }

            return(results);
        }
Пример #4
0
 public PIPoint(LazyPI.Common.Connection Connection, string WebID, string ID, string Name, string Description, string Path, string PointType, string PointClass, bool Future) :
     base(Connection, WebID, ID, Name, Description, Path)
 {
     _PointClass = PointClass;
     _PointType  = PointType;
     _Future     = Future;
 }
Пример #5
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);
        }
Пример #6
0
        public IEnumerable <LazyObjects.AFEventFrame> GetEventFrames(LazyPI.Common.Connection Connection, string FrameID)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/eventframes/{webId}/eventframes");

            request.AddUrlSegment("webId", FrameID);
            request.AddParameter("searchMode", LazyPI.Common.SearchMode.BackwardFromStartTime);
            request.AddParameter("startTime", "*");

            var response = webConnection.Client.Execute <ResponseModels.ResponseList <ResponseModels.AFEventFrame> >(request);

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error retrieving event frames child event frames. (See Inner Details)", response.ErrorException);
            }

            var data = response.Data;

            List <LazyObjects.AFEventFrame> results = new List <LazyObjects.AFEventFrame>();

            foreach (var frame in data.Items)
            {
                results.Add(new LazyObjects.AFEventFrame(Connection, frame.WebId, frame.Id, frame.Name, frame.Description, frame.Path));
            }

            return(results);
        }
Пример #7
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;
 }
Пример #8
0
 public BaseObject(LazyPI.Common.Connection Connection, string webId, string id, string name, string description, string path)
 {
     _Connection  = Connection;
     _ID          = id;
     _Name        = name;
     _Description = description;
     _Path        = path;
     _WebID       = webId;
 }
Пример #9
0
        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);
        }
Пример #10
0
        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 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);
        }
Пример #12
0
        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);
        }
Пример #13
0
        public bool CreateAttribute(LazyPI.Common.Connection Connection, string FrameID, LazyObjects.AFAttribute attribute)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/eventframes/{webId}/attributes", Method.POST);

            request.AddUrlSegment("webId", FrameID);
            request.AddBody(attribute);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 201 ? true : false);
        }
Пример #14
0
        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);
        }
Пример #15
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);
        }
Пример #16
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);
        }
Пример #17
0
        //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.WebID);
            request.AddBody(AttrTemp);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 201);
        }
Пример #18
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);
        }
Пример #19
0
        public bool CreateUnitClass(LazyPI.Common.Connection Connection, string AFServerID, LazyObjects.AFUnit UnitClass)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/assetservers/{webId}/unitclasses", Method.POST);

            request.AddUrlSegment("webId", AFServerID);
            ResponseModels.UnitClass body = DataConversions.Convert(UnitClass);
            request.AddParameter("application/json; charset=utf-8", Newtonsoft.Json.JsonConvert.SerializeObject(body), ParameterType.RequestBody);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 201);
        }
Пример #20
0
        public bool CreateElement(LazyPI.Common.Connection Connection, string DatabaseID, LazyPI.LazyObjects.AFElement Element)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/assetdatabases/{webId}/elements", Method.POST);

            request.AddUrlSegment("webId", DatabaseID);
            ResponseModels.AFElement body = DataConversions.Convert(Element);
            request.AddParameter("application/json; charset=utf-8", Newtonsoft.Json.JsonConvert.SerializeObject(body), ParameterType.RequestBody);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 204);
        }
Пример #21
0
        public bool CreateAttribute(LazyPI.Common.Connection Connection, string FrameID, LazyObjects.AFAttribute attribute)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/eventframes/{webId}/attributes", Method.POST);

            request.AddUrlSegment("webId", FrameID);
            ResponseModels.AFAttribute body = DataConversions.Convert(attribute);
            request.AddParameter("application/json; charset=utf-8", Newtonsoft.Json.JsonConvert.SerializeObject(body), ParameterType.RequestBody);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 201 ? true : false);
        }
Пример #22
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.WebID);

            ResponseModels.AFAttribute body = DataConversions.Convert(Attr);
            request.AddParameter("application/json; charset=utf-8", Newtonsoft.Json.JsonConvert.SerializeObject(body), ParameterType.RequestBody);

            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 204);
        }
Пример #23
0
        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.WebID);
            ResponseModels.AFElementTemplate temp = new ResponseModels.AFElementTemplate(template.ID, template.WebID, template.Name, template.Description, template.Path);
            temp.AllowElementToExtend = template.IsExtendable;

            request.AddBody(temp);
            var statusCode = webConnection.Client.Execute(request).StatusCode;

            return((int)statusCode == 204);
        }
Пример #24
0
        public IEnumerable <LazyObjects.AFAttribute> GetAttributes(LazyPI.Common.Connection Connection, string FrameID, string NameFilter = "*", string CategoryName = null, string TemplateName = null, string ValueType = null, 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("/eventframes/{webId}/attributes");

            request.AddUrlSegment("webId", FrameID);
            request.AddParameter("nameFilter", NameFilter);

            if (CategoryName != null)
            {
                request.AddParameter("categoryName", CategoryName);
            }

            if (TemplateName != null)
            {
                request.AddParameter("templateName", TemplateName);
            }

            if (ValueType != null)
            {
                request.AddParameter("valueType", ValueType);
            }

            request.AddParameter("searchFullHierarchy", SearchFullHierarchy);
            request.AddParameter("sortOrder", SortOrder);
            request.AddParameter("sortField", SortField);
            request.AddParameter("startIndex", StartIndex);
            request.AddParameter("showExcluded", ShowExcluded);
            request.AddParameter("showHidden", ShowHidden);
            request.AddParameter("maxCount", MaxCount);

            var response = webConnection.Client.Execute <List <ResponseModels.AFAttribute> >(request);

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error finding event frame attributes. (See Inner Details)", response.ErrorException);
            }

            var data = response.Data;
            List <LazyObjects.AFAttribute> results = new List <LazyObjects.AFAttribute>();

            foreach (ResponseModels.AFAttribute attr in data)
            {
                results.Add(new LazyObjects.AFAttribute(Connection, attr.WebId, attr.Id, attr.Name, attr.Description, attr.Path));
            }

            return(results);
        }
Пример #25
0
        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);
        }
Пример #26
0
        /// <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, ParameterType.GetOrPost);
            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.Id, data.Name, data.Description, data.Path, data.DefaultUnitsName, data.ConfigString, data.DataReferencePlugIn, data.Type, data.CategoryNames));
        }
Пример #27
0
        /// <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));
        }
Пример #28
0
        public LazyObjects.AFElement FindByPath(LazyPI.Common.Connection Connection, string Path)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/elements");

            request.AddParameter("path", Path, ParameterType.GetOrPost);

            var response = webConnection.Client.Execute <LazyPI.WebAPI.ResponseModels.AFElement>(request);
            var data     = response.Data;

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error finding element by path. (See Inner Details)", response.ErrorException);
            }

            return(new LazyObjects.AFElement(Connection, data.WebId, data.Id, data.Name, data.Description, data.Path));
        }
Пример #29
0
        public LazyPI.LazyObjects.AFServer Find(LazyPI.Common.Connection Connection, string ID)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/assetservers/{webId}");

            request.AddUrlSegment("webId", ID);
            var response = webConnection.Client.Execute <ResponseModels.AFServer>(request);

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error finding database by ID. (See Inner Details)", response.ErrorException);
            }

            var data = response.Data;

            return(new LazyObjects.AFServer(Connection, data.WebId, data.Id, data.Name, data.Description, data.IsConnected, data.ServerVersion, data.Path));
        }
Пример #30
0
        public LazyObjects.AFServer FindByName(LazyPI.Common.Connection Connection, string Name)
        {
            WebAPIConnection webConnection = (WebAPIConnection)Connection;
            var request = new RestRequest("/assetservers");

            request.AddParameter("name", Name, ParameterType.GetOrPost);
            var response = webConnection.Client.Execute <ResponseModels.AFServer>(request);

            if (response.ErrorException != null)
            {
                throw new ApplicationException("Error finding attribute by name. (See Inner Details)", response.ErrorException);
            }

            var data = response.Data;

            return(new LazyObjects.AFServer(Connection, data.WebId, data.Id, data.Name, data.Description, data.IsConnected, data.ServerVersion, data.Path));
        }
Пример #31
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;
 }