示例#1
0
        public FoodBanksModel GetFoodBanks(int start = 0, int total = 5)
        {
            var retVal = new FoodBanksModel();

            try
            {
                var client  = new RestClient(ConfigurationManager.AppSettings["WebApiBaseUrlV1"]);
                var request = new RestRequest("api/v1/FoodBanks/", Method.GET);
                request.AddParameter("Authorization", AuthorizationInformation, ParameterType.HttpHeader);
                request.AddParameter("offset", start);
                request.AddParameter("limit", total);
                var response = client.Execute <JsonReturn>(request);

                if (response != null && response.Data != null)
                {
                    JsonReturn jReturn = response.Data;
                    var        data    = (RestSharp.JsonArray)jReturn.Result;

                    //Main data.
                    var banks = new List <FoodBank>();
                    foreach (var item in data)
                    {
                        var result = (System.Collections.Generic.Dictionary <string, object>)item;
                        var bank   = new FoodBank();

                        if (result["addr1"] != null)
                        {
                            bank.Addr1 = result["addr1"].ToString();
                        }

                        if (result["addr2"] != null)
                        {
                            bank.Addr2 = result["addr2"].ToString();
                        }

                        if (result["city"] != null)
                        {
                            bank.City = result["city"].ToString();
                        }

                        if (result["created"] != null)
                        {
                            bank.Created = DateTime.Parse(result["created"].ToString());
                        }

                        if (result["donationCount"] != null)
                        {
                            bank.DonationCount = int.Parse(result["donationCount"].ToString());
                        }

                        if (result["id"] != null)
                        {
                            bank.Id = int.Parse(result["id"].ToString());
                        }

                        if (result["name"] != null)
                        {
                            bank.Name = result["name"].ToString();
                        }

                        if (result["postal"] != null)
                        {
                            bank.Postal = result["postal"].ToString();
                        }

                        if (result["state"] != null)
                        {
                            bank.State = result["state"].ToString();
                        }

                        if (result["volunteerCount"] != null)
                        {
                            bank.VolunteerCount = int.Parse(result["volunteerCount"].ToString());
                        }

                        banks.Add(bank);
                    }

                    retVal.Links = (List <Link>)jReturn.Links; //Links.

                    //Get header(s).
                    foreach (var header in response.Headers)
                    {
                        if (header.Name != "X-Total-Count")
                        {
                            continue;
                        }
                        retVal.TotalFoodBanks = int.Parse(header.Value.ToString());
                        break;
                    }

                    retVal.FoodBanks = banks;
                }
            }
            catch (Exception ex)
            {
                retVal = new FoodBanksModel();
            }

            return(retVal);
        }
示例#2
0
        public FoodBanksModel GetFoodBank(int id)
        {
            var retVal = new FoodBanksModel();

            try
            {
                var client  = new RestClient(ConfigurationManager.AppSettings["WebApiBaseUrlV1"]);
                var request = new RestRequest("api/v1/FoodBanks/" + id, Method.GET);
                request.AddParameter("Authorization", AuthorizationInformation, ParameterType.HttpHeader);
                var response = client.Execute <JsonReturn>(request);

                if (response != null && response.Data != null)
                {
                    JsonReturn jReturn = response.Data;
                    var        result  = (System.Collections.Generic.Dictionary <string, object>)jReturn.Result;
                    retVal.FoodBank = new FoodBank();

                    if (result["addr1"] != null)
                    {
                        retVal.FoodBank.Addr1 = string.IsNullOrEmpty(result["addr1"].ToString()) ? "" : result["addr1"].ToString();
                    }

                    if (result["addr2"] != null)
                    {
                        retVal.FoodBank.Addr2 = result["addr2"].ToString();
                    }

                    if (result["city"] != null)
                    {
                        retVal.FoodBank.City = result["city"].ToString();
                    }

                    if (result["created"] != null)
                    {
                        retVal.FoodBank.Created = DateTime.Parse(result["created"].ToString());
                    }

                    if (result["donationCount"] != null)
                    {
                        retVal.FoodBank.DonationCount = int.Parse(result["donationCount"].ToString());
                    }

                    if (result["id"] != null)
                    {
                        retVal.FoodBank.Id = int.Parse(result["id"].ToString());
                    }

                    if (result["name"] != null)
                    {
                        retVal.FoodBank.Name = result["name"].ToString();
                    }

                    if (result["postal"] != null)
                    {
                        retVal.FoodBank.Postal = result["postal"].ToString();
                    }

                    if (result["state"] != null)
                    {
                        retVal.FoodBank.State = result["state"].ToString();
                    }

                    if (result["volunteerCount"] != null)
                    {
                        retVal.FoodBank.VolunteerCount = int.Parse(result["volunteerCount"].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                retVal = new FoodBanksModel();
            }

            return(retVal);
        }