Exemple #1
0
 public override async Task InitializeAsync(object navigationData)
 {
     if (navigationData is FrameNumberDocument)
     {
         FrameNumberDocument doc = navigationData as FrameNumberDocument;
         ImageUrl   = doc.DocumentUrl;
         ImageTitle = doc.DocumentTitle;
     }
     else if (navigationData is FrameNumberImage)
     {
         FrameNumberImage im = navigationData as FrameNumberImage;
         ImageUrl   = im.ImageUrl;
         ImageTitle = im.ImageTitle;
     }
 }
        public async Task <FrameNumberImage> RegisterImage(string userName, string token, string uuid, FrameNumberImage frameNumberImage, bool deleteImage)
        {
            if (uuid == "" || frameNumberImage == null)
            {
                return(new FrameNumberImage());
            }

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

            try
            {
                string postBody = JsonConvert.SerializeObject(new FrameNumberImageRequest()
                {
                    Username = userName, Token = token, UID = uuid, FrameNumberImage = frameNumberImage, DeleteImage = deleteImage
                });

                HttpResponseMessage response = await client.PostAsync(Constants.AzureEndPoint_RegisterImage, 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
                    };
                    FrameNumberImageResponse frameNumberImageResponse = JsonConvert.DeserializeObject <FrameNumberImageResponse>(str, settings);
                    if (frameNumberImageResponse == null || frameNumberImageResponse?.FrameNumberImage == null)
                    {
                        return(new FrameNumberImage()); // empty
                    }
                    return(frameNumberImageResponse.FrameNumberImage);
                }
                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(new FrameNumberImage());
        }
        public async Task <FrameNumberImage> RegisterImage(string userName, string token, string uuid, FrameNumberImage frameNumberImage, bool deleteImage)
        {
            if (uuid == "" || frameNumberImage == null)
            {
                return(new FrameNumberImage());
            }

            FrameNumberImageResponse response = await awsHttpClient.RegisterImage(new FrameNumberImageRequest()
            {
                Username = userName, Token = token, UID = uuid, FrameNumberImage = frameNumberImage, DeleteImage = deleteImage
            });

            if (response == null || response?.FrameNumberImage == null)
            {
                return(new FrameNumberImage()); // empty
            }
            return(response.FrameNumberImage);
        }
Exemple #4
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;
        }