Example #1
0
        public GetBeerResponse GetBeer(GetBeerRequest getBeerRequest)
        {
            var response = new GetBeerResponse()
            {
                BaseResponse = CreateBaseResponse(getBeerRequest.BaseRequest)
            };

            response.BaseResponse = VerifyBaseRequest(getBeerRequest.BaseRequest, response.BaseResponse);

            if (response.BaseResponse.ResponseStatus == ResponseStatus.Failure)
            {
                response.Beer = null;
                return(response);
            }

            var beer = _beerRepository.GetBeer(getBeerRequest.Id);

            response.Beer = beer;

            return(response);
        }
Example #2
0
        private async void ReadCallback(IAsyncResult asynchronousResult)
        {
            try
            {
                HttpWebRequest  request  = (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    var     beerRequest = new GetBeerRequest();
                    JObject o           = JObject.Parse(reader.ReadLine());
                    JArray  content     = o.GetValue("content") as JArray;

                    foreach (var id in content)
                    {
                        beerRequest.BeerIDs.Add(id.ToString());
                    }

                    string beersJson = await Post(ResourceLoader.GetString("BeerEndpoint"), beerRequest.ToString(), App.User.Cookie);

                    await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                    {
                        o       = JObject.Parse(beersJson);
                        var obj = o.GetValue("content") as JObject;
                        content = obj.GetValue("BrewLib.BeerModel") as JArray;

                        foreach (var beerToken in content)
                        {
                            var beer         = new Beer();
                            beer.Guid        = beerToken["guid"].ToString();
                            beer.Description = beerToken["description"].ToString();
                            beer.StyleID     = beerToken["style_id"].ToString();
                            beer.Available   = beerToken["avail"].ToString() != "0";
                            beer.Name        = beerToken["name"].ToString();
                            double abv       = 0;
                            double.TryParse(beerToken["abv"].ToString(), out abv);
                            beer.AlcoholByVolume  = abv;
                            beer.BreweryName      = beerToken["brewery_name"].ToString();
                            beer.InFridge         = beerToken["in_fridge"].ToString() != "0";
                            beer.IsBeerOfTheMonth = beerToken["is_bom"].ToString() != "0";

                            DateTime time;
                            if (DateTime.TryParse(beerToken["added_on"].ToString(), out time))
                            {
                                beer.AddedOn = time;
                            }
                            if (DateTime.TryParse(beerToken["updated_on"].ToString(), out time))
                            {
                                beer.UpdatedOn = time;
                            }
                            if (DateTime.TryParse(beerToken["last_had_on"].ToString(), out time))
                            {
                                beer.LastHadOn = time;
                            }
                            if (DateTime.TryParse(beerToken["had_on"].ToString(), out time))
                            {
                                beer.HadOn = time;
                            }

                            beer.Image = new BitmapImage(new Uri(string.Format(ResourceLoader.GetString("ImageEndpoint"),
                                                                               beerToken["large_image"].ToString())));

                            if (!BeerList.Contains(beer))
                            {
                                BeerList.Add(beer);
                            }
                        }

                        IsLoading = false;
                    });
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);

                IsLoading = false;
            }
        }
Example #3
0
        public BeerResponse GetBeer(string id)
        {
            var client = new BeerWithSoapServiceClient();

            var getBeerRequest = new GetBeerRequest
            {
                BaseRequest = new BaseRequest
                {
                    APIKey     = "ILoveBeer",
                    ClientCode = "TonyaZen",
                    RequestId  = Guid.NewGuid().ToString(),
                    Version    = "V1"
                },

                Id = Convert.ToInt32(id)
            };

            try
            {
                var response = client.GetBeer(getBeerRequest);

                if (response.BaseResponse.ResponseStatus == ResponseStatus.Success)
                {
                    client.Close();

                    return(new BeerResponse
                    {
                        Success = true,
                        Beer = _mapper.MapBeer(response.Beer)
                    });
                }

                Logger.ErrorFormat("Get Beer failed for " +
                                   $"client: {getBeerRequest.BaseRequest.ClientCode}. " +
                                   $"RequestID: {getBeerRequest.BaseRequest.RequestId}. " +
                                   $"BeerId: {getBeerRequest.Id}. " +
                                   $"Error from Service: {response.BaseResponse.TechnicalErrorMessage}.");

                return(new BeerResponse
                {
                    Success = false,
                    Message = response.BaseResponse.DisplayErrorMessage,
                    Beer = new Beer()
                });
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("Get Beer failed for " +
                                   $"client: {getBeerRequest.BaseRequest.ClientCode}. " +
                                   $"RequestID: {getBeerRequest.BaseRequest.RequestId}. " +
                                   $"BeerId: {getBeerRequest.Id}. " +
                                   $"Exception: {ex}.");
                client.Abort();

                return(new BeerResponse
                {
                    Success = false,
                    Message = "We're sorry, there was a problem getting your beer. :(",
                    Beer = new Beer()
                });
            }
        }