Beispiel #1
0
        public void LocalForIP()
        {
            expectedHash["locale"] = "nl-NL";
            ps.GetResponse("https://secure.zaypay.com/82.94.123.123/pay/111/locale_for_ip?key=thekey").Returns(expectedHash);


            LocalForIPResponse actualResponse = new LocalForIPResponse(expectedHash);

            CollectionAssert.AreEquivalent(actualResponse.RESPONSE, expectedHash);
            //Assert.AreEqual("nl-NL", ps.LocaleForIP("82.94.123.123"));
        }
Beispiel #2
0
        public ActionResult Create(int productId = 0)
        {
            //Product product = db.Products.First(m => m.ID == productId);
            Product product = db.Products.Find(productId);

            if (product != null)
            {
                try
                {
                    PriceSetting ps = new PriceSetting(product.PriceSettingId);

                    //check if locale is supported
                    string   userIp  = GetUserIP();
                    string   locale  = "";
                    string[] locales = "en-".Split('-');

                    ListLocalesResponse localesList = ps.ListLocales();

                    //if we have correct user ip
                    if (!String.IsNullOrWhiteSpace(userIp))
                    {
                        LocalForIPResponse localeResponse = ps.LocaleForIP(userIp);
                        locale = localeResponse.Locale();

                        ps.LOCALE = locale;
                        locales   = locale.Split('-');

                        if (localesList.CountrySupported(locales[1]))
                        {
                            List <Hashtable> paymentMethods = ps.ListPaymentMethods().PaymentMethods();
                            ViewData.Add("paymentMethods", paymentMethods);
                        }
                    }
                    else
                    {
                        ViewData["ipIsNull"] = true;
                    }

                    var countriesHash = (List <Hashtable>)localesList.Countries();
                    var languagesHash = (List <Hashtable>)localesList.Languages();

                    List <SelectListItem> countriesList = GetCountries(ref countriesHash);
                    countriesList = countriesList.OrderBy(x => x.Text).ToList();

                    List <SelectListItem> languagesList = GetLanguages(ref languagesHash);
                    languagesList = languagesList.OrderBy(x => x.Text).ToList();

                    ViewData.Add("countries", new SelectList(countriesList, "Value", "Text", locales[1]));
                    ViewData.Add("languages", new SelectList(languagesList, "Value", "Text", locales[0]));

                    if (TempData["error"] != null)
                    {
                        ViewData["error"] = TempData["error"];
                    }

                    return(View(product));
                }
                catch (Exception e)
                {
                    string mesg = GetExceptionMessage(e);

                    if (mesg == "")
                    {
                        throw e;
                    }
                    else
                    {
                        LogEntry(e.Message);
                        ViewData["error"] = mesg;
                        return(View("../products/index", db.Products.ToList()));
                    }
                }
            }
            else
            {
                throw new HttpException(404, "Sorry, Resource not available");
            }
        }