public override void LoadedFromData(ILazyLoadingItem loadedData) { if (IsCached) { return; } IsCached = true; if (!string.IsNullOrEmpty(this.ThumbnailKey)) { using (var proxy = new MogamiApiServiceClient()) { proxy.Login(); var loadthumbparam = new REQUEST_LOADTHUMBNAIL { ThumbnailKey = ThumbnailKey }; var rsp = proxy.LoadThumbnail(loadthumbparam); using (Stream stream = new MemoryStream(rsp.ThumbnailBytes)) { // ロックしないように指定したstreamを使用する。 BitmapDecoder decoder = BitmapDecoder.Create( stream, BitmapCreateOptions.None, // この辺のオプションは適宜 BitmapCacheOption.Default // これも ); BitmapSource bmp = new WriteableBitmap(decoder.Frames[0]); bmp.Freeze(); this.Thumbnail = bmp; } } } }
public void Load(bool rootLoad = false) { // サーバからデータを取得してきた、というイメージ。 // サーバからは、現在のタグの小階層タグの一覧とその小階層が更に小階層を持つかどうかのフラグを取得するような実装とする。 try { if (rootLoad) { using (var proxy = new MogamiApiServiceClient()) { proxy.Login(); var param = new REQUEST_LOADCATEGORY(); var result = proxy.LoadCategory(param); foreach (var prop in result.Categories) { _children.Add(new ServerCategoryTestData { Id = prop.Id, IsChild = prop.IsHasChild, Name = prop.Name }); } } } else { using (var proxy = new MogamiApiServiceClient()) { var param = new REQUEST_LOADCATEGORY(); param.TargetCategortId = this._CategoryId; var result = proxy.LoadCategory(param); foreach (var prop in result.Categories) { _children.Add(new ServerCategoryTestData { Id = prop.Id, IsChild = prop.IsHasChild, Name = prop.Name }); } } } }catch (Exception expr) { LOG.Warn(expr.Message); } }
public void Load(bool rootLoad = false) { // サーバからデータを取得してきた、というイメージ。 // サーバからは、現在のタグの小階層タグの一覧とその小階層が更に小階層を持つかどうかのフラグを取得するような実装とする。 if (rootLoad) { using(var proxy = new MogamiApiServiceClient()) { proxy.Login(); var param = new REQUEST_LOADTAG(); param.TargetTagId = 1L; var result = proxy.LoadTag(param); foreach(var prop in result.Tags) { _children.Add(new ServerTagTestData { Id = prop.Id, IsChild = prop.IsHasChild, Name = prop.Name }); } } } else { using (var proxy = new MogamiApiServiceClient()) { proxy.Login(); var param = new REQUEST_LOADTAG(); param.TargetTagId = this._TagId; var result = proxy.LoadTag(param); foreach (var prop in result.Tags) { _children.Add(new ServerTagTestData { Id = prop.Id, IsChild = prop.IsHasChild, Name = prop.Name }); } } } }
// 画像リストの読み込みを、最初の一度だけ実行するようにする /// <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; }