private void OnPinClick(object sender, EventArgs e)
        {
            if (ViewModel == null)
            {
                return;
            }

            var person = ViewModel.Person;

            // Download an image for the tile,
            // once that is done we create the tile
            if (person.HasEmail)
            {
                var image = new System.Windows.Media.Imaging.BitmapImage();
                image.ImageOpened += delegate {
                    var imageUri = image.SaveAsTile("Person-" + Uri.EscapeDataString(person.Id));
                    CreateTile(person, imageUri);
                };
                image.ImageFailed += delegate {
                    CreateTile(person, null);
                };
                image.CreateOptions = System.Windows.Media.Imaging.BitmapCreateOptions.None;
                image.UriSource     = Gravatar.GetImageUrl(person.Email, 173);
            }
            else
            {
                CreateTile(person, null);
            }
        }
Exemple #2
0
        void StartImageDownload(ListView listView, int position, Person person)
        {
            if (imageDownloadsInProgress.Contains(person.Id))
            {
                return;
            }

            var url = Gravatar.GetImageUrl(person.Email, 100);

            if (imageDownloader.HasLocallyCachedCopy(url))
            {
                var image = imageDownloader.GetImage(url);
                FinishImageDownload(listView, position, person, (Bitmap)image);
            }
            else
            {
                imageDownloadsInProgress.Add(person.Id);

                imageDownloader.GetImageAsync(url).ContinueWith(t => {
                    if (!t.IsFaulted)
                    {
                        FinishImageDownload(listView, position, person, (Bitmap)t.Result);
                    }
                }, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        private void DownloadImage()
        {
            var personInfo = (PersonViewModel)BindingContext;
            var person     = personInfo.Person;

            if (person.HasEmail)
            {
                var imageUrl = Gravatar.GetImageUrl(person.Email, IMAGE_SIZE);
                photo.Source = new UriImageSource {
                    Uri = imageUrl
                };
            }
        }
Exemple #4
0
        const int ImageSize = 88 * 2;       //176

        void GetImage()
        {
            var p      = (PersonViewModel)BindingContext;
            var person = p.Person;

            if (person.HasEmail)
            {
                var imageUrl = Gravatar.GetImageUrl(person.Email, ImageSize);

                var loader = new UriImageSource();
                loader.Uri         = imageUrl;
                PersonImage.Source = loader;
            }
        }
        void StartImageDownload(UITableView tableView, NSIndexPath indexPath, Person person)
        {
            if (imageDownloadsInProgress.Contains(person.Id))
            {
                return;
            }
            imageDownloadsInProgress.Add(person.Id);

            imageDownloader.GetImageAsync(Gravatar.GetImageUrl(person.Email, 88)).ContinueWith(t => {
                if (!t.IsFaulted)
                {
                    FinishImageDownload(tableView, indexPath, person, (UIImage)t.Result);
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestMessage req, TraceWriter log)
        {
            try
            {
                log.Info("C# HTTP trigger function processed a request.");

                var data = await RequestDecoder.Decode <TokenCreatePostModel>(req);

                var response = new TokenResponseModel
                {
                    id       = data.email,
                    name     = GetName(data.email),
                    iconURL  = Gravatar.GetImageUrl(data.email),
                    password = new Jwt(data.email).Encode()
                };
                return(req.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (HttpResponseException error)
            {
                return(error.Response);
            }
        }
            public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
            {
                var section = indexPath.Section;

                if (section == 0)
                {
                    var cell = tableView.DequeueReusableCell("N");
                    if (cell == null)
                    {
                        cell = new UITableViewCell(UITableViewCellStyle.Default, "N");
                        cell.SelectionStyle = UITableViewCellSelectionStyle.None;
                        cell.ImageView.Layer.CornerRadius  = 6;
                        cell.ImageView.Layer.MasksToBounds = true;
                    }

                    var person = controller.personViewModel.Person;

                    cell.TextLabel.Text = person.SafeDisplayName;

                    if (person.HasEmail)
                    {
                        var imageUrl = Gravatar.GetImageUrl(controller.personViewModel.Person.Email, ImageSize);

                        if (imageDownloader.HasLocallyCachedCopy(imageUrl))
                        {
                            cell.ImageView.Image = (UIImage)imageDownloader.GetImageAsync(imageUrl).Result;
                        }
                        else
                        {
                            cell.ImageView.Image = PlaceholderImage.Value;
                            imageDownloader.GetImageAsync(imageUrl).ContinueWith(t => {
                                cell.ImageView.Image = (UIImage)t.Result;
                            }, TaskScheduler.FromCurrentSynchronizationContext());
                        }
                    }

                    return(cell);
                }
                else if (section == 1)
                {
                    var cell = tableView.DequeueReusableCell("F");
                    if (cell == null)
                    {
                        cell = new UITableViewCell(UITableViewCellStyle.Default, "F");
                        cell.TextLabel.TextColor = ValueColor;
                    }

                    cell.TextLabel.Text = "Favorite";
                    cell.Accessory      = controller.personViewModel.IsFavorite ?
                                          UITableViewCellAccessory.Checkmark :
                                          UITableViewCellAccessory.None;

                    return(cell);
                }
                else
                {
                    var cell = tableView.DequeueReusableCell("C");

                    if (cell == null)
                    {
                        cell = new UITableViewCell(UITableViewCellStyle.Value2, "C");
                    }

                    var prop = controller.personViewModel.PropertyGroups [section - 2].Properties [indexPath.Row];

                    cell.TextLabel.Text       = prop.Name.ToLowerInvariant();
                    cell.DetailTextLabel.Text = prop.Value;

                    cell.SelectionStyle = prop.Type == PersonViewModel.PropertyType.Generic ?
                                          UITableViewCellSelectionStyle.None :
                                          UITableViewCellSelectionStyle.Blue;

                    return(cell);
                }
            }