// Note: This overload is obsolete
        public Task <ProcessOrderResponse> ProcessOrderDetails(DetailsResponse detailsResponse, string orderId, Guid contactId, string marketId, string cartName)
        {
            var lastTransaction = GetLastTransaction(detailsResponse);
            var result          = ProcessOrder(detailsResponse, lastTransaction, orderId, contactId, marketId, cartName);

            return(Task.FromResult(result));
        }
Ejemplo n.º 2
0
        public Site(IShortener shortener)
        {
            StaticConfiguration.DisableCaches      = true;
            StaticConfiguration.DisableErrorTraces = false;

            Get["/"] = _ => View["index"];

            Get["/api/expand-url"] = _ =>
            {
                if (!Request.Query.Code.HasValue || String.IsNullOrEmpty(Request.Query.Code))
                {
                    return(HttpStatusCode.BadRequest);
                }

                String code = Request.Query.Code;

                if (code.Contains("/"))
                {
                    code = code.Split('/').Last();
                }
                Console.WriteLine(code);
                var info = shortener.Expand(code);
                var res  = new DetailsResponse();
                if (String.IsNullOrEmpty(info.Item1))
                {
                    res.Error = "No url found";
                }
                else
                {
                    res.Url    = info.Item1;
                    res.Clicks = info.Item2;
                }

                return(Response.AsJson(res));
            };

            Get["/{shortCode}"] = (arg) =>
            {
                String realUrl = shortener.Expand(arg.shortCode).Item1;
                if (String.IsNullOrEmpty(realUrl))
                {
                    return(HttpStatusCode.NotFound);
                }

                return(Response.AsRedirect(realUrl));
            };

            Post["/api/shorten-url"] = _ =>
            {
                if (!Request.Form.Url.HasValue || String.IsNullOrEmpty(Request.Form.Url))
                {
                    return(HttpStatusCode.BadRequest);
                }

                var url = HttpUtility.HtmlEncode(Request.Form.Url);
                return(String.Concat(SiteUrl, shortener.Shorten(url)));
            };
        }
Ejemplo n.º 3
0
 private static void EnsureBillingAddress(IPayment payment, ICart cart, DetailsResponse details)
 {
     if (payment.BillingAddress == null)
     {
         payment.BillingAddress =
             AddressHelper.UserDetailsAndShippingDetailsToOrderAddress(details.UserDetails,
                                                                       details.ShippingDetails, cart);
     }
 }
Ejemplo n.º 4
0
		public Site (IShortener shortener)
		{
			StaticConfiguration.DisableCaches = true;
			StaticConfiguration.DisableErrorTraces = false;
			
			Get["/"] = _ =>  View["index"];
			
			Get["/api/expand-url"] = _ => 
			{
				if(!Request.Query.Code.HasValue || String.IsNullOrEmpty(Request.Query.Code))
					return HttpStatusCode.BadRequest;
				
				String code = Request.Query.Code;
				
				if(code.Contains("/"))
				{
					code = code.Split('/').Last();
				}
				Console.WriteLine(code);
				var info = shortener.Expand(code);
				var res = new DetailsResponse();
				if(String.IsNullOrEmpty(info.Item1))
				{
					res.Error = "No url found";
				}
				else
				{
					res.Url = info.Item1;
					res.Clicks = info.Item2;
				}
				
				return Response.AsJson(res);
			};
			
			Get["/{shortCode}"] = (arg) =>  
			{
				String realUrl = shortener.Expand(arg.shortCode).Item1;
				if(String.IsNullOrEmpty(realUrl))
					return HttpStatusCode.NotFound;
				
				return Response.AsRedirect(realUrl);
			};
			
			Post["/api/shorten-url"] = _ => 
			{ 
				if(!Request.Form.Url.HasValue || String.IsNullOrEmpty(Request.Form.Url))
					return HttpStatusCode.BadRequest;
				
				var url = HttpUtility.HtmlEncode(Request.Form.Url);
				return String.Concat(SiteUrl, shortener.Shorten(url));
			};
			
		}
Ejemplo n.º 5
0
        async Task HandleItemTapped(LocationSearchPageViewModel.SearchResult searchResult)
        {
            if (!canTap)
            {
                return;
            }
            canTap = false;

            string sessionToken = SearchBar.SessionToken;

            SearchBar.SessionToken = Guid.NewGuid().ToString();

            try
            {
                DetailsResponse response = await DetailsApi.GetPlaceGeometry(
                    searchResult.Id, SearchBar.ApiKey, sessionToken);

                if (response == null)
                {
                    await this.GetPageParent()?.DisplayAlert("No result", "Something went wrong.", "Ok");

                    return;
                }

                GeoCoordinates location = new GeoCoordinates(
                    response.Result.Geometry.Location.Latitude,
                    response.Result.Geometry.Location.Longitude);

                viewModel.SelectLocation(searchResult.Name, location);
            }
            catch (Exception ex)
            {
                // TODO Exceptions we can handle more neatly:
                // HttpRequestException
                // GoogleApiKeyException

                App.Current.ErrorHandler.HandleError(ex);
                return;
            }
            finally
            {
                canTap = true;
            }
        }
Ejemplo n.º 6
0
        private static void EnsureShipping(ICart cart, DetailsResponse details)
        {
            var shipment = cart.GetFirstShipment();

            if (shipment.ShippingMethodId == default(Guid))
            {
                if (details?.ShippingDetails?.ShippingMethodId != null)
                {
                    shipment.ShippingMethodId = new Guid(details.ShippingDetails.ShippingMethodId);
                }
            }

            if (shipment.ShippingAddress == null)
            {
                shipment.ShippingAddress =
                    AddressHelper.UserDetailsAndShippingDetailsToOrderAddress(details?.UserDetails,
                                                                              details?.ShippingDetails, cart);
            }
        }
Ejemplo n.º 7
0
        public static void EnsureExpressPaymentAndShipping(ICart cart, IPayment payment, DetailsResponse orderDetails)
        {
            if (cart.GetFirstShipment().ShippingMethodId == default(Guid) ||
                cart.GetFirstShipment().ShippingAddress == null ||
                payment?.BillingAddress == null)
            {
                EnsureShipping(cart, orderDetails);
                EnsureBillingAddress(payment, cart, orderDetails);

                _orderRepository.Service.Save(cart);
            }
        }
        public ProcessOrderResponse ProcessOrderDetails(DetailsResponse detailsResponse, string orderId, ICart cart)
        {
            var lastTransaction = GetLastTransaction(detailsResponse);

            return(ProcessOrder(detailsResponse, lastTransaction, orderId, cart));
        }
 private IVippsPaymentDetails GetLastTransaction(DetailsResponse detailsResponse)
 {
     return(detailsResponse.TransactionLogHistory.OrderByDescending(x => x.TimeStamp)
            .FirstOrDefault());
 }
Ejemplo n.º 10
0
        //метод для обращения к API
        async void GetInfoAsync()
        {
            HttpClient client           = new HttpClient();
            HttpClient client_translate = new HttpClient();

            client.DefaultRequestHeaders.Add("user-key", apiKey);
            client_translate.DefaultRequestHeaders.Add("X-RapidAPI-Host", "microsoft-azure-translation-v1.p.rapidapi.com");
            client_translate.DefaultRequestHeaders.Add("X-RapidAPI-Key", "44aa189e74mshaa49add707f3528p1d96acjsn216ddd330fe5");
            try
            {
                Android.Support.V7.App.AlertDialog dialog =
                    new EDMTDialogBuilder().SetContext(this).SetMessage("Please wait..").Build();
                if (!dialog.IsShowing)
                {
                    dialog.Show();
                }
                //обращение к API
                HttpResponseMessage response = null;
                try
                {
                    response = await client.GetAsync(BasePath + "/restaurant?res_id=" + id);
                }
                catch (HttpRequestException)
                {
                    return;
                }
                //десериализация
                details_response = JsonConvert.DeserializeObject <DetailsResponse>(await response.Content.ReadAsStringAsync());
                var bitmap = GetBitMapFromURL(details_response.featured_image);
                image.SetImageBitmap(bitmap);

                response = null;
                //обращение к API переводчика
                try
                {
                    response = await client_translate.GetAsync("https://microsoft-azure-translation-v1.p.rapidapi.com/" +
                                                               "translate?from=en&to=ru&text=" + details_response.cuisines);
                }
                catch (HttpRequestException)
                {
                    return;
                }
                try
                {
                    //обработка ответа
                    details_response.cuisines = await response.Content.ReadAsStringAsync();

                    details_response.cuisines = details_response.cuisines.Split('>')[1];
                    details_response.cuisines = details_response.cuisines.Split('<')[0];
                }
                catch (IndexOutOfRangeException)
                {
                    return;
                }

                //формирование строки вывода

                string info = $"{details_response.name}\nРейтинг : {details_response.user_rating.aggregate_rating} ; Всего отзывов" +
                              $" : {details_response.user_rating.votes}" +
                              $"\nКухня : {details_response.cuisines}\nАдрес : {details_response.location.address}\nСредний чек :" +
                              $" {details_response.average_cost_for_two} {details_response.currency}\nБронь стола : ";
                if (details_response.has_table_booking == "0")
                {
                    info += $"нет";
                }
                else
                {
                    info += $"есть";
                }
                if (details_response.has_online_delivery == "0")
                {
                    info += $"\nОнлайн доставка : нет";
                }
                else
                {
                    info += $"\nОнлайн доставка : есть";
                }
                if (details_response.phone_numbers != "")
                {
                    info += $"\nНомер телефона : {details_response.phone_numbers}";
                }
                else
                {
                    info += $"\nНомер телефона : нет";
                }
                text.SetText(info, TextView.BufferType.Normal);
                btn_back.Visibility = ViewStates.Visible;
                btn_menu.Visibility = ViewStates.Visible;
                uri = details_response.menu_url;
                if (dialog.IsShowing)
                {
                    dialog.Dismiss();
                }
            }
            catch (Exception ex)
            {
            }
        }
Ejemplo n.º 11
0
        public async Task <ProcessOrderResponse> ProcessOrderDetails(DetailsResponse detailsResponse, string orderId, Guid contactId, string marketId, string cartName)
        {
            var lastTransaction = detailsResponse.TransactionLogHistory.OrderByDescending(x => x.TimeStamp).FirstOrDefault();

            return(await ProcessOrder(detailsResponse, lastTransaction, orderId, contactId, marketId, cartName));
        }