예제 #1
0
        // get all top 3 best lots from database API
        public async Task GetLotOrder(string buildName, Task <List <Campus> > converted)
        {
            List <Campus> campuses = await converted;

            foreach (Campus campus in campuses)
            {
                if (campus.GetName() == this.Title)
                {
                    string text = "http://35.9.22.105/predictive-parking/" + campus.GetId() + "/"
                                  + campus.GetBuildingId(buildName);
                    var uri      = new Uri(text);
                    var response = await client.GetAsync(uri);

                    if (response.IsSuccessStatusCode)
                    {
                        var content = await response.Content.ReadAsStringAsync();

                        mLotOrder = map.PurgeLotList(campus.GetName(),
                                                     (string)Application.Current.Properties[campus.GetName() + "role"],
                                                     JsonConvert.DeserializeObject <ServerJSONLotOrder>(content).lot_order);
                        mLotToGo = 0;
                        l.Text   = "Lot: " + campus.GetLotName(mLotOrder[mLotToGo].ToString());
                    }
                }
            }
        }
예제 #2
0
        public async Task ConvertLots(Task <List <int> > server)
        {
            var lots = await server;

            mLotOrder = map.PurgeLotList(mCampusName, mRole, lots);
            int    lotCount       = mLotOrder.Count;
            string lotOrderString = "";

            mGoingTo = 0;

            map.SpanToLotsAndBuildings(mCampusName, mBuildingName, mLotOrder);

            if (lotCount > 3)
            {
                lotCount = 3;
            }

            for (int i = 0; i < lotCount; i++)
            {
                //.Add(map.GetLotById(mCampusName, lotId));

                if (i == 0)
                {
                    lotOrderString += "The best lot is " + map.GetLotName(mCampusName, mLotOrder[i].ToString());
                }

                else if (i == 1)
                {
                    lotOrderString += ", then " + map.GetLotName(mCampusName, mLotOrder[i].ToString());
                }

                else
                {
                    lotOrderString += ", then " + map.GetLotName(mCampusName, mLotOrder[i].ToString());
                }
            }
            stack.Children[0].BindingContext = new { Lots = lotOrderString };
            stack.Children[1].BindingContext = new { GoingTo = map.GetLotName(mCampusName, mLotOrder[mGoingTo].ToString()) };
        }