/// <summary> /// convenience function, reads cimdata file, calls getGroupStatus, returns result /// </summary> /// <param name="path">file name</param> /// <param name="mrid">der group unique identifier</param> /// <param name="q">apparent or real</param> /// <returns></returns> public static CIMData.DERStatus getDERGroupStatus(String path, String mrid, quantity q, ref String SOAPMessage, ref String SoapResponse) { CIM c = new CIM(); c._data = DERMSInterface.CIMData.read(path); CIMData.DERStatus status = c.getDERGroupStatus(mrid, q); SOAPMessage = c.LastMessageSent; SoapResponse = c.LastMessageReceived; return(status); }
/// <summary> /// convenience function reads cimdata file, calls dispatch /// </summary> /// <param name="path"> filename</param> /// <param name="DERGroupName">DER group name</param> /// <param name="q">apparent or real</param> /// <param name="isOverride">send my own value, rather than pulling from config</param> /// <param name="overrideValue">value to send</param> /// <returns></returns> public static int DispatchDERGroup(String path, String DERGroupName, quantity q, ref String SOAPMessage, ref String SoapResponse, Boolean isOverride = false, double overrideValue = 0.0) { CIM c = new CIM(); c._data = DERMSInterface.CIMData.read(path); int rc = c.DispatchDERGroup(DERGroupName, q, isOverride, overrideValue); SOAPMessage = c.LastMessageSent; SoapResponse = c.LastMessageReceived; return(rc); }
public List <string> Qnty(int id) { var qntComp = vc.quantities.Where(p => p.qntId == id).FirstOrDefault(); List <string> error = new List <string>(); qntComp = new quantity(); if (qntComp.quantity1 <= qntComp.qntCtrl) { error.Add("Please update the Vending Machine"); } return(error); }
protected void Page_Load(object sender, EventArgs e) { VendingBL vm = new VendingBL(); quantity qnt = new quantity(); int id = qnt.qntId; List <string> invalid = vm.Qnty(id); if (invalid.Count == 0) { lblLow.Text = ""; } else { lblLow.Text = invalid[0]; } }
public static int dispatchDERGroup( [MarshalAs(UnmanagedType.LPTStr)] String path, [MarshalAs(UnmanagedType.LPTStr)] String mrid, [MarshalAs(UnmanagedType.LPTStr)] String q, [MarshalAs(UnmanagedType.LPTStr)] ref String xml, [MarshalAs(UnmanagedType.Bool)] bool isOverride, [MarshalAs(UnmanagedType.R8)] double overrideValue) { DERResult result = new DERResult(); try { quantity qtype = (quantity)Enum.Parse(typeof(DERMSInterface.quantity), q); Console.WriteLine("DER file : " + path); Console.WriteLine("DERGroupName : " + mrid); Console.WriteLine("Override : " + isOverride); Console.WriteLine("Override value : " + overrideValue); String SOAPMessage = null; String SOAPResponse = null; int rvalue = CIM.DispatchDERGroup(path, mrid, qtype, ref SOAPMessage, ref SOAPResponse, isOverride, overrideValue); result.SOAPMessage = SOAPMessage; result.SOAPResponse = SOAPResponse; result.Returncode = 0; } catch (Exception e) { result.Returncode = 1; result.ErrorMessage = e.ToString(); Console.WriteLine("Exception: {0}", e); } XmlSerializer ser = new XmlSerializer(typeof(DERResult)); StringWriter writer = new StringWriter(); ser.Serialize(writer, result); xml = writer.ToString(); return(result.Returncode); }
public static int getDERGroupStatus( [MarshalAs(UnmanagedType.LPTStr)] String path, [MarshalAs(UnmanagedType.LPTStr)] String mrid, [MarshalAs(UnmanagedType.LPTStr)] String q, [MarshalAs(UnmanagedType.LPTStr)] ref String xml) { DERResult result = new DERResult(); List <String> nameList = new List <string>(); try { quantity qtype = (quantity)Enum.Parse(typeof(DERMSInterface.quantity), q); Console.WriteLine("DER file : " + path); Console.WriteLine("DERGroupName : " + mrid); String SOAPMessage = null; String SOAPResponse = null; CIMData.DERStatus status = CIM.getDERGroupStatus(path, mrid, qtype, ref SOAPMessage, ref SOAPResponse); int rvalue = CIM.CreateDERGroup(path, mrid, nameList.ToArray <String>(), ref SOAPMessage, ref SOAPResponse); result.Status = status; result.SOAPMessage = SOAPMessage; result.SOAPResponse = SOAPResponse; result.Returncode = 0; } catch (Exception e) { result.Returncode = 1; result.ErrorMessage = e.ToString(); Console.WriteLine("DERConfigureException: {0}", e); } XmlSerializer ser = new XmlSerializer(typeof(DERResult)); StringWriter writer = new StringWriter(); ser.Serialize(writer, result); xml = writer.ToString(); return(result.Returncode); }
public VendingBL() { vc = new VendingMachineContext(); v = new vending(); q = new quantity(); }
/// <summary> /// send Get DER Group status SOAP message, get the status of the der /// </summary> /// <param name="mrid">unique identifier of DER group to be retrieved</param> /// <param name="q">real power or reactive power</param> /// <returns></returns> public CIMData.DERStatus getDERGroupStatus(String mrid, quantity q) { // initialize the soap call CIMGetDERGroupStatuses.GetDERGroupStatuses_Port client; CIMData.header header = _data.GetDERStatusHeader; if (!hasData(header.EndPoint)) { throw new DERConfigureException("End Point required"); } client = new CIMGetDERGroupStatuses.GetDERGroupStatuses_PortClient("GetDERGroupStatuses_Port", header.EndPoint); // initialize the vars used for the SOAP call CIMGetDERGroupStatuses.GetDERGroupStatusesRequest req = new CIMGetDERGroupStatuses.GetDERGroupStatusesRequest(); CIMGetDERGroupStatuses.DERGroupStatusesPayloadType payload = new CIMGetDERGroupStatuses.DERGroupStatusesPayloadType(); CIMGetDERGroupStatuses.HeaderType to = new CIMGetDERGroupStatuses.HeaderType(); // build header CIMGetDERGroupStatuses.HeaderTypeVerb v = new CIMGetDERGroupStatuses.HeaderTypeVerb(); if (Enum.TryParse(header.Verb, out v)) { to.Verb = v; } else { to.Verb = CIMGetDERGroupStatuses.HeaderTypeVerb.get; } to.Noun = header.Noun; to.ReplyAddress = header.ReplyAddress; to.Revision = header.Revision; to.Source = header.Source; to.AckRequired = header.AckRequired; if (to.AckRequired == true) { to.AckRequiredSpecified = true; } to.Comment = header.Comment; to.Context = header.Context; if (hasData(header.UserOrganization) || hasData(header.UserID)) { to.User = new CIMGetDERGroupStatuses.UserType(); to.User.UserID = (hasData(header.UserID)) ? header.UserID : "epri"; // required to.User.Organization = header.UserOrganization; // optional } // load up the payload req.GetDERGroupStatusesRequestMessage.Header = to; req.GetDERGroupStatusesRequestMessage.Request = new CIMGetDERGroupStatuses.GetDERGroupStatusesRequestType(); req.GetDERGroupStatusesRequestMessage.Request.GetDERGroupStatuses = new CIMGetDERGroupStatuses.DERGroupStatus[1]; req.GetDERGroupStatusesRequestMessage.Request.GetDERGroupStatuses[0] = new CIMGetDERGroupStatuses.DERGroupStatus(); req.GetDERGroupStatusesRequestMessage.Request.GetDERGroupStatuses[0].mRID = mrid; // log outgoing, call soap, log return message _lastMessageSent = logMessage <CIMGetDERGroupStatuses.GetDERGroupStatusesRequest>(req); CIMGetDERGroupStatuses.GetDERGroupStatusesResponse reply = client.GetDERGroupStatuses(req); _lastMessageReceived = logMessage <CIMGetDERGroupStatuses.GetDERGroupStatusesResponse>(reply); CIMGetDERGroupStatuses.DERGroupStatus1[] statuses = reply.GetDERGroupStatusesResponseMessage.Payload.DERGroupStatuses; if (statuses.Length > 1) { throw new DERResponseException("GETDERGroupStatus returned multiple DER Groups."); } else if (statuses.Length < 1) { throw new DERResponseException("GETDERGroupStatus returned NO DER Groups."); } else { // we're loading up our own object, DERStatus CIMData.DERStatus status = new CIMData.DERStatus(); status.Mrid = statuses[0].mRID; CIMGetDERGroupStatuses.EndDeviceGroup1 edg = statuses[0].EndDeviceGroup; if (edg.otherCapabilities == null) { return(status); } // todo : missing values in here, problem with wsdl vs object CIMGetDERGroupStatuses.otherCapability cap = edg.otherCapabilities; status.PresentValue = edg.Item.value; return(status); } }
/// <summary> /// executes a create DERdispatch soap command /// </summary> /// <param name="DERGroupName">DERGroup name</param> /// <param name="q">realPower or reactivePower</param> /// <param name="isOverride">send overrideValue instead of value from cimdata</param> /// <param name="overrideValue">value to be used for dispatch</param> /// <returns></returns> public int DispatchDERGroup(String MRID, quantity q, Boolean isOverride = false, double overrideValue = 0.0) { CIMDERGroupDispatches.DERGroupDispatches_PortClient client; CIMData.header header = _data.DispatchDERHeader; if (!hasData(header.EndPoint)) { throw new DERConfigureException("End Point required"); } // initialize SOAP server client = new CIMDERGroupDispatches.DERGroupDispatches_PortClient("DERGroupDispatches_Port", header.EndPoint); // intiailize service arguments CIMDERGroupDispatches.HeaderType to = new CIMDERGroupDispatches.HeaderType(); CIMDERGroupDispatches.DERGroupDispatchesPayloadType payload = new CIMDERGroupDispatches.DERGroupDispatchesPayloadType(); CIMDERGroupDispatches.DERGroupDispatchesRequestMessageType req = new CIMDERGroupDispatches.DERGroupDispatchesRequestMessageType(); req.Payload = payload; req.Header = to; // set service header arguments CIMDERGroupDispatches.HeaderTypeVerb v = new CIMDERGroupDispatches.HeaderTypeVerb(); if (header.Verb != null && Enum.TryParse(header.Verb, out v)) { to.Verb = v; } else { to.Verb = CIMDERGroupDispatches.HeaderTypeVerb.create; } to.Noun = header.Noun; to.ReplyAddress = header.ReplyAddress; to.Revision = header.Revision; to.Source = header.Source; to.AckRequired = header.AckRequired; if (to.AckRequired == true) { to.AckRequiredSpecified = true; } to.Comment = header.Comment; to.Context = header.Context; if (hasData(header.UserOrganization) || hasData(header.UserID)) { to.User = new CIMDERGroupDispatches.UserType(); to.User.UserID = (hasData(header.UserID)) ? header.UserID : "epri"; // required to.User.Organization = header.UserOrganization; // optional } // load the data for the SOAP call CIMData.DERGroup group = _data.Groups.Find(x => x.Mrid.Equals(MRID)); if (group != null) { payload.DERGroupDispatches = new CIMDERGroupDispatches.DERGroupDispatch[1]; payload.DERGroupDispatches[0] = new CIMDERGroupDispatches.DERGroupDispatch(); payload.DERGroupDispatches[0].DERGroup = new CIMDERGroupDispatches.DERGroup(); payload.DERGroupDispatches[0].DERGroup.mRID = group.Mrid; payload.DERGroupDispatches[0].DERGroup.name = group.GroupName; // TODO : Docs say mrid, but name is required in wsdl. Ask Gerry. payload.DERGroupDispatches[0].RequestedCapability = new CIMDERGroupDispatches.RequestedCapability(); payload.DERGroupDispatches[0].RequestedCapability.capabilityType = (CIMDERGroupDispatches.capabilityType)Enum.Parse(typeof(CIMDERGroupDispatches.capabilityType), q.ToString()); // load with value passed, or reactive value, or real value if (isOverride == true) { payload.DERGroupDispatches[0].RequestedCapability.value = (float)overrideValue; } else if (q.Equals(quantity.ApparentPower)) { payload.DERGroupDispatches[0].RequestedCapability.value = (float)group.getVarCapacity(); } else { payload.DERGroupDispatches[0].RequestedCapability.value = (float)group.getWattCapacity(); } // set the multiplier and units if (q.Equals(quantity.RealPower)) { payload.DERGroupDispatches[0].RequestedCapability.capabilityMultiplier = CIMDERGroupDispatches.UnitMultiplier.k; payload.DERGroupDispatches[0].RequestedCapability.capabilityUnits = "W"; } else { payload.DERGroupDispatches[0].RequestedCapability.capabilityMultiplier = CIMDERGroupDispatches.UnitMultiplier.k; payload.DERGroupDispatches[0].RequestedCapability.capabilityUnits = "VAr"; } // log message to be sent, send message, log result _lastMessageSent = logMessage <DERMSInterface.CIMDERGroupDispatches.DERGroupDispatchesRequestMessageType>(req); CIMDERGroupDispatches.DERGroupDispatchesResponseMessageType reply = client.CreateDERGroupDispatches(req); _lastMessageReceived = logMessage <CIMDERGroupDispatches.DERGroupDispatchesResponseMessageType>(reply); if (reply.Reply.Result.CompareTo(CIMDERGroupDispatches.ReplyTypeResult.OK) == 0) { return(0); } else { return(1); } } else { throw new DERConfigureException("DERGroup MRID " + MRID + " not found in configuration file"); } }
/// <summary> /// Initializes a new instance of the <see cref="T:BikeDistributor.BikeDiscounts"/> class. /// Adds a single discount object to the dictionary. /// </summary> /// <param name="quantity">Quantity.</param> /// <param name="di">Discount object</param> public BikeDiscounts(int quantity, DiscountInfo di) => Add(quantity, di);