/// <summary> /// Get the coupon list /// </summary> /// <param name="req">Request parameters needed to do the request to Viking Spots</param> /// <param name="callback">Delegate that handles the callback</param> public GetPOSCouponResult GetCoupon(GetPOSCouponRequest req, ref HttpStatusCode status) { // This is a GET RestRequest request = new RestRequest(string.Format("poscoupon/?{0}", req.ToQueryString()), Method.GET); IRestResponse response = apiClient.Get(request); status = response.StatusCode; // Check that we received a status we expect if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.BadRequest || response.StatusCode == HttpStatusCode.InternalServerError || response.StatusCode == HttpStatusCode.PaymentRequired) { return JsonConvert.DeserializeObject<GetPOSCouponResult>(response.Content); } return null; }
/// <summary> /// Do API request GetCoupon and send response back to the client /// </summary> /// <param name="doc">request XML</param> /// <param name="client">client that send the request</param> /// <param name="message">The message containing the request</param> private void DealByPAN(XmlDocument doc) { // Extract parameters from request int merchant_id = Convert.ToInt32(doc.DocumentElement.GetAttribute("mid")); string card_pan = doc.DocumentElement.GetAttribute("pan"); int terminal_id = Convert.ToInt32(doc.DocumentElement.GetAttribute("tid")); GetPOSCouponRequest request = new GetPOSCouponRequest(merchant_id, card_pan, terminal_id); HttpStatusCode code = HttpStatusCode.NotFound; GetPOSCouponResult response = api.GetCoupon(request, ref code); if (response != null) { BuildAndSendResponse(code, response, (writer) => { /* * Expand the response with custom stuff for this kind of request * * Example: * * <rsp code="0" seq="" dsp="" prt=""> * <lst id="deals"> * <row> * <fld id="dealId" val="" /> * <fld id="name" val="" /> * <fld id="user" val="" /> * </row> * </lst> *</rsp> */ //writer.WriteAttributeString("dsp", "Coupon list has been retrieved"); //writer.WriteAttributeString("prt", "Please choose the correct one"); writer.WriteStartElement("lst"); writer.WriteAttributeString("id", "deals"); foreach (POSCoupon coupon in response.response.coupons) { writer.WriteStartElement("row"); writer.WriteStartElement("fld"); writer.WriteAttributeString("id", "dealId"); writer.WriteAttributeString("val", coupon.id.ToString()); writer.WriteEndElement(); // fld end element writer.WriteStartElement("fld"); writer.WriteAttributeString("id", "name"); writer.WriteAttributeString("val", coupon.name.Substring(0, 16)); writer.WriteEndElement(); // fld end element writer.WriteStartElement("fld"); writer.WriteAttributeString("id", "user"); writer.WriteAttributeString("val", coupon.user); writer.WriteEndElement(); // fld end element writer.WriteEndElement(); // row end element } writer.WriteEndElement(); // lst end element }); } }