/// <summary> /// 根据图片枚举类型获取对应的字段名称 /// </summary> /// <param name="imageType">图片枚举类型</param> /// <returns></returns> private string GetFieldNameByImageType(UserImageType imageType) { string fieldName = "Portrait"; switch (imageType) { case UserImageType.个人肖像: fieldName = "Portrait"; break; case UserImageType.身份证照片1: fieldName = "IDPhoto1"; break; case UserImageType.身份证照片2: fieldName = "IDPhoto2"; break; case UserImageType.片1: fieldName = "BusinessCard1"; break; case UserImageType.片2: fieldName = "BusinessCard2"; break; } return(fieldName); }
public async Task <IActionResult> ReadUserImageAsync(long userId, UserImageType userImageType) { BlobContent blobContent = await _userService.ReadUserImageAsync(TenantId, userId, userImageType); if (blobContent == null) { return(NotFound()); } return(File(blobContent.Stream, blobContent.Type, blobContent.Name)); }
public bool UpdatePersonImageBytes(UserImageType imagetype, int userId, byte[] imageBytes) { string str = this.method_4(imagetype); string str2 = string.Format("update {0} set {1}=@image where Id = {2} ", base.tableName, str, userId); Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(str2); database.AddInParameter(sqlStringCommand, "image", DbType.Binary, imageBytes); return(database.ExecuteNonQuery(sqlStringCommand) > 0); }
/// <summary> /// 更新个人相关图片数据 /// </summary> /// <param name="imagetype">图片类型</param> /// <param name="userId">用户ID</param> /// <param name="imageBytes">图片字节数组</param> /// <returns></returns> public bool UpdatePersonImageBytes(UserImageType imagetype, Int32 userId, byte[] imageBytes) { string fieldName = GetFieldNameByImageType(imagetype); string sql = string.Format("update {0} set {1}=@image where Id = {2} ", tableName, fieldName, userId); Database db = CreateDatabase(); DbCommand dbCommand = db.GetSqlStringCommand(sql); db.AddInParameter(dbCommand, "image", DbType.Binary, imageBytes); return(db.ExecuteNonQuery(dbCommand) > 0); }
public byte[] GetPersonImageBytes(UserImageType imagetype, int userId) { string str = this.method_4(imagetype); string str2 = string.Format("Select {0} from {1} where Id = {2} ", str, base.tableName, userId); Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(str2); byte[] buffer = null; using (IDataReader reader = database.ExecuteReader(sqlStringCommand)) { if (reader.Read()) { buffer = reader.IsDBNull(reader.GetOrdinal(str)) ? null : ((byte[])reader[0]); } } return(buffer); }
private long?GetBlobId(User user, UserImageType userImageType) { switch (userImageType) { case UserImageType.Original: return(user.ImageBlobId); case UserImageType.Preview: return(user.PreviewImageBlobId); case UserImageType.Thumbnail: return(user.ThumbnailImageBlobId); default: return(null); } }
/// <summary> /// 根据个人图片枚举类型获取图片数据 /// </summary> /// <param name="imagetype">图片枚举类型</param> /// <returns></returns> public byte[] GetPersonImageBytes(UserImageType imagetype, Int32 userId) { string fieldName = GetFieldNameByImageType(imagetype); string sql = string.Format("Select {0} from {1} where Id = {2} ", fieldName, tableName, userId); Database db = CreateDatabase(); DbCommand dbCommand = db.GetSqlStringCommand(sql); byte[] imageBytes = null; using (IDataReader reader = db.ExecuteReader(dbCommand)) { if (reader.Read()) { imageBytes = (reader.IsDBNull(reader.GetOrdinal(fieldName))) ? null : (byte[])reader[0]; } } return(imageBytes); }
private string method_4(UserImageType userImageType_0) { switch (userImageType_0) { case UserImageType.const_0: return("Portrait"); case UserImageType.const_1: return("IDPhoto1"); case UserImageType.const_2: return("IDPhoto2"); case UserImageType.const_3: return("BusinessCard1"); case UserImageType.const_4: return("BusinessCard2"); } return("Portrait"); }
public byte[] GetPersonImageBytes(UserImageType imagetype, int userId) { IUser baseDal = base.baseDal as IUser; return(baseDal.GetPersonImageBytes(imagetype, userId)); }
public bool UpdatePersonImageBytes(UserImageType imagetype, int userId, byte[] imageBytes) { IUser baseDal = base.baseDal as IUser; return(baseDal.UpdatePersonImageBytes(imagetype, userId, imageBytes)); }
// 3) https://itedata.blob.core.windows.net/ced/user/profilepic/1.jpg public static string BlobFullUrl(this UserImageType userFileType, string fileName) { return(userFileType.BlobSubDirectory() + fileName); }
// 2) user/profilepic/1.jpg public static string BlobFullName(this UserImageType userFileType, string fileName) { return(ProfilePicBlobDirectory + userFileType.GetAttribute <FileTypeAttribute>().FolderName.ToLower() + "/" + fileName); }
// 1) https://itedata.blob.core.windows.net/ced/user/profilepic/ private static string BlobSubDirectory(this UserImageType userImageType) { return(ProfilePicBlobDirectory + userImageType.GetAttribute <ImageAttribute>().Key.ToLower() + "/"); }
public async Task <BlobContent> ReadUserImageAsync(long tenantId, long userId, UserImageType userImageType) { try { string uri = $"{_options.Value.CoreApiBaseUrl}tenants/{tenantId}/users/{userId}/images/{userImageType.ToString().ToLower()}"; using (HttpClient httpClient = new HttpClient()) { HttpResponseMessage response = await httpClient.GetAsync(uri); return(new BlobContent { Name = response.Content.Headers.ContentDisposition.FileName, Type = response.Content.Headers.ContentType.MediaType, Stream = await response.Content.ReadAsStreamAsync() }); } } catch (Exception ex) { throw new CoreClientException("Core API failed", ex); } }
public async Task <BlobContent> ReadUserImageAsync(long tenantId, long userId, UserImageType userImageType) { User user = await _userRepository.ReadUserAsync(tenantId, userId); if (user == null) { return(null); } long?blobId = GetBlobId(user, userImageType); if (blobId == null) { return(null); } return(await _storageService.ReadBlobContentAsync(tenantId, blobId.Value, UserImagePath)); }
/// <summary> /// 更新个人相关图片数据 /// </summary> /// <param name="imagetype">图片类型</param> /// <param name="userId">用户ID</param> /// <param name="imageBytes">图片字节数组</param> /// <returns></returns> public bool UpdatePersonImageBytes(UserImageType imagetype, Int32 userId, byte[] imageBytes) { return(dal.UpdatePersonImageBytes(imagetype, userId, imageBytes)); }
/// <summary> /// 根据个人图片枚举类型获取图片数据 /// </summary> /// <param name="imagetype">图片枚举类型</param> /// <returns></returns> public byte[] GetPersonImageBytes(UserImageType imagetype, int userId) { return(null); }
/// <summary> /// 更新个人相关图片数据 /// </summary> /// <param name="imagetype">图片类型</param> /// <param name="userId">用户ID</param> /// <param name="imageBytes">图片字节数组</param> /// <returns></returns> public bool UpdatePersonImageBytes(UserImageType imagetype, int userId, byte[] imageBytes) { return(false); }
/// <summary> /// 根据个人图片枚举类型获取图片数据 /// </summary> /// <param name="imagetype">图片枚举类型</param> /// <returns></returns> public byte[] GetPersonImageBytes(UserImageType imagetype, Int32 userId) { IUser dal = baseDal as IUser; return(dal.GetPersonImageBytes(imagetype, userId)); }