Ejemplo n.º 1
0
        public async Task <ActionResult <UserViewModel> > UsersAsync(ChangeImageCommand command)
        {
            command.UserName = User.Claims
                               .FirstOrDefault(x => x.Type == "username").Value;

            return(await Mediator.Send(command));
        }
Ejemplo n.º 2
0
        public SettingsViewModel(IAuthenticator authentificator, IUnitOfWork unitOfWork, IEmailService emailService)
        {
            _authentificator = authentificator;

            ChangeImageCommand = new ChangeImageCommand(_authentificator, unitOfWork);

            PasswordChangePanelViewModel = new PasswordChangePanelViewModel(_authentificator);
            EmailConfirmPanelViewModel   = new EmailConfirmPanelViewModel(_authentificator, unitOfWork, emailService);
            AppLanguagePanelViewModel    = new AppLanguagePanelViewModel();

            _authentificator.StateChanged += Authenticator_StateChanged;
        }
Ejemplo n.º 3
0
        public ZoomVM()
        {
            _indexGenerator = new Random();
            _imageUrls      = new List <ImageResource>
            {
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "http://yeahsoup.s3-us-west-2.amazonaws.com/wp-content/uploads/2015/05/img1114.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Stream, ImageSourceText = "http://i.telegraph.co.uk/multimedia/archive/02262/A124CE_2262003b.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "http://i.telegraph.co.uk/multimedia/archive/01476/chimp_1476818c.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Stream, ImageSourceText = "http://i.huffpost.com/gen/1490756/images/o-CHIMPANZEE-facebook.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "http://static1.squarespace.com/static/523b539be4b0a75330f9c8ce/55a55614e4b01d30adbfe144/55a557ace4b0632463d49108/1436909257139/babyowl.jpg?format=1000w"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "http://www.rantlifestyle.com/wp-content/uploads/2014/06/schattigebabydier11.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Stream, ImageSourceText = "http://ww2.valdosta.edu/~kaletour/bb1.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "https://36.media.tumblr.com/5c493da746cc1c1f438ae304591244c4/tumblr_n9a78n99Ea1tvs3v3o1_500.jpg"
                },
                new ImageResource {
                    ImageFrom = ImageOrigin.Uri, ImageSourceText = "http://streetloop.com/wp-content/uploads/2014/07/Baby-animals-looking-like-their-parents25.jpg"
                }
            };

            ToggleZoomCommand = new Command((_) =>
            {
                EnableZoom = !EnableZoom;
            });
            ChangeImageCommand = new Command(async(_) =>
            {
                var index      = _indexGenerator.Next(0, _imageUrls.Count - 1);
                var resource   = _imageUrls[index];
                ImageComesFrom = Enum.GetName(typeof(ImageOrigin), resource.ImageFrom);
                if (resource.ImageFrom == ImageOrigin.Uri)
                {
                    Image = new UriImageSource()
                    {
                        Uri = new Uri(resource.ImageSourceText)
                    }
                }
                ;
                else if (resource.ImageFrom == ImageOrigin.Stream)
                {
                    // this would normally be something off the device, but any stream will do so we'll just manually get a stream to the online image
                    var client = new HttpClient(new NativeMessageHandler());
                    var stream = await client.GetStreamAsync(resource.ImageSourceText);
                    Image      = ImageSource.FromStream(() => stream);
                }
                else
                {
                    throw new NotSupportedException($"Unable to load image of type {ImageComesFrom} with value {resource.ImageSourceText}.");
                }
            });

            // enable zoom should initially be false
            EnableZoom = false;

            // initialize the image
            ChangeImageCommand.Execute(null);
        }
Ejemplo n.º 4
0
        public MainPageViewModel(INavigationService navigationService)
            : base(navigationService)
        {
            Title = "HOME";

            ImageMarkerInfo.Subscribe(imageInfo =>
            {
                ImageMarkerPath.Value = null;
                ImageMarkerPath.Value = imageInfo.ImagePath;
            }).AddTo(this.Disposable);

            ImageNodeInfo.Subscribe(imageInfo =>
            {
                ImageNodePath.Value = null;
                ImageNodePath.Value = imageInfo.ImagePath;
            }).AddTo(this.Disposable);

            ChangeImageCommand = IsBusy.Inverse().ToAsyncReactiveCommand <string>();
            ChangeImageCommand.Subscribe(async(param) =>
            {
                IsBusy.Value  = true;
                var imagePath = await Common.GetImagePath();
                var imageInfo = new ImageInfo();

                if (param.Equals(MarkerStr))
                {
                    imageInfo.ImagePath   = File.Exists(imagePath) ? imagePath : ImageMarkerFileName;
                    imageInfo.IsAsset     = !File.Exists(imagePath);
                    ImageMarkerInfo.Value = imageInfo;
                }
                else if (param.Equals(NodeStr))
                {
                    imageInfo.ImagePath = File.Exists(imagePath) ? imagePath : ImageNodeFileName;
                    imageInfo.IsAsset   = !File.Exists(imagePath);
                    ImageNodeInfo.Value = imageInfo;
                }
                IsBusy.Value = false;
            }).AddTo(this.Disposable);

            TakePhotoCommand = IsBusy.Inverse().ToAsyncReactiveCommand <string>();
            TakePhotoCommand.Subscribe(async(param) =>
            {
                IsBusy.Value  = true;
                var imagePath = await Common.TakePhoto();
                var imageInfo = new ImageInfo();

                if (param.Equals(MarkerStr))
                {
                    imageInfo.ImagePath   = File.Exists(imagePath) ? imagePath : ImageMarkerFileName;
                    imageInfo.IsAsset     = !File.Exists(imagePath);
                    ImageMarkerInfo.Value = imageInfo;
                }
                else if (param.Equals(NodeStr))
                {
                    imageInfo.ImagePath = File.Exists(imagePath) ? imagePath : ImageNodeFileName;
                    imageInfo.IsAsset   = !File.Exists(imagePath);
                    ImageNodeInfo.Value = imageInfo;
                }
                IsBusy.Value = false;
            }).AddTo(this.Disposable);

            ExecuteARCommand = IsBusy.Inverse().ToAsyncReactiveCommand <string>();
            ExecuteARCommand.Subscribe(async(param) =>
            {
                if (string.IsNullOrEmpty(ApiKey.KudanARApiKey))
                {
                    await UserDialogs.Instance.AlertAsync("KudanARのAPIキー取得に失敗しました", $"{AppInfo.Name}", "OK");
                    await Xamarin.Forms.DependencyService.Get <IKudanARService>().Init();
                    return;
                }

                if (param.Equals("MarkerAR"))
                {
                    IsBusy.Value = true;
                    await Xamarin.Forms.DependencyService.Get <IKudanARService>().StartMarkerARActivityAsync();
                }
                else if (param.Equals("MarkerlessAR_Floor"))
                {
                    IsBusy.Value = true;
                    await Xamarin.Forms.DependencyService.Get <IKudanARService>().StartMarkerlessARActivityAsync();
                }
                else if (param.Equals("MarkerlessAR_Wall"))
                {
                    IsBusy.Value = true;
                    await Xamarin.Forms.DependencyService.Get <IKudanARService>().StartMarkerlessWallActivityAsync();
                }
                // Activity側でビジーフラグ変更
                //IsBusy.Value = false;
            }).AddTo(this.Disposable);

            SettingCommand = IsBusy.Inverse().ToAsyncReactiveCommand();
            SettingCommand.Subscribe(async() =>
            {
                await this.NavigationService.NavigateAsync("SettingPage");
            }).AddTo(this.Disposable);
        }
Ejemplo n.º 5
0
 public async Task <ActionResult <UserViewModel> > UsersAsync(ChangeImageCommand command)
 {
     return(await Mediator.Send(command));
 }