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; }
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); } }
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); }
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); }
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; }