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; } } } }
/// <summary> /// 選択中の画像のプレビューペインを表示する /// </summary> public async void ShowSelectedImagePreview() { LOG.Info("ShowSelectedImagePreview"); if (this.SelectedItem == null) { LOG.Info("選択している画像がありません。"); return; } var message = new DoImagePreviewPaneMessage(); message.IsWithActive = true; using (var proxy = new MogamiApiServiceClient()) { var request = new REQUEST_LOADARTIFACT(); request.TargetArtifactId = SelectedItem.ArtifactId; var rsp = await proxy.LoadArtifactAsync(request); message.LoadImageInfo = new LoadImageInfo { BitmapFilePath = rsp.FilePath }; await Messenger.RaiseAsync(message); } }
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 }); } } } }
public async Task <bool> SaveDeviceSettingInfoAsync() { using (var proxy = new MogamiApiServiceClient()) { await proxy.LoadDeviceSettingAsync(); if (this.DeviceSettingInfo == null) { this._DeviceSettingInfo = new DeviceSettingInfo(); } var req = new REQUEST_SAVEDEVICRSETTING(); var json = JsonConvert.SerializeObject(this.DeviceSettingInfo, Formatting.None); req.Data = json; var rsp = await proxy.SaveDeviceSettingAsync(req); return(rsp.Success); } }
protected override bool OnRequestClose() { try { using (var proxy = new MogamiApiServiceClient()) { var req = new REQUEST_UPDATECATEGORY(); var rsp = proxy.UpdateCategory(req); if (!rsp.Success) { // Fault LOG.Warn("カテゴリ情報の更新に失敗しました。"); } } } catch (Exception expr) { LOG.Error(expr.Message); } return(true); }
public async Task <bool> LoadDeviceSettingInfoAsync() { if (this.DeviceSettingInfo == null) { this._DeviceSettingInfo = new DeviceSettingInfo(); } using (var proxy = new MogamiApiServiceClient()) { await proxy.LoginAsync(); var rsp = await proxy.LoadDeviceSettingAsync(); if (rsp.Data != null) { JsonConvert.PopulateObject(rsp.Data, this.DeviceSettingInfo); } LoadedDeviceSetting(); } return(true); }
// 画像リストの読み込みを、最初の一度だけ実行するようにする /// <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; }