Esempio n. 1
0
        // 画像リストの読み込みを、最初の一度だけ実行するようにする

        /// <summary>
        /// サーバーから画像一覧を取得する(async)
        /// </summary>
        /// <remarks>
        /// 指定した条件に一致する画像一覧をサーバーから取得します。
        /// </remarks>
        public async void LoadServiceImageList()
        {
            LOG.InfoFormat("LoadServiceImageList IsListLoaded={0}", IsListLoaded);
            if (IsListLoaded)
            {
                return;
            }

            if (!IsInitializedContainer)
            {
                return;
            }

            REQUEST_FINDARTIFACT param = null;

            if (_LoadCategoryId != 0L)
            {
                param            = new REQUEST_FINDARTIFACT();
                param.TargetType = FINDTARGET_SELECTOR.CATEGORY;
                param.TargetId   = _LoadCategoryId;
                _LoadCategoryId  = 0L;
            }
            else
            if (_LoadTagId != 0L)
            {
                param            = new REQUEST_FINDARTIFACT();
                param.TargetType = FINDTARGET_SELECTOR.TAG;
                param.TargetId   = _LoadTagId;
                _LoadTagId       = 0L;
            }

            if (param == null)
            {
                return;
            }

            IsListLoaded = true;
            this.IsBusy  = true;

            this._Images.Items.Clear();

            using (var proxy = new MogamiApiServiceClient())
            {
                proxy.Login();

                RESPONSE_FINDARTIFACT result = await proxy.FindArtifactAsync(param);

                foreach (var prop in result.Artifacts)
                {
                    this._Images.AddItem(new ImageListLazyItem
                    {
                        IdText       = prop.Id.ToString(),
                        ArtifactId   = prop.Id,
                        Label        = prop.Title,
                        ThumbnailKey = prop.ThumbnailKey
                    });
                }
            }

            this.IsBusy       = false;
            this.IsListLoaded = false;
        }