Esempio n. 1
0
        //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);
        }
Esempio n. 2
0
        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)
                {
                }
            }
        }
Esempio n. 3
0
        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));
        }