Ejemplo n.º 1
0
        private async void UnregisterClicked(object obj)
        {
            Preferences.Set("RegisteredToBike", "0");
            RegistrationText = "Not registered";

            FrameNumberStatus fns = new FrameNumberStatus()
            {
                LastUpdateTime     = DateTime.Now,
                Latitude           = 0,
                Longitude          = 0,
                LastUpdateClientID = Xamarin.Essentials.DeviceInfo.Name,
                Status             = (int)FrameNumberStatusType.NotRegistered
            };

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


            await DataStore.UpdateStatus(user, token, uuid, fns);

            var bikeDetailViewModel = ViewModelLocator.Resolve <BikeDetailViewModel>();

            if (bikeDetailViewModel != null)
            {
                MessagingCenter.Send(bikeDetailViewModel, MessageKeys.UpdateState, 1);
            }
            IsBusy = false;
        }
Ejemplo n.º 2
0
        private async void DeregisterBikeClicked(object obj)
        {
            FrameNumberStatus fns = new FrameNumberStatus()
            {
                LastUpdateTime     = DateTime.Now,
                Latitude           = 0,
                Longitude          = 0,
                LastUpdateClientID = DeviceInfo.Name,
                Status             = (int)FrameNumberStatusType.NotRegistered
            };

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


            if (await DataStore.UpdateStatus(user, token, uuid, fns) == true)
            {
                DeregisterToken = "ANH123YX";
                Helpers.EmailSender emailSender = new EmailSender();

                string body = Constants.EmailhtmlBodyActivationCode.Replace("#1#", DeregisterToken);

                emailSender.SendEmailSMTP("DIGIFYY Unregistration token", body, new List <string> {
                    user
                });
                Stage1 = false;
                Stage2 = true;
                IsBusy = false;
                var resmgr = new ResourceManager("DigiFyy.Resources.AppResources", typeof(TranslateExtension).GetTypeInfo().Assembly);
                var ci     = CrossMultilingual.Current.CurrentCultureInfo;
                SellText = resmgr.GetString("YourBikeHasBeenDeregistered", ci);
            }
        }
Ejemplo n.º 3
0
        private async Task <bool> ChangeStatus(int newStatus)
        {
            IsBusy = true;

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

            if (uuid == "")
            {
                var resmgr = new ResourceManager("DigiFyy.Resources.AppResources", typeof(TranslateExtension).GetTypeInfo().Assembly);
                var ci     = CrossMultilingual.Current.CurrentCultureInfo;
                await DialogService.Show(resmgr.GetString("UUIDNotRegistered", ci), "Ok");

                return(false);
            }

            FrameNumberStatus fns = new FrameNumberStatus()
            {
                LastUpdateTime     = DateTime.Now,
                Latitude           = FrameNumberStatus.Latitude,
                Longitude          = FrameNumberStatus.Longitude,
                LastUpdateClientID = DeviceInfo.Name,
                Status             = newStatus
            };


            bool success = await DataStore.UpdateStatus(user, token, uuid, fns);

            if (success == true)
            {
                // Set local status if success..
                FrameNumberStatus = fns;
                Stolen            = (FrameNumberStatus.Status == (int)FrameNumberStatusType.ReportedStolen);
                Status            = FrameNumberStatus.Status;
            }

            IsBusy = false;
            return(success);
        }
Ejemplo n.º 4
0
        public BikeDetailViewModel()
        {
            this.ChangeStatusCommand = new Helpers.Command(this.ChangeStatusClicked);
            this.DocsCommand         = new Helpers.Command(this.DocumentsClicked);
            this.PartsCommand        = new Helpers.Command(this.ShowPartsClicked);
            this.AddImageCommand     = new Helpers.Command(this.AddImageClicked);
            this.SpecCommand         = new Helpers.Command(this.ShowSpecsClicked);
            this.RegisterCommand     = new Helpers.Command(this.RegisterClicked);
            this.ReportStolenCommand = new Helpers.Command(this.ReportStolenClicked);
            this.LoginCommand        = new Helpers.Command(this.LoginClicked);

            MessagingCenter.Subscribe <BikeDetailViewModel, int>(this, MessageKeys.UpdateState, async(sender, arg) =>
            {
                // For IsVisible properties in view
                Registered    = Preferences.Get("RegisteredToBike", "0") == "1";
                NotRegistered = !Registered;
                LoggedIn      = Preferences.Get("IsLoggedIn", "0") == "1";
                NotLoggedIn   = !LoggedIn;

                if (arg > 0)
                {
                    // re-read status from back-end
                    string uuid  = Preferences.Get("UUID", "");
                    string user  = Preferences.Get("Email", "");
                    string token = Preferences.Get("Token", "");
                    IsBusy       = true;
                    FrameNumberStatus frameNumberStatus = await DataStore.GetStatus(user, token, uuid);
                    if (frameNumberStatus != null)
                    {
                        FrameNumberStatus = frameNumberStatus;
                        Stolen            = (FrameNumberStatus.Status == (int)FrameNumberStatusType.ReportedStolen);
                        Status            = FrameNumberStatus.Status;
                    }
                    IsBusy = false;
                }
            });
        }
        public async Task <bool> UpdateStatus(string userName, string token, string uuid, FrameNumberStatus frameNumberStatus)
        {
            if (uuid == "" || frameNumberStatus == null)
            {
                return(false);
            }

            FrameNumberStatusResponse response = await awsHttpClient.UpdateStatusAsync(new FrameNumberStatusRequest()
            {
                Username = userName, Token = token, UID = uuid, FrameNumberStatus = frameNumberStatus
            });

            if (response == null || response?.FrameNumberStatus == null)
            {
                return(false);
            }

            return(true);
        }
        public async Task <bool> UpdateStatus(string userName, string token, string uuid, FrameNumberStatus frameNumberStatus)
        {
            if (userName == "" || token == "" || uuid == "" || frameNumberStatus == null)
            {
                return(false);
            }

            if (client.DefaultRequestHeaders.Contains("code"))
            {
                client.DefaultRequestHeaders.Remove("code");
            }
            client.DefaultRequestHeaders.Add("code", Constants.AzureApiKey_UpdateStatus);

            try
            {
                string postBody = JsonConvert.SerializeObject(new FrameNumberStatusRequest()
                {
                    Username = userName, Token = token, UID = uuid, FrameNumberStatus = frameNumberStatus
                });

                HttpResponseMessage response = await client.PostAsync(Constants.AzureEndPoint_UpdateStatus, new StringContent(postBody, Encoding.UTF8, "application/json"));

                if (response.IsSuccessStatusCode)
                {
                    string str = await response.Content.ReadAsStringAsync();

                    //     AnalyticsService.TrackEvent(str);
                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    FrameNumberStatusResponse frameNumberStatusResponse = JsonConvert.DeserializeObject <FrameNumberStatusResponse>(str, settings);
                    return((frameNumberStatusResponse == null || frameNumberStatusResponse?.FrameNumberStatus == null) ? false : true);
                }
                else
                {
                    string str = await response.Content.ReadAsStringAsync();

                    AnalyticsService.TrackEvent(str);
                }
            }
            catch (HttpRequestException hre)
            {
                AnalyticsService.TrackError(hre);
            }
            catch (TaskCanceledException hca)
            {
                AnalyticsService.TrackError(hca);
                AnalyticsService.TrackEvent("Request canceled");
            }
            catch (Exception ex)
            {
                AnalyticsService.TrackError(ex);
            }
            finally
            {
                /*if (httpClient != null)
                 * {
                 *  httpClient.Dispose();
                 *  httpClient = null;
                 * }*/
            }

            return(true);
        }
Ejemplo n.º 7
0
        private async void UsePhotoClicked(object obj)
        {
            if (IsBusy)
            {
                return;
            }
            IsBusy = true;
            string url = await Helpers.Utils.UploadFileS3(FileName);

            if (url != "")
            {
                var    bikeDetailViewModel = ViewModelLocator.Resolve <BikeDetailViewModel>();
                string uuid  = Preferences.Get("UUID", "");
                string user  = Preferences.Get("Email", "");
                string token = Preferences.Get("Token", "");


                if (imageType != (int)ImageTypes.Invoice)
                {
                    FrameNumberImage frameNumberImage = new FrameNumberImage()
                    {
                        ImageTitle = "Receipt", ImageType = imageType, ImageUrl = url
                    };
                    var result = await DataStore.RegisterImage(user, token, uuid, frameNumberImage, false);

                    if (result != null && result.ImageUrl != "")
                    {
                        Preferences.Set("ProfileImage", result.ImageUrl);
                        if (bikeDetailViewModel != null)
                        {
                            MessagingCenter.Send(bikeDetailViewModel, MessageKeys.UpdateState, 0);
                        }
                        await NavigationService.GoBackAsync();
                    }
                }
                else // if (imageType == (int)ImageTypes.Invoice)
                {
                    // Upload invoice picture as document.

                    FrameNumberDocument frameNumberDocument = new FrameNumberDocument()
                    {
                        DocumentTitle = "Receipt", DocumentType = imageType, DocumentUrl = url
                    };
                    var result = await DataStore.RegisterDocument(user, token, uuid, frameNumberDocument, false);

                    if (result != null && result.DocumentUrl != "")
                    {
                        FrameNumberStatus fns = new FrameNumberStatus()
                        {
                            LastUpdateTime     = DateTime.Now,
                            Latitude           = 0,
                            Longitude          = 0,
                            LastUpdateClientID = DeviceInfo.Name,
                            Status             = (int)FrameNumberStatusType.Registered
                        };

                        // Now set status to 'registered'

                        if (await DataStore.UpdateStatus(user, token, uuid, fns))
                        {
                            if (Preferences.Get("IsLoggedIn", "0") == "1")
                            {
                                Preferences.Set("RegisteredToBike", "1");
                            }
                        }
                    }
                    IsBusy = false;

                    // Update state
                    if (bikeDetailViewModel != null)
                    {
                        MessagingCenter.Send(bikeDetailViewModel, MessageKeys.UpdateState, 1);
                    }

                    //await NavigationService.GoBackAsync();
                    await NavigationService.NavigateToAsync <MainViewModel>(2);
                }
            }
            IsBusy = false;
        }