Beispiel #1
0
        private void GetProductList()
        {
            uUIDs = new Dictionary <string, UIDInfo>();

            BackendReturnObject bro = Backend.TBC.GetProductList();

            var r = bro.GetReturnValuetoJSON()["rows"];

            LitJson.JsonData[] rows = new LitJson.JsonData[r.Count];

            for (int i = 0; i < rows.Length; i++)
            {
                rows[i] = r[i];
            }

            foreach (var w in rows)
            {
                UIDInfo u = new UIDInfo();

                u.name  = w["name"][0].ToString();
                u.uuid  = w["uuid"][0].ToString();
                u.price = Convert.ToInt32(w["TBC"][0].ToString());

                uUIDs.Add(u.name, u);
            }
        }
Beispiel #2
0
        public UIDInfo GetProductUUID(string key)
        {
            if (uUIDs.ContainsKey(key))
            {
                return(uUIDs[key]);
            }
            else
            {
                UIDInfo u = new UIDInfo();

                u.name  = "";
                u.price = 0;

                return(u);
            }
        }
        private async void LookupBikeInfo()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            string uuid  = Preferences.Get("UUID", "");
            string user  = Preferences.Get("Email", "");
            string token = Preferences.Get("Token", "");



            if (user != "" && token == "")
            {
                user = "";
            }
            bool isMyBike = false;

            if (uuid != "")
            {
                try
                {
                    UIDInfo result = await DataStore.GetInfo(user, token, uuid);

                    if (result.FrameNumber == null)
                    {
                        await DialogService.Show("UUID unknown", $"The scanned UUID {uuid} is unknown", "Ok");

                        Status = (int)FrameNumberStatusType.UIDNotRegistered;
                        Preferences.Set("UUID", "");
                        UUID           = uuid;
                        Brand          = "";
                        Model          = "";
                        ProductionYear = "";
                    }
                    else
                    {
                        if (result.Owner != null && token != "" && user != "")
                        {
                            if (string.Equals(result.Owner.Email, user, StringComparison.InvariantCultureIgnoreCase))
                            {
                                isMyBike = true;
                            }
                        }

                        Brand = result.FrameNumber.Manufacturer;
                        string model = result.FrameNumber.Model + " ";
                        if (result.FrameNumber.Frame != "")
                        {
                            model += result.FrameNumber.Frame;
                        }

                        Model  = model;
                        UUID   = result.FrameNumber.UID;
                        Status = result.FrameNumberStatus.Status;

                        Preferences.Set("BrandModel", Brand + " " + Model);

                        Stolen = (Status == (int)FrameNumberStatusValue.Stolen);

                        Registered = isMyBike && (Status != (int)FrameNumberStatusValue.Unregistered && Status != (int)FrameNumberStatusValue.Unknown);

                        Preferences.Set("RegisteredToBike", Registered ? "1" : "0");
                        NotRegistered = !Registered;

                        // Make sure we show 'stolen'
                        if (Stolen)
                        {
                            NotRegistered = false;
                        }


                        FrameNumberStatus = result.FrameNumberStatus;
                        ProductionYear    = result.FrameNumber.ProductionDate.Year > 0 ? result.FrameNumber.ProductionDate.Year.ToString() : "";

                        if (result.FrameNumberExtras != null)
                        {
                            FrameNumberExtras = result.FrameNumberExtras;
                        }

                        /* string extras = "";
                         * if (result.FrameNumberExtras != null)
                         * {
                         *   foreach (FrameNumberExtra ext in result.FrameNumberExtras)
                         *   {
                         *       if (extras != "")
                         *           extras += ", ";
                         *       string thisExtra = "";
                         *       if (ext.ExtraBrand != "")
                         *           thisExtra += " ";
                         *       if (ext.ExtraModel != "")
                         *           thisExtra = ext.ExtraModel + " ";
                         *       if (ext.ExtraType != "")
                         *           thisExtra = ext.ExtraType;
                         *       extras += thisExtra.Trim();
                         *   }
                         *   Extras = extras;
                         * }*/

                        DocumentCount = result.FrameNumberDocuments != null ? result.FrameNumberDocuments.Count : 0;
                        Documents     = result.FrameNumberDocuments ?? new List <FrameNumberDocument>();
                        MessageCount  = result.NumberOfMessages;

                        var messageViewModel = ViewModelLocator.Resolve <MessagesViewModel>();

                        if (messageViewModel != null)
                        {
                            MessagingCenter.Send(messageViewModel, MessageKeys.UpdateMessageCount, MessageCount);
                        }



                        if (NotRegistered)
                        {
                            ImagePath = Constants.DefaultProfileImage;
                        }
                        else if (result.ProfileImage != "")
                        {
                            ImagePath = result.ProfileImage;
                            Preferences.Set("ProfileImage", ImagePath);
                        }
                    }
                    IsBusy = false;
                }
                catch (Exception e)
                {
                    AnalyticsService.TrackError(e, new Dictionary <string, string>
                    {
                        { "Method", "BikeDetailViewModel.LookupBikeInfo" }
                    });
                }
            }
            else
            {
                if (hasShowWarning == false)
                {
                    await DialogService.Show("No scans", "No bike has been scanned. Please scan a bike..", "Ok");
                }
                hasShowWarning = true;
                Status         = (int)FrameNumberStatusType.UIDNotRegistered;
                UUID           = uuid;
                Brand          = "";
                Model          = "";

                TabParameter tabParameter = new TabParameter()
                {
                    TabIndex = 1
                };
                await NavigationService.NavigateToAsync <MainViewModel>(tabParameter);
            }
            IsBusy = false;
        }