예제 #1
0
        public ResourceState[] GetResources()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ResourceID", typeof(int));
            dt.Columns.Add("ResourceName", typeof(string));
            dt.Columns.Add("BuildingName", typeof(string));
            dt.Columns.Add("LabName", typeof(string));
            dt.Columns.Add("ProcessTechName", typeof(string));

            ResourceInfo[] query = DataSession.Query <ResourceInfo>().Where(x => x.ResourceIsActive).ToArray();
            foreach (var r in query)
            {
                dt.Rows.Add(r.ResourceID, r.ResourceName, r.BuildingName, r.LabName, r.ProcessTechName);
            }

            WagoInterlock.AllToolStatus(dt);

            ResourceState[] result = dt.AsEnumerable().Select(x => new ResourceState()
            {
                ResourceID      = x.Field <int>("ResourceID"),
                ResourceName    = x.Field <string>("ResourceName"),
                BuildingName    = x.Field <string>("BuildingName"),
                LabName         = x.Field <string>("LabName"),
                ProcessTechName = x.Field <string>("ProcessTechName"),
                PointID         = x.Field <int>("PointID"),
                InterlockStatus = x.Field <string>("InterlockStatus"),
                InterlockState  = x.Field <bool>("InterlockState"),
                InterlockError  = x.Field <bool>("InterlockError"),
                IsInterlocked   = x.Field <bool>("IsInterlocked")
            }).ToArray();

            return(result);
        }
예제 #2
0
        public IEnumerable <ToolStatus> GetToolStatus()
        {
            DataTable dt = new DataTable();

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnSselData"].ConnectionString))
                using (var cmd = new SqlCommand("SELECT * FROM sselControl.dbo.v_ToolStatus WHERE IsActive = 1 ORDER BY BuildingName, LabDisplayName, ProcessTechName, ResourceName", conn))
                    using (var adap = new SqlDataAdapter(cmd))
                    {
                        adap.Fill(dt);
                        conn.Close();
                    }

            WagoInterlock.AllToolStatus(dt);

            var result = dt.AsEnumerable().Select(x => new ToolStatus()
            {
                BuildingID      = x.Field <int>("BuildingID"),
                BuildingName    = x.Field <string>("BuildingName"),
                LabID           = x.Field <int>("LabID"),
                LabName         = x.Field <string>("LabName"),
                LabDisplayName  = x.Field <string>("LabDisplayName"),
                ProcessTechID   = x.Field <int>("ProcessTechID"),
                ProcessTechName = x.Field <string>("ProcessTechName"),
                ResourceID      = x.Field <int>("ResourceID"),
                ResourceName    = x.Field <string>("ResourceName"),
                PointID         = x.Field <int>("PointID"),
                InterlockStatus = x.Field <string>("InterlockStatus"),
                InterlockState  = x.Field <bool>("InterlockState"),
                InterlockError  = x.Field <bool>("InterlockError"),
                IsInterlocked   = x.Field <bool>("IsInterlocked")
            }).ToList();

            return(result);
        }
예제 #3
0
        public string GetInterlockStatus(int resourceId)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ResourceID", typeof(int));
            dt.Columns.Add("InterlockStatus", typeof(string));
            dt.Rows.Add(resourceId, string.Empty);
            WagoInterlock.AllToolStatus(dt);
            DataRow dr = dt.Select($"ResourceID = {resourceId}").FirstOrDefault();

            string result;

            if (dr != null)
            {
                result = Convert.ToString(dr["InterlockStatus"]);
            }
            else
            {
                result = $"{resourceId} not found";
            }

            return(result);
        }