/// <summary> /// Invokes callback for a read attributes request. /// </summary> private bool InvokeCallback(ReadAttributesEventHandler callback, object results) { // check for valid result type. if (!typeof(ItemAttributeCollection).IsInstanceOfType(results)) { return(false); } ItemAttributeCollection values = (ItemAttributeCollection)results; // update item handles and actual times. UpdateResults(new ItemAttributeCollection[] { values }); try { callback(this, values); } catch { // ignore exceptions in the callbacks. } // request always completes return(true); }
public void OnReadAttributeComplete(int dwTransactionID, int hrStatus, int hClient, int dwNumItems, OPCHDA_ATTRIBUTE[] pAttributeValues, int[] phrErrors) { try { lock (this) { Request request = (Request)this.m_requests[dwTransactionID]; if (request != null) { ItemAttributeCollection results = new ItemAttributeCollection { ServerHandle = hClient }; AttributeValueCollection[] valuesArray = new AttributeValueCollection[pAttributeValues.Length]; for (int i = 0; i < pAttributeValues.Length; i++) { valuesArray[i] = OpcCom.Hda.Interop.GetAttributeValueCollection(pAttributeValues[i], false); valuesArray[i].ResultID = OpcCom.Interop.GetResultID(phrErrors[i]); results.Add(valuesArray[i]); } if (request.InvokeCallback(results)) { this.m_requests.Remove(request.RequestID); } } } } catch (Exception exception) { this.HandleException(dwTransactionID, exception); } }
public void OnReadAttributeComplete(int dwTransactionID, int hrStatus, int hClient, int dwNumItems, OPCHDA_ATTRIBUTE[] pAttributeValues, int[] phrErrors) { try { lock (this) { Request request = (Request)m_requests[dwTransactionID]; if (request != null) { ItemAttributeCollection itemAttributeCollection = new ItemAttributeCollection(); itemAttributeCollection.ServerHandle = hClient; AttributeValueCollection[] array = new AttributeValueCollection[pAttributeValues.Length]; for (int i = 0; i < pAttributeValues.Length; i++) { array[i] = Interop.GetAttributeValueCollection(pAttributeValues[i], deallocate: false); array[i].ResultID = OpcCom.Interop.GetResultID(phrErrors[i]); itemAttributeCollection.Add(array[i]); } if (request.InvokeCallback(itemAttributeCollection)) { m_requests.Remove(request.RequestID); } } } } catch (Exception exception) { HandleException(dwTransactionID, exception); } }
public static ItemAttributeCollection GetbyItem(string ItemCode) { ItemAttributeCollection collection = new ItemAttributeCollection(); ItemAttribute obj; using (var reader = SqlHelper.ExecuteReader("tblItemAttribute_GetAll_byItem", new SqlParameter("@ItemCode", ItemCode))) { while (reader.Read()) { obj = GetItemFromReader(reader); collection.Add(obj); } } return(collection); }
public static ItemAttributeCollection GetAllItem() { ItemAttributeCollection collection = new ItemAttributeCollection(); using (var reader = SqlHelper.ExecuteReader("tblItemAttribute_GetAll", null)) { while (reader.Read()) { ItemAttribute obj = new ItemAttribute(); obj = GetItemFromReader(reader); collection.Add(obj); } } return(collection); }
/// <summary> /// Called when an asynchronous read attributes request completes. /// </summary> public void OnReadAttributeComplete( int dwTransactionID, int hrStatus, int hClient, int dwNumItems, OPCHDA_ATTRIBUTE[] pAttributeValues, int[] phrErrors) { try { lock (this) { // lookup request transaction. Request request = (Request)m_requests[dwTransactionID]; if (request == null) { return; } // create item object to collect results. ItemAttributeCollection item = new ItemAttributeCollection(); item.ServerHandle = hClient; // unmarshal results. AttributeValueCollection[] results = new AttributeValueCollection[pAttributeValues.Length]; for (int ii = 0; ii < pAttributeValues.Length; ii++) { results[ii] = Interop.GetAttributeValueCollection(pAttributeValues[ii], false); results[ii].ResultID = OpcCom.Interop.GetResultID(phrErrors[ii]); item.Add(results[ii]); } // invoke callback - remove request if all results arrived. if (request.InvokeCallback(item)) { m_requests.Remove(request.RequestID); } } } catch (Exception exception) { HandleException(dwTransactionID, exception); } }
private bool InvokeCallback(ReadAttributesEventHandler callback, object results) { if (!typeof(ItemAttributeCollection).IsInstanceOfType(results)) { return(false); } ItemAttributeCollection attributes = (ItemAttributeCollection)results; this.UpdateResults(new ItemAttributeCollection[] { attributes }); try { callback(this, attributes); } catch { } return(true); }