Beispiel #1
0
        /// <summary>
        /// Returns a Signal Property set if signalID is set or a specific property if signalPropertyID is set.
        /// An empty Signal Property will be returned if neither are set.
        /// </summary>
        /// <returns></returns>
        public SignalPropertiesModels Get(string signalID = null, string signalPropertyID = null)
        {
            SignalPropertiesModels returnObjs = new SignalPropertiesModels();
            string query = string.Empty;

            if (!string.IsNullOrWhiteSpace(signalPropertyID))
            {
                query = "EXEC rGetSignalProperty @SignalPropertyID = '" + signalPropertyID + "'";
            }
            else if (!string.IsNullOrWhiteSpace(signalID))
            {
                query = "EXEC rGetSignalProperties @SignalID = '" + signalID + "'";
            }
            else
            {
                return(returnObjs);
            }
            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        SignalPropertyModels newObj = new SignalPropertyModels();
                        newObj.DisplayName      = item["DisplayName"].ToString();
                        newObj.PropertyName     = item["PropertyName"].ToString();
                        newObj.PropertyValue    = item["PropertyValue"].ToString();
                        newObj.SignalPropertyID = item["SignalPropertyID"].ToString();
                    }
                }
            }
            return(returnObjs);
        }
Beispiel #2
0
        /// <summary>
        /// Get properties the are associated with a specific object as a parent.
        /// objectTypeID is optional.
        /// </summary>
        /// <param name="objectID"></param>
        /// <param name="objectTypeID"></param>
        /// <returns></returns>
        public Object Get([FromUri] string objectID = null, [FromUri] string objectTypeID = null)
        {
            ObjectAssociatedPropertiesModels returnObj = new ObjectAssociatedPropertiesModels();
            string propertyFilter = string.Empty;

            if (!string.IsNullOrWhiteSpace(objectTypeID))
            {
                propertyFilter = ",@ObjectTypeID ='" + objectTypeID + "'";
            }
            string query = "EXEC rGetObjectAssociatedProperties @ObjectID ='" + objectID + "'" + propertyFilter;

            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        ObjectAssociatedPropertyModel newObj = new ObjectAssociatedPropertyModel();
                        newObj.DisplayName     = item["DisplayName"].ToString();
                        newObj.ObjectID        = item["ObjectID"].ToString();
                        newObj.ObjectTypeID    = item["ObjectTypeID"].ToString();
                        newObj.ObjectTypeText  = item["ObjectTypeText"].ToString();
                        newObj.ObjectTypeValue = item["ObjectTypeValue"].ToString();
                        returnObj.RadiusObjectAssociatedProperties.Add(newObj);
                    }
                }
            }
            return(returnObj);
        }
        /// <summary>
        /// Inserts a new Log. Excluding the timestamp will use the insert date.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="typeID"></param>
        /// <param name="message"></param>
        /// <param name="timeStamp"></param>
        public HttpResponseMessage Put([FromUri] string source, [FromUri] string typeID, [FromUri] string message, [FromUri] string timeStamp = "")
        {
            string query;

            if (string.IsNullOrWhiteSpace(timeStamp))
            {
                query = "INSERT INTO dataTblLogs (Source,Type,Message) VALUES ('" + source + "','" + typeID + "','" + message + "')";
            }
            else
            {
                query = "INSERT INTO dataTblLogs (Source,Type,Message,TimeStamp) VALUES ('" + source + "','" + typeID + "','" + message + "','" + timeStamp + "')";
            }
            SQL_Access sqlObject = new SQL_Access();

            sqlObject.QuerySQL(query, ref sqlStatus);
            HttpResponseMessage response;

            if (sqlStatus == "Success")
            {
                response = Request.CreateResponse(HttpStatusCode.OK, sqlStatus);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, sqlStatus);
            }
            response.Content = new StringContent(sqlStatus, Encoding.Unicode);
            response.Headers.CacheControl = new CacheControlHeaderValue()
            {
                MaxAge = TimeSpan.FromMinutes(20)
            };
            return(response);
        }
Beispiel #4
0
        /// <summary>
        /// Gets the Values and Text representation for the Type specified.
        /// </summary>
        /// <param name="typeID">Type Specified</param>
        /// <returns></returns>
        public DataTable Get(string typeID)
        {
            string     query       = "SELECT ID,Value,Text FROM cfgTblIdentifiers WHERE ID_Type = '" + typeID + "' ORDER BY Value";
            SQL_Access returnTable = new SQL_Access();

            return(returnTable.QuerySQL(query, ref sqlStatus));
        }
Beispiel #5
0
        /// <summary>
        /// Returns a list of available Objects
        /// </summary>
        /// <returns></returns>
        public ObjectModels Get([FromUri] string objectTypeID = null)
        {
            string query = "EXEC rGetObjects";

            if (objectTypeID != null)
            {
                query = "EXEC rGetObjects @ObjectTypeID='" + objectTypeID + "'";
            }
            ObjectModels returnObjs = new ObjectModels();

            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        ObjectModel newObj = new ObjectModel();
                        newObj.DisplayName     = item["DisplayName"].ToString();
                        newObj.ObjectID        = item["ObjectID"].ToString();
                        newObj.ObjectTypeID    = item["ObjectTypeID"].ToString();
                        newObj.ObjectTypeText  = item["ObjectTypeText"].ToString();
                        newObj.ObjectTypeValue = item["ObjectTypeValue"].ToString();
                        returnObjs.RadiusObjects.Add(newObj);
                    }
                }
            }
            return(returnObjs);
        }
        /// <summary>
        /// Returns Returns a list of properties if all parameters are null,
        /// Properties associated with an Object,
        /// Properties associated with the Property Name.
        /// </summary>
        /// <param name="objectID"></param>
        /// <param name="objectPropertyID"></param>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        public Object Get([FromUri] string objectID = null, [FromUri] string objectPropertyID = null, [FromUri] string propertyName = null)
        {
            string query = "SELECT Property FROM cfgTblObjectProperties GROUP BY Property ORDER BY Property";

            if (string.IsNullOrWhiteSpace(objectID) &&
                string.IsNullOrWhiteSpace(objectPropertyID))
            {
                return(sqlObject.QuerySQL(query, ref sqlStatus));
            }

            ObjectPropertiesModels returnObj = new ObjectPropertiesModels();
            string propertyFilter            = string.Empty;

            if (!string.IsNullOrWhiteSpace(objectPropertyID))
            {
                propertyFilter = ", @ObjectPropertyID='" + objectPropertyID + "'";
            }
            if (!string.IsNullOrWhiteSpace(propertyName))
            {
                propertyFilter = ", @PropertyName='" + propertyName + "'";
            }
            query = "EXEC rGetObjectProperties @ObjectID = '" + objectID + "'" + propertyFilter;
            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        ObjectPropertyModel newObj = new ObjectPropertyModel();
                        newObj.DataTypeID         = item["DataTypeID"].ToString();
                        newObj.DataTypeText       = item["DataTypeText"].ToString();
                        newObj.DataTypeValue      = item["DataTypeValue"].ToString();
                        newObj.Value              = item["Value"].ToString();
                        newObj.DisplayName        = item["DisplayName"].ToString();
                        newObj.PropertyID         = item["PropertyID"].ToString();
                        newObj.ObjectID           = objectID;
                        newObj.PropertyName       = item["PropertyName"].ToString();
                        newObj.WriteSecurityLevel = item["WriteSecurityLevel"].ToString();
                        returnObj.RadiusObjectProperties.Add(newObj);
                    }
                }
            }
            return(returnObj);
        }
Beispiel #7
0
        /// <summary>
        /// Writes a value to the signal
        /// </summary>
        /// <param name="writeValue"></param>
        /// <returns></returns>
        public HttpResponseMessage Put([FromUri] SignalWriteModel writeValue)
        {
            string comments = "NULL";

            if (!string.IsNullOrWhiteSpace(writeValue.Comments))
            {
                comments = "'" + writeValue.Comments.Replace("'", "''") + "'";
            }
            string source = "NULL";

            if (!string.IsNullOrWhiteSpace(writeValue.Source))
            {
                source = "'" + writeValue.Source + "'";
            }
            string query = "EXEC rSetOPC_SigWrite @UserID = '" + writeValue.UserName + "'" +
                           ",@SignalID = '" + writeValue.SignalID + "'" +
                           ",@Value = '" + writeValue.Value + "'" +
                           ",@Comment = " + comments +
                           ",@Source = " + source;

            sqlObject.QuerySQL(query, ref sqlStatus);
            HttpResponseMessage response;

            if (sqlStatus == "Success")
            {
                response = Request.CreateResponse(HttpStatusCode.OK, sqlStatus);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, sqlStatus);
            }
            response.Content = new StringContent(sqlStatus, Encoding.Unicode);
            response.Headers.CacheControl = new CacheControlHeaderValue()
            {
                MaxAge = TimeSpan.FromMinutes(20)
            };
            return(response);
        }
Beispiel #8
0
        /// <summary>
        /// Inserts a new value.
        /// </summary>
        /// <param name="typeID">Type Specified</param>
        /// <param name="value">Value to add</param>
        /// <param name="text">Text representation of the Value</param>
        public HttpResponseMessage Put([FromUri] string typeID, [FromUri] string value, [FromUri] string text)
        {
            string query = "INSERT INTO cfgTblIdentifiers (ID_Type,Value,Text) VALUES ('" + typeID +
                           "','" + value + "','" + text + "')";
            SQL_Access sqlObject = new SQL_Access();

            sqlObject.QuerySQL(query, ref sqlStatus);
            HttpResponseMessage response;

            if (sqlStatus == "Success")
            {
                response = Request.CreateResponse(HttpStatusCode.OK, sqlStatus);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, sqlStatus);
            }
            response.Content = new StringContent(sqlStatus, Encoding.Unicode);
            response.Headers.CacheControl = new CacheControlHeaderValue()
            {
                MaxAge = TimeSpan.FromMinutes(20)
            };
            return(response);
        }
Beispiel #9
0
        /// <summary>
        /// Deletes a Value and Text representation.
        /// </summary>
        /// <param name="typeID">Type Specified</param>
        /// <param name="value">Value to delete</param>
        public HttpResponseMessage Delete([FromUri] string typeID, [FromUri] string value)
        {
            string query = "DELETE FROM cfgTblIdentifiers WHERE ID_Type = '" + typeID +
                           "' AND Value = '" + value + "'";
            SQL_Access sqlObject = new SQL_Access();

            sqlObject.QuerySQL(query, ref sqlStatus);
            HttpResponseMessage response;

            if (sqlStatus == "Success")
            {
                response = Request.CreateResponse(HttpStatusCode.OK, sqlStatus);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest, sqlStatus);
            }
            response.Content = new StringContent(sqlStatus, Encoding.Unicode);
            response.Headers.CacheControl = new CacheControlHeaderValue()
            {
                MaxAge = TimeSpan.FromMinutes(20)
            };
            return(response);
        }
        /// <summary>
        /// Returns the Views for the ID and/or group type.
        /// TODO: Implement Username
        /// </summary>
        /// <param name="deviceID"></param>
        /// <param name="groupType"></param>
        /// <returns></returns>
        public SignalViewModels Get([FromUri] string deviceID, [FromUri] string groupType = null)
        {
            SignalViewModels returnObjs = new SignalViewModels();
            //returnObjs.UserName = RequestContext.Principal.Identity.Name;
            string filter = string.Empty;

            if (!string.IsNullOrWhiteSpace(groupType))
            {
                filter = ", @TypeIDByValue = '" + groupType + "'";
            }
            string query = "EXEC rGetSignalViewByDevice @DeviceID = '" + deviceID + "'" + filter;

            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null && tblData.Rows.Count > 0)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        SignalViewModel newObj = new SignalViewModel();
                        newObj.SignalID           = item["SignalID"].ToString();
                        newObj.InputSource        = item["InputSource"].ToString();
                        newObj.OutputSource       = item["OutputSource"].ToString();
                        newObj.TagName            = item["TagName"].ToString();
                        newObj.DisplayName        = item["DisplayName"].ToString();
                        newObj.ViewDisplayName    = item["ViewDisplayName"].ToString();
                        newObj.TimeStamp          = item["TimeStamp"].ToString();
                        newObj.RawValue           = item["RawValue"].ToString();
                        newObj.Source             = item["Source"].ToString();
                        newObj.Enabled            = item["Enabled"].ToString();
                        newObj.ItemDataType       = item["ItemDataType"].ToString();
                        newObj.CommChannel        = item["CommChannel"].ToString();
                        newObj.EnableScaling      = item["EnableScaling"].ToString();
                        newObj.EU_Min             = item["EU_Min"].ToString();
                        newObj.EU_Max             = item["EU_Max"].ToString();
                        newObj.RawMin             = item["RawMin"].ToString();
                        newObj.RawMax             = item["RawMax"].ToString();
                        newObj.MinValue           = item["MinValue"].ToString();
                        newObj.MaxValue           = item["MaxValue"].ToString();
                        newObj.Precision          = item["Precision"].ToString();
                        newObj.Quality            = item["Quality"].ToString();
                        newObj.Units              = item["Units"].ToString();
                        newObj.WriteSecurityLevel = item["WriteSecurityLevel"].ToString();
                        newObj.EnumLookupValue    = item["EnumLookupValue"].ToString();
                        if (!string.IsNullOrWhiteSpace(newObj.EnumLookupValue))
                        {
                            query = "SELECT Value, Text FROM cfgTblIdentifiers WHERE ID_Type = '" + newObj.EnumLookupValue + "'";
                            DataTable tblEnums = sqlObject.QuerySQL(query, ref sqlStatus);
                            if (tblEnums != null && tblEnums.Rows.Count > 0)
                            {
                                foreach (DataRow dRow in tblEnums.Rows)
                                {
                                    newObj.EnumValues.Add(new EnumVal(dRow["Value"].ToString().ToLower(), dRow["Text"].ToString()));
                                }
                            }
                        }
                        returnObjs.SignalViews.Add(newObj);
                    }
                }
            }
            return(returnObjs);
        }
Beispiel #11
0
        /// <summary>
        /// Returns the Source and Type list if all parameters are blank or the logs according to source and/or type.
        /// Excluded values indicates all.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="typeID"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="useTop"></param>
        /// <returns></returns>
        public object Get([FromUri] string source    = "",
                          [FromUri] string typeID    = "",
                          [FromUri] string startDate = "",
                          [FromUri] string endDate   = "",
                          [FromUri] string useTop    = "")
        {
            string     query = string.Empty;
            SQL_Access returnTable;

            //Check if all are blank
            if (string.IsNullOrWhiteSpace(source) &&
                string.IsNullOrWhiteSpace(typeID) &&
                string.IsNullOrWhiteSpace(startDate) &&
                string.IsNullOrWhiteSpace(endDate) &&
                string.IsNullOrWhiteSpace(useTop))
            {
                List <DataTable> tblData = new List <DataTable>();
                query       = "SELECT Source FROM dataTblLogs GROUP BY Source ORDER BY Source";
                returnTable = new SQL_Access();
                tblData.Add(returnTable.QuerySQL(query, ref sqlStatus));
                query = "SELECT Type FROM dataTblLogs GROUP BY Type ORDER BY Type";
                tblData.Add(returnTable.QuerySQL(query, ref sqlStatus));
                return(tblData);
            }
            string filter = string.Empty;

            // Check source filter
            if (!string.IsNullOrWhiteSpace(source))
            {
                filter = " WHERE Source = '" + source + "'";
            }
            // Check typeID filter
            if (!string.IsNullOrWhiteSpace(typeID))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE Type = '" + typeID + "'";
                }
                else
                {
                    filter += " AND Type = '" + typeID + "'";
                }
            }
            // Check startDate filter
            if (!string.IsNullOrWhiteSpace(startDate))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE TimeStamp >= '" + startDate + "'";
                }
                else
                {
                    filter += " AND TimeStamp >= '" + startDate + "'";
                }
            }
            // Check endDate filter
            if (!string.IsNullOrWhiteSpace(endDate))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE TimeStamp <= '" + endDate + "'";
                }
                else
                {
                    filter += " AND TimeStamp <= '" + endDate + "'";
                }
            }
            if (int.TryParse(useTop, out int topResult) && topResult > 0)
            {
                query = "SELECT TOP " + topResult.ToString() + " Source,Type,Message FROM dataTblLogs" + filter + " ORDER BY TimeStamp DESC";
            }
            else
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    query = "SELECT 'Error in Request' AS 'Error'";
                }
                else
                {
                    query = "SELECT Source,Type,Message FROM dataTblLogs" + filter + " ORDER BY TimeStamp DESC";
                }
            }
            returnTable = new SQL_Access();
            return(returnTable.QuerySQL(query, ref sqlStatus));
        }
        /// <summary>
        /// Returns a list of available Signals
        /// </summary>
        /// <returns></returns>
        public SignalModels Get()
        {
            string       query      = "EXEC rGetSignals";
            SignalModels returnObjs = new SignalModels();

            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        SignalModel newObj = new SignalModel();
                        newObj.DataTypeID    = item["DataTypeID"].ToString();
                        newObj.DeviceID      = item["DeviceID"].ToString();
                        newObj.DataTypeText  = item["DataTypeText"].ToString();
                        newObj.DataTypeValue = item["DataTypeValue"].ToString();
                        newObj.DisplayName   = item["DisplayName"].ToString();
                        newObj.Enabled       = item["Enabled"].ToString();
                        newObj.RawValue      = item["RawValue"].ToString();
                        newObj.SignalID      = item["SignalID"].ToString();
                        newObj.SourceID      = item["SourceID"].ToString();
                        newObj.SourceText    = item["SourceText"].ToString();
                        newObj.SourceValue   = item["SourceValue"].ToString();
                        newObj.TagName       = item["TagName"].ToString();
                        newObj.TimeStamp     = item["TimeStamp"].ToString();
                        returnObjs.Signals.Add(newObj);
                    }
                }
            }
            return(returnObjs);
        }
Beispiel #13
0
        /// <summary>
        /// Returns the types of identifiers
        /// </summary>
        /// <returns></returns>
        public DataTable Get()
        {
            string query = "SELECT ID_Type AS Type FROM cfgTblIdentifiers GROUP BY ID_Type ORDER BY ID_Type";

            return(returnTable.QuerySQL(query, ref sqlStatus));
        }
Beispiel #14
0
        /// <summary>
        /// Returns the requested history based on the parameters.
        /// If nothing is passed, a list of available Tag Names is returned.
        /// </summary>
        /// <param name="historyRequest"></param>
        /// <returns></returns>
        public object Get([FromUri] SignalHistoryRequestModel historyRequest)
        {
            string query = string.Empty;

            if (historyRequest == null)
            {
                query = "SELECT TagName FROM dataTblSignalHistory GROUP BY TagName";
                return(sqlObject.QuerySQL(query, ref sqlStatus));
            }
            SignalHistoryModel returnObjs = new SignalHistoryModel();
            string             filter     = string.Empty;

            //Select statement
            if (!string.IsNullOrWhiteSpace(historyRequest.SelectTop))
            {
                query = "SELECT TOP " + historyRequest.SelectTop + " ";
            }
            else
            {
                query = "SELECT ";
            }
            //Filters
            if (!string.IsNullOrWhiteSpace(historyRequest.StartDate))
            {
                filter = " WHERE TimeStamp >= '" + historyRequest.StartDate + "'";
            }
            if (!string.IsNullOrWhiteSpace(historyRequest.EndDate))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE TimeStamp <= '" + historyRequest.EndDate + "'";
                }
                else
                {
                    filter += " AND TimeStamp <= '" + historyRequest.EndDate + "'";
                }
            }
            if (!string.IsNullOrWhiteSpace(historyRequest.SignalID))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE SignalID = '" + historyRequest.SignalID + "'";
                }
                else
                {
                    filter += " AND SignalID = '" + historyRequest.SignalID + "'";
                }
            }
            if (!string.IsNullOrWhiteSpace(historyRequest.TagName))
            {
                if (string.IsNullOrWhiteSpace(filter))
                {
                    filter = " WHERE TagName = '" + historyRequest.TagName + "'";
                }
                else
                {
                    filter += " AND TagName = '" + historyRequest.TagName + "'";
                }
            }
            // If no filters applied return blank object
            if (string.IsNullOrWhiteSpace(filter))
            {
                query = "SELECT TagName FROM dataTblSignalHistory GROUP BY TagName";
                return(sqlObject.QuerySQL(query, ref sqlStatus));
            }
            query += "InsertTime,TimeStamp,SignalID,TagName,TimeStamp,Value FROM dataTblSignalHistory" + filter;
            using (DataTable tblData = sqlObject.QuerySQL(query, ref sqlStatus))
            {
                if (tblData != null)
                {
                    foreach (DataRow item in tblData.Rows)
                    {
                        SignalHistoryPointModel newObj = new SignalHistoryPointModel();
                        newObj.InsertTimeStamp = item["InsertTime"].ToString();
                        newObj.SignalID        = item["SignalID"].ToString();
                        newObj.SignalTimeStamp = item["TimeStamp"].ToString();
                        newObj.TagName         = item["TagName"].ToString();
                        newObj.Value           = item["Value"].ToString();
                        returnObjs.SignalHistory.Add(newObj);
                    }
                }
            }
            return(returnObjs);
        }