//private USSD.Entities.SubscriptionService GetSubscriptionService(int subscriptionServiceId) //{ // USSD.Entities.SubscriptionService model = null; // HttpClient client = new HttpClient(); // client.BaseAddress = new Uri(System.Configuration.ConfigurationManager.AppSettings["MutuelleSmartAPI"].ToString()); // client.DefaultRequestHeaders.Accept.Clear(); // client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(System.Configuration.ConfigurationManager.AppSettings["Content-Type"].ToString())); // using (client) // { // var URL = new Uri(client.BaseAddress + "/subscriptions/services/" + subscriptionServiceId); // var response = client.GetAsync(URL.ToString()).Result; // if (response.StatusCode == System.Net.HttpStatusCode.OK) // { // var result = response.Content.ReadAsStringAsync().Result; // try // { // model = JsonConvert.DeserializeObject<USSD.Entities.SubscriptionServices>(result).subscriptionService; // //update oneview complaint status // } // catch { } // } // } // return model; //} public USSD.Entities.Subscription GetSubscription(string mobileNumber, int subscriptionServiceId) { var model = new USSD.Entities.Subscription(); HttpClient client = new HttpClient(); client.BaseAddress = new Uri(System.Configuration.ConfigurationManager.AppSettings["MutuelleSmartAPI"].ToString()); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(System.Configuration.ConfigurationManager.AppSettings["Content-Type"].ToString())); using (client) { var URL = new Uri(client.BaseAddress, "subscriptions/services/" + subscriptionServiceId + "/cellnumber/" + mobileNumber); var response = client.GetAsync(URL.ToString()).Result; if (response.StatusCode == System.Net.HttpStatusCode.OK) { var result = response.Content.ReadAsStringAsync().Result; try { model = JsonConvert.DeserializeObject <USSD.Entities.Subscriptions>(result).subscription; //update oneview complaint status } catch { } } } return(model); }
public void UpdateSubscription(USSD.Entities.Subscription model, int statusId) { model.status_id = statusId; var client = ussdcommon.utility.CommonUtility.GetHttpConnection("MutuelleSmartAPI"); var json = JsonConvert.SerializeObject(model); var content = new StringContent(json.ToString(), Encoding.UTF8, "application/json"); var URL = new Uri(client.BaseAddress, "subscriptions"); using (client) { try { var result = client.PutAsync(URL, content).Result; if (result.StatusCode == HttpStatusCode.OK) { // log.info( "subscribed successfully"); } } catch (Exception exp) { } } }
public Tuple <string, int> Subscribe(string mobileNumber, int subscriptionServiceId, bool checkAlreadySubscribed, out bool requestSubmitted, int?mutuelleId) { string data = null; requestSubmitted = false; if (checkAlreadySubscribed) { if (IsSubscribedToService(mobileNumber, subscriptionServiceId)) { return(new Tuple <string, int>("Dear user, you are already subscribed to this service.", -1)); } } if (String.IsNullOrEmpty(data)) { USSD.Entities.SubscriptionService service = GetSubscriptionService(subscriptionServiceId); USSD.Entities.Subscription model = new USSD.Entities.Subscription { //createdDate = DateTime.Now.ToString("yyyy-MM-dd"), first_billing_date = DateTime.Now.ToString("yyyy-MM-dd"), next_billing_date = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"), mobile_number = mobileNumber, status_id = 1, //(int)Statuses.Pending, subscription_service_id = service.subscription_service_id == 0 ? 1 : service.subscription_service_id, mutuel_id = 1, //mutuelleId??0, network_id = 1, ref_number = mobileNumber, }; var originalSubscription = GetSubscription(mobileNumber, subscriptionServiceId); if (service != null && service.subscription_service_id > 0 && !string.IsNullOrEmpty(service.keyword) && originalSubscription == null) { var client = ussdcommon.utility.CommonUtility.GetHttpConnection("MutuelleSmartAPI"); var json = JsonConvert.SerializeObject(model); var content = new StringContent(json.ToString(), Encoding.UTF8, "application/json"); var URL = new Uri(client.BaseAddress, "subscriptions"); using (client) { try { var result = client.PostAsync(URL, content).Result; if (result.StatusCode == HttpStatusCode.OK) { var tempResult = result.Content.ReadAsStringAsync().Result; try { var entity = JsonConvert.DeserializeObject <USSD.Entities.SubscriptionResult>(tempResult); //update oneview complaint status if (entity != null && entity.status != 3) { return(new Tuple <string, int>(entity.message, entity.createdSubscriptionId)); } } catch { } } } catch (Exception exp) { } } if (String.IsNullOrEmpty(service.display_name)) { data = string.Format("Thank you, you will now be subscribed to {0}. A confirmation SMS will be sent to you when successful.", service.display_name); } else { data = string.Format("Thank you, you will now be subscribed to {0}. A confirmation SMS will be sent to you when successful.", service.display_name); } requestSubmitted = true; } else if (originalSubscription != null) { UpdateSubscription(originalSubscription, subscriptionServiceId); return(new Tuple <string, int>("Re-Subscribed successfully", originalSubscription.subscription_id)); } else { data = "Service does not exist or subscribe keyword not setup."; } } return(new Tuple <string, int>(data, -1)); }