public void Save(IPropertySetArray pPropertySetArray) { IPropertySet pPropertySet = new PropertySetClass(); pPropertySet.SetProperty("Name", this.Name); pPropertySet.SetProperty("Description", this.Description); pPropertySet.SetProperty("AllowNull", this.AllowNull ? 1 : 0); pPropertySet.SetProperty("DataType", (int)this.ParamDataType); pPropertySetArray.Add(pPropertySet); }
public void Save(IPropertySetArray pPropertySetArray) { IPropertySet pPropertySet = new PropertySetClass(); pPropertySet.SetProperty("Name", this.Name); pPropertySet.SetProperty("ElementType", base.GetType().ToString()); pPropertySet.SetProperty("Element", this.Element); pPropertySet.SetProperty("Attributes", this.PropertySet); pPropertySet.SetProperty("Location", this.ElementLocation.ToString()); pPropertySetArray.Add(pPropertySet); }
/** * Returns a list of transformer asset IDs */ private byte[] GetTransformersOperHandler(NameValueCollection boundVariables, JsonObject operationInput, string outputFormat, string requestProperties, out string responseProperties) { responseProperties = null; if (unDataset == null) { throw new RestErrorException("No Utility Network found"); } JSONObject result = new JSONObject(); try { string userWhereClause; string xfrWhereClause = "ASSETGROUP=" + MV_XFR_ASSETGROUP.ToString() + " AND TIERNAME=" + MV_TIER_CODE.ToString(); operationInput.TryGetString("where", out userWhereClause); if (!string.IsNullOrEmpty(userWhereClause)) { xfrWhereClause += " AND (" + userWhereClause + ")"; } // Get the transformers asset IDs IStringArray xfrOutFields = new StrArrayClass(); xfrOutFields.Add("ASSETID"); IPropertySetArray xfrQryResults = QueryDevices(xfrWhereClause, xfrOutFields); IJSONArray assetIds = new JSONArray(); if (xfrQryResults != null) { for (int i = 0; i < xfrQryResults.Count; i++) { assetIds.Add((string)xfrQryResults.Element[i].GetProperty("ASSETID")); } } result.AddJSONArray("assetIds", assetIds); } catch (Exception e) { logger.LogMessage(ServerLogger.msgType.debug, soe_name + " getMVTransformerAssetIds", 500, "Exception " + e.GetType().Name + " " + e.Message + " " + e.StackTrace); JSONObject error = soeUtil.CreateErrorJSON(500, "Unable to complete operation", e.HResult, e.Message); return(Encoding.UTF8.GetBytes(error.ToJSONString(null))); } return(Encoding.UTF8.GetBytes(result.ToJSONString(null))); }
/** * Returns a list of customers serviced by the specified transformer */ private byte[] GetCustomersOperHandler(NameValueCollection boundVariables, JsonObject operationInput, string outputFormat, string requestProperties, out string responseProperties) { responseProperties = null; if (unDataset == null) { throw new RestErrorException("No Utility Network found"); } JSONObject result = new JSONObject(); try { string xfrAssetID = ""; operationInput.TryGetString("transformerAssetId", out xfrAssetID); if (string.IsNullOrEmpty(xfrAssetID)) { long?assetNumber = null; operationInput.TryGetAsLong("transformerAssetId", out assetNumber); if (assetNumber == null) { throw new ArgumentNullException("transformerAssetId"); } else { xfrAssetID = assetNumber.ToString(); } } // Get the transformer feature global ID from the asset ID string xfrWhereClause = "ASSETGROUP=" + MV_XFR_ASSETGROUP.ToString() + " AND ASSETID=" + xfrAssetID; IStringArray xfrOutFields = new StrArrayClass(); xfrOutFields.Add("GLOBALID"); xfrOutFields.Add("ASSETTYPE"); xfrOutFields.Add("SHAPE"); IPropertySetArray xfrQryResults = QueryDevices(xfrWhereClause, xfrOutFields); if (xfrQryResults == null || xfrQryResults.Count == 0) { throw new RestErrorException("No medium voltage transformer found for asset id: " + xfrAssetID); } string xfrGlobalID = (string)xfrQryResults.Element[0].GetProperty("GLOBALID"); short xfrAssetType = (short)xfrQryResults.Element[0].GetProperty("ASSETTYPE"); // Execute a downstream trace to find all customer low voltage service points IStringArray lvsGlobalIDs = FindLVServicePoints(xfrGlobalID); // Prepare response JSON JSONObject xfrInfo = new JSONObject(); xfrInfo.AddString("ASSETID", xfrAssetID); xfrInfo.AddString("GLOBALID", xfrGlobalID); xfrInfo.AddLong("ASSETGROUP", MV_XFR_ASSETGROUP); xfrInfo.AddLong("ASSETTYPE", xfrAssetType); IJSONObject xfrPointJson = new JSONObject(); IGeometry xfrPoint = (IGeometry)xfrQryResults.Element[0].GetProperty("SHAPE"); IJSONConverterGeometry geoSerializer = new JSONConverterGeometryClass(); geoSerializer.QueryJSONGeometry(xfrPoint, false, xfrPointJson); xfrInfo.AddJSONObject("geometry", xfrPointJson); result.AddJSONObject("transformer", xfrInfo); IJSONArray servicePoints = new JSONArrayClass(); // Get additional service point info if any returned from trace if (lvsGlobalIDs != null && lvsGlobalIDs.Count > 0) { // Query devices to get more details about service points string lvsGlobalIDList = ""; for (int i = 0; i < lvsGlobalIDs.Count; i++) { lvsGlobalIDList += (i == 0) ? "" : ","; lvsGlobalIDList += "'" + lvsGlobalIDs.Element[i] + "'"; } string lvsWhereClause = "GLOBALID IN (" + lvsGlobalIDList + ")"; IStringArray lvsOutFields = new StrArrayClass(); lvsOutFields.Add("GLOBALID"); lvsOutFields.Add("ASSETTYPE"); lvsOutFields.Add("ASSETGROUP"); lvsOutFields.Add("ASSETID"); lvsOutFields.Add("SHAPE"); IPropertySetArray lvsQryResults = QueryDevices(lvsWhereClause, lvsOutFields); // Get customer details if (lvsQryResults != null && lvsQryResults.Count > 0) { for (int i = 0; i < lvsQryResults.Count; i++) { IPropertySet lvs = lvsQryResults.Element[i]; JSONObject servicePoint = new JSONObject(); servicePoint.AddString("GLOBALID", (string)lvs.GetProperty("GLOBALID")); servicePoint.AddString("ASSETID", (string)lvs.GetProperty("ASSETID")); servicePoint.AddLong("ASSETGROUP", (int)lvs.GetProperty("ASSETGROUP")); servicePoint.AddLong("ASSETTYPE", (short)lvs.GetProperty("ASSETTYPE")); IGeometry lvsPoint = (IGeometry)lvs.GetProperty("SHAPE"); IJSONObject lvsPointJson = new JSONObject(); geoSerializer.QueryJSONGeometry(lvsPoint, false, lvsPointJson); servicePoint.AddJSONObject("geometry", lvsPointJson); JSONObject customerInfo = GetCustomerInfoJSON(); servicePoint.AddJSONObject("customerInfo", customerInfo); servicePoints.AddJSONObject(servicePoint); } } } result.AddJSONArray("servicePoints", servicePoints); } catch (Exception e) { logger.LogMessage(ServerLogger.msgType.debug, soe_name + " getCustomers", 500, "Exception " + e.GetType().Name + " " + e.Message + " " + e.StackTrace); JSONObject error = soeUtil.CreateErrorJSON(500, "Unable to complete operation", e.HResult, e.Message); return(Encoding.UTF8.GetBytes(error.ToJSONString(null))); } return(Encoding.UTF8.GetBytes(result.ToJSONString(null))); }