Commit 6c361a41 by wangonghui

修改本地资源和媒体资源绑定实体

parent 18874b14
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.TVP.Storage;
namespace VIZ.TVP.Domain
{
public class MHResourceFileModel : ResourceFileModelBase, IResourceDrag, IDisposable
{
/// <summary>
/// GH 节点
/// </summary>
public GH_Entry_Node EntryNode { get; set; }
#region FloderModel -- 所属文件夹模型
private MHResourceFolderModel floderModel;
/// <summary>
/// 所属文件夹模型
/// </summary>
public MHResourceFolderModel FloderModel
{
get { return floderModel; }
set { floderModel = value; this.RaisePropertyChanged(nameof(FloderModel)); }
}
#endregion
#region Src --
private string src;
/// <summary>
/// 源
/// </summary>
public string Src
{
get { return src; }
set { src = value; this.RaisePropertyChanged(nameof(Src)); }
}
#endregion
#region Thumbnail -- 缩略图
private string thumbnail;
/// <summary>
/// 缩略图
/// </summary>
public string Thumbnail
{
get { return thumbnail; }
set { thumbnail = value; this.RaisePropertyChanged(nameof(Thumbnail)); }
}
#endregion
#region MimeType -- 文件格式
private string mimeType;
/// <summary>
/// 文件格式
/// </summary>
public string MimeType
{
get { return mimeType; }
set { mimeType = value; this.RaisePropertyChanged(nameof(MimeType)); }
}
#endregion
#region Path -- 路径
private string path;
/// <summary>
/// 路径
/// </summary>
public string Path
{
get { return path; }
set { path = value; this.RaisePropertyChanged(nameof(Path)); }
}
#endregion
#region ResourcePath -- 资源路径
/// <summary>
/// 资源路径
/// </summary>
public string ResourcePath
{
get { return $"{this.FileType}*{this.Path}"; }
}
#endregion
// ---------------------------------------------------------------------
// 扩展属性
#region ThumbnailBitmap -- 缩略图图片
private Bitmap thumbnailBitmap;
/// <summary>
/// 缩略图图片
/// </summary>
public Bitmap ThumbnailBitmap
{
get { return thumbnailBitmap; }
set { thumbnailBitmap = value; this.RaisePropertyChanged(nameof(ThumbnailBitmap)); }
}
#endregion
// ---------------------------------------------------------------------
// 方法
/// <summary>
/// 销毁
/// </summary>
public void Dispose()
{
this.ThumbnailBitmap?.Dispose();
this.ThumbnailBitmap = null;
}
}
}
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.TVP.Storage;
namespace VIZ.TVP.Domain
{
public class MHResourceFolderModel: ResourceFolderModelBase
{
/// <summary>
/// GH 节点
/// </summary>
public GH_Entry_Node EntryNode { get; set; }
#region Path -- 路径
private string path;
/// <summary>
/// 路径
/// </summary>
public string Path
{
get { return path; }
set { path = value; this.RaisePropertyChanged(nameof(Path)); }
}
#endregion
#region Files -- 文件集合
private ObservableCollection<MHResourceFileModel> files;
/// <summary>
/// 文件集合
/// </summary>
public ObservableCollection<MHResourceFileModel> Files
{
get { return files; }
set { files = value; this.RaisePropertyChanged(nameof(Files)); }
}
#endregion
}
}
......@@ -103,6 +103,8 @@
<Compile Include="Model\Resource\IResourceDrag.cs" />
<Compile Include="Model\Resource\LF\LFResourceFileModel.cs" />
<Compile Include="Model\Resource\LF\LFResourceFolderModel.cs" />
<Compile Include="Model\Resource\MH\MHResourceFileModel.cs" />
<Compile Include="Model\Resource\MH\MHResourceFolderModel.cs" />
<Compile Include="Model\Resource\ResourceDragData.cs" />
<Compile Include="Model\TVPConnection\ITVPEndpointManager.cs" />
<Compile Include="Model\TVPConnection\TVPConnectionGroupModel.cs" />
......
......@@ -13,22 +13,22 @@ namespace VIZ.TVP.Module
/// <summary>
/// 文件夹目录集合
/// </summary>
ObservableCollection<GHResourceFolderModel> FolderModels { get; set; }
ObservableCollection<LFResourceFolderModel> FolderModels { get; set; }
/// <summary>
/// 当前选中的文件夹
/// </summary>
GHResourceFolderModel SelectedFolderModel { get; set; }
LFResourceFolderModel SelectedFolderModel { get; set; }
/// <summary>
/// 文件集合
/// </summary>
ObservableCollection<GHResourceFileModel> FileModels { get; set; }
ObservableCollection<LFResourceFileModel> FileModels { get; set; }
/// <summary>
/// 选中的文件模型
/// </summary>
GHResourceFileModel SelectedFileModel { get; set; }
LFResourceFileModel SelectedFileModel { get; set; }
/// <summary>
/// 是否正在加载文件
......
......@@ -41,14 +41,14 @@ namespace VIZ.TVP.Module
/// 更新文件模型
/// </summary>
/// <param name="folder">文件夹</param>
public void UpdateFileModels(GHResourceFolderModel folder)
public void UpdateFileModels(LFResourceFolderModel folder)
{
//FolderModels = new ObservableCollection<LFResourceFolderModel>();
//FolderModels = tempfolderModel;
//SelectedFolderModel = tempSelecFolder;
if (folder == null) return;
ObservableCollection<GHResourceFileModel> ImgeFile = new ObservableCollection<GHResourceFileModel>();
ObservableCollection<LFResourceFileModel> ImgeFile = new ObservableCollection<LFResourceFileModel>();
//Task.Run(() =>
//{
......@@ -100,12 +100,12 @@ namespace VIZ.TVP.Module
/// <summary>
/// 销毁文件模型
/// </summary>
public void DisposeFileModels(GHResourceFolderModel folder)
public void DisposeFileModels(LFResourceFolderModel folder)
{
if (folder == null || folder.Files == null || folder.Files.Count == 0)
return;
foreach (GHResourceFileModel file in folder.Files)
foreach (LFResourceFileModel file in folder.Files)
{
file.Dispose();
}
......
......@@ -88,7 +88,7 @@ namespace VIZ.TVP.Module
return false;
}
}
private static Boolean IsImageByName(string name)
public static Boolean IsImageByName(string name)
{
int pos = name.LastIndexOf(".");
if (name.Length - pos - 1 < 3)
......
......@@ -14,7 +14,7 @@
xmlns:common="clr-namespace:VIZ.TVP.Common;assembly=VIZ.TVP.Common"
xmlns:domain="clr-namespace:VIZ.TVP.Domain;assembly=VIZ.TVP.Domain"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=local:VizResourceViewModel}"
d:DataContext="{d:DesignInstance Type=local:LocalResourceViewModel}"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
......
......@@ -79,11 +79,11 @@ namespace VIZ.TVP.Module
#region FolderModels -- 文件夹目录集合
private ObservableCollection<GHResourceFolderModel> folderModels;
private ObservableCollection<LFResourceFolderModel> folderModels;
/// <summary>
/// 文件夹目录集合
/// </summary>
public ObservableCollection<GHResourceFolderModel> FolderModels
public ObservableCollection<LFResourceFolderModel> FolderModels
{
get { return folderModels; }
set
......@@ -97,11 +97,11 @@ namespace VIZ.TVP.Module
#region SelectedFolderModel -- 当前选中的文件夹
private GHResourceFolderModel selectedFolderModel;
private LFResourceFolderModel selectedFolderModel;
/// <summary>
/// 当前选中的文件夹
/// </summary>
public GHResourceFolderModel SelectedFolderModel
public LFResourceFolderModel SelectedFolderModel
{
get { return selectedFolderModel; }
set
......@@ -123,11 +123,11 @@ namespace VIZ.TVP.Module
#region FileModels -- 文件集合
private ObservableCollection<GHResourceFileModel> fileModels;
private ObservableCollection<LFResourceFileModel> fileModels;
/// <summary>
/// 文件集合
/// </summary>
public ObservableCollection<GHResourceFileModel> FileModels
public ObservableCollection<LFResourceFileModel> FileModels
{
get { return fileModels; }
set
......@@ -142,11 +142,11 @@ namespace VIZ.TVP.Module
#region SelectedFileModel -- 选中的文件模型
private GHResourceFileModel selectedFileModel;
private LFResourceFileModel selectedFileModel;
/// <summary>
/// 选中的文件模型
/// </summary>
public GHResourceFileModel SelectedFileModel
public LFResourceFileModel SelectedFileModel
{
get { return selectedFileModel; }
set { selectedFileModel = value; this.RaisePropertyChanged(nameof(SelectedFileModel)); }
......@@ -253,10 +253,10 @@ namespace VIZ.TVP.Module
try
{
// 获取电脑上的每个逻辑驱动
this.FolderModels = new ObservableCollection<GHResourceFolderModel>();
this.FolderModels = new ObservableCollection<LFResourceFolderModel>();
foreach (var drive in Directory.GetLogicalDrives())
{
FolderModels.Add(new GHResourceFolderModel()
FolderModels.Add(new LFResourceFolderModel()
{
Name = drive,
Path = drive.ToString(),
......@@ -312,7 +312,7 @@ namespace VIZ.TVP.Module
/// </summary>
private void RefreshFile()
{
GHResourceFolderModel folder = this.SelectedFolderModel;
LFResourceFolderModel folder = this.SelectedFolderModel;
if (folder == null)
return;
......@@ -367,7 +367,7 @@ namespace VIZ.TVP.Module
// 为目录做迭代,添加目录
directories.ForEach(directoryPath =>
{
selectedFolderModel.Children.Add(new GHResourceFolderModel()
selectedFolderModel.Children.Add(new LFResourceFolderModel()
{
Name = GetFileFolderName(directoryPath),
Path = directoryPath,
......@@ -421,7 +421,7 @@ namespace VIZ.TVP.Module
/// 获取选中的文件
/// </summary>
/// <param name="value"></param>
private void GetFile(GHResourceFolderModel value)
private void GetFile(LFResourceFolderModel value)
{
#region Get Files
......@@ -441,11 +441,11 @@ namespace VIZ.TVP.Module
}
catch { }
List<GHResourceFileModel> files = new List<GHResourceFileModel>();
List<LFResourceFileModel> files = new List<LFResourceFileModel>();
// 为目录做迭代,添加文件
Files.ForEach(filePath =>
{
var ghFileModel = new GHResourceFileModel();
var ghFileModel = new LFResourceFileModel();
ghFileModel.Name = GetFileFolderName(filePath);
ghFileModel.Path = filePath;
......@@ -575,7 +575,7 @@ namespace VIZ.TVP.Module
/// <param name="e">赛选参数</param>
private void FileRowFilter(RowFilterArgs e)
{
GHResourceFileModel fileModel = e.Item as GHResourceFileModel;
LFResourceFileModel fileModel = e.Item as LFResourceFileModel;
if (fileModel == null)
{
e.Visible = false;
......
......@@ -13,22 +13,22 @@ namespace VIZ.TVP.Module
/// <summary>
/// 文件夹目录集合
/// </summary>
ObservableCollection<GHResourceFolderModel> FolderModels { get; set; }
ObservableCollection<MHResourceFolderModel> FolderModels { get; set; }
/// <summary>
/// 当前选中的文件夹
/// </summary>
GHResourceFolderModel SelectedFolderModel { get; set; }
MHResourceFolderModel SelectedFolderModel { get; set; }
/// <summary>
/// 文件集合
/// </summary>
ObservableCollection<GHResourceFileModel> FileModels { get; set; }
ObservableCollection<MHResourceFileModel> FileModels { get; set; }
/// <summary>
/// 选中的文件模型
/// </summary>
GHResourceFileModel SelectedFileModel { get; set; }
MHResourceFileModel SelectedFileModel { get; set; }
/// <summary>
/// 是否正在加载文件
......
......@@ -3,9 +3,12 @@ using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using VIZ.Framework.Core;
using VIZ.TVP.Domain;
using VIZ.TVP.Service;
......@@ -34,21 +37,12 @@ namespace VIZ.TVP.Module
/// </summary>
public IMediaResourceFileSupport Support { get; private set; }
/// <summary>
/// GH 资源服务
/// </summary>
private IGHResourceService ghResourceService = new GHResourceService();
/// <summary>
/// GH 服务
/// </summary>
private IGHService ghService = new GHService();
/// <summary>
/// 更新文件模型
/// </summary>
/// <param name="folder">文件夹</param>
public void UpdateFileModels(GHResourceFolderModel folder)
public void UpdateFileModels(MHResourceFolderModel folder)
{
// 文件夹对象不存在
if (folder == null)
......@@ -100,43 +94,52 @@ namespace VIZ.TVP.Module
string header = string.Format("http://192.168.3.76:9000/api/home/GetListFile?filePath={0}", folder.Path);
var FileResult = await MediaResourceFileService.PostObjectAsync<fileListResult,string>(header,"");
List<GHResourceFileModel> list = new List<GHResourceFileModel>();
List<MHResourceFileModel> list = new List<MHResourceFileModel>();
// folder.Files = new System.Collections.ObjectModel.ObservableCollection<GHResourceFileModel>();
foreach (var file in FileResult.masterData)
{
GHResourceFileModel GHFile = new GHResourceFileModel();
MHResourceFileModel GHFile = new MHResourceFileModel();
GHFile.Name = file.fileName;
GHFile.Path = file.smallIconUrl;
list.Add(GHFile);
if(ThumbnailHelper.IsImage(GHFile.Name))
if(ThumbnailHelper.IsImageByName(GHFile.Name))
{
//GetFile
string url = string.Format("http://192.168.3.76:9000/api/home/GetFile?filePath={0}", folder.Path);
string url = string.Format("http://192.168.3.76:9000/api/home/GetFile?filePath={0}", GHFile.Path);
var fileResult = await MediaResourceFileService.GetImage(url);
GHFile.FileType = ResourceFileType.IMAGE;
Image img = Bitmap.FromStream(fileResult);
Bitmap bmp = new Bitmap(img);
GHFile.ThumbnailBitmap = bmp;
// var r
}
else if(ThumbnailHelper.IsImage(GHFile.Name))
else if(ThumbnailHelper.IsVideo(GHFile.Name))
{
string strVedioPath = string.Format("{0}{1}", System.Environment.CurrentDirectory, "\\VedioImage\\Vedio.jpeg");
Image vedioImage = Image.FromFile(strVedioPath);
Bitmap vedioBtm = new Bitmap(vedioImage);
GHFile.ThumbnailBitmap = vedioBtm;
GHFile.FileType = ResourceFileType.Video;
}
list.Add(GHFile);
}
});
folder.Files = list.ToObservableCollection();
this.Support.FileModels = folder.Files;
});
}
public async Task<List<GHResourceFolderModel>> GetMeiaResourceFolder()
public async Task<List<MHResourceFolderModel>> GetMeiaResourceFolder()
{
var folderResult = await MediaResourceFileService.PostObjectAsync<fileListResult, string>("http://192.168.3.76:9000/api/home/GetListFiles", "");
......@@ -148,23 +151,23 @@ namespace VIZ.TVP.Module
private List<GHResourceFolderModel> GetFolder(List<ms> foldersDatas)
private List<MHResourceFolderModel> GetFolder(List<ms> foldersDatas)
{
List<GHResourceFolderModel> listFolderModel = new List<GHResourceFolderModel>();
List<MHResourceFolderModel> listFolderModel = new List<MHResourceFolderModel>();
foreach(var floderData in foldersDatas)
{
if(floderData.fileType== "floder")
{
GHResourceFolderModel child = new GHResourceFolderModel();
MHResourceFolderModel child = new MHResourceFolderModel();
child.Name = floderData.fileName;
child.FolderType = ResourceFolderType.Folder;
child.Path = floderData.smallIconUrl;
List<GHResourceFolderModel> children_list = GetFolder(floderData.m);
List<MHResourceFolderModel> children_list = GetFolder(floderData.m);
foreach (GHResourceFolderModel item in children_list)
foreach (MHResourceFolderModel item in children_list)
{
child.Children.Add(item);
......@@ -179,60 +182,15 @@ namespace VIZ.TVP.Module
return listFolderModel;
}
/// <summary>
/// 开始下载缩略图
/// </summary>
/// <param name="folder">文件夹</param>
public void BeginDownloadThumbnail(GHResourceFolderModel folder)
{
if (folder == null || folder.Files == null || folder.Files.Count == 0)
return;
ThreadHelper.SafeRun(() =>
{
foreach (GHResourceFileModel file in folder.Files)
{
this.DownloadThumbnail(file);
}
});
}
/// <summary>
/// 开始下载缩略图
/// </summary>
/// <param name="file">文件</param>
public void DownloadThumbnail(GHResourceFileModel file)
{
if (file == null || string.IsNullOrWhiteSpace(file.Thumbnail))
return;
try
{
Bitmap bmp = this.ghService.GetImage(file.Thumbnail);
WPFHelper.BeginInvoke(() =>
{
file.ThumbnailBitmap = bmp;
});
}
catch (Exception ex)
{
log.Error(ex);
}
}
/// <summary>
/// 销毁文件模型
/// </summary>
public void DisposeFileModels(GHResourceFolderModel folder)
public void DisposeFileModels(MHResourceFolderModel folder)
{
if (folder == null || folder.Files == null || folder.Files.Count == 0)
return;
foreach (GHResourceFileModel file in folder.Files)
foreach (MHResourceFileModel file in folder.Files)
{
file.Dispose();
}
......
......@@ -139,5 +139,29 @@ namespace VIZ.TVP.Module
}
/// <summary>
/// 获取图片
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static async Task<MemoryStream> GetImage(string url)
{
HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();//用来抛异常的
using (Stream stream = response.Content.ReadAsStreamAsync().Result)
{
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
return ms;
}
}
}
}
......@@ -71,11 +71,11 @@ namespace VIZ.TVP.Module
#region FolderModels -- 文件夹目录集合
private ObservableCollection<GHResourceFolderModel> folderModels;
private ObservableCollection<MHResourceFolderModel> folderModels;
/// <summary>
/// 文件夹目录集合
/// </summary>
public ObservableCollection<GHResourceFolderModel> FolderModels
public ObservableCollection<MHResourceFolderModel> FolderModels
{
get { return folderModels; }
set { folderModels = value; this.RaisePropertyChanged(nameof(FolderModels)); }
......@@ -85,11 +85,11 @@ namespace VIZ.TVP.Module
#region SelectedFolderModel -- 当前选中的文件夹
private GHResourceFolderModel selectedFolderModel;
private MHResourceFolderModel selectedFolderModel;
/// <summary>
/// 当前选中的文件夹
/// </summary>
public GHResourceFolderModel SelectedFolderModel
public MHResourceFolderModel SelectedFolderModel
{
get { return selectedFolderModel; }
set
......@@ -105,11 +105,11 @@ namespace VIZ.TVP.Module
#region FileModels -- 文件集合
private ObservableCollection<GHResourceFileModel> fileModels;
private ObservableCollection<MHResourceFileModel> fileModels;
/// <summary>
/// 文件集合
/// </summary>
public ObservableCollection<GHResourceFileModel> FileModels
public ObservableCollection<MHResourceFileModel> FileModels
{
get { return fileModels; }
set { fileModels = value; this.RaisePropertyChanged(nameof(FileModels)); }
......@@ -119,11 +119,11 @@ namespace VIZ.TVP.Module
#region SelectedFileModel -- 选中的文件模型
private GHResourceFileModel selectedFileModel;
private MHResourceFileModel selectedFileModel;
/// <summary>
/// 选中的文件模型
/// </summary>
public GHResourceFileModel SelectedFileModel
public MHResourceFileModel SelectedFileModel
{
get { return selectedFileModel; }
set { selectedFileModel = value; this.RaisePropertyChanged(nameof(SelectedFileModel)); }
......@@ -248,18 +248,19 @@ namespace VIZ.TVP.Module
//http://192.168.3.76:9000/api/home/GetListFiles
//List <GHResourceFolderModel> list= await this.mediaResourceFileController.GetMeiaResourceFolder();
// if (list == null) return;
List<MHResourceFolderModel> list = await this.mediaResourceFileController.GetMeiaResourceFolder();
//this.FolderModels = list.ToObservableCollection();
if (list == null) return;
this.FolderModels = list.ToObservableCollection();
//WPFHelper.BeginInvoke(() =>
//{
// this.FolderModels = list.FirstOrDefault()?.Children.Select(p => (GHResourceFolderModel)p).ToObservableCollection();
// this.IsFolderLoading = false;
//});
this.IsFolderLoading = false;
// });
......@@ -285,16 +286,16 @@ namespace VIZ.TVP.Module
/// </summary>
private void RefreshFile()
{
GHResourceFolderModel folder = this.SelectedFolderModel;
//MHResourceFolderModel folder = this.SelectedFolderModel;
if (folder == null)
return;
//if (folder == null)
// return;
this.mediaResourceFileController.DisposeFileModels(folder);
//this.mediaResourceFileController.DisposeFileModels(folder);
folder.IsRefreshedFiles = false;
//folder.IsRefreshedFiles = false;
this.mediaResourceFileController.UpdateFileModels(this.SelectedFolderModel);
//this.mediaResourceFileController.UpdateFileModels(this.SelectedFolderModel);
}
#endregion
......@@ -334,7 +335,7 @@ namespace VIZ.TVP.Module
{
this.FilterResourceFileType = type;
VizResourceView view = this.GetView<VizResourceView>();
MediaResourceView view = this.GetView<MediaResourceView>();
if (view == null)
return;
......@@ -389,7 +390,7 @@ namespace VIZ.TVP.Module
if (service == null)
return;
service.AddSceneTemplate(this.SelectedFileModel);
// service.AddSceneTemplate(this.SelectedFileModel);
}
#endregion
......@@ -407,7 +408,7 @@ namespace VIZ.TVP.Module
/// <param name="e">赛选参数</param>
private void FileRowFilter(RowFilterArgs e)
{
GHResourceFileModel fileModel = e.Item as GHResourceFileModel;
MHResourceFileModel fileModel = e.Item as MHResourceFileModel;
if (fileModel == null)
{
e.Visible = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment