示例#1
0
        /// <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);
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }
示例#4
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);
        }
示例#5
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);
        }
示例#6
0
        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);
            }
        }
示例#7
0
        /// <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);
        }
示例#8
0
        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");
        }
示例#9
0
        public byte[] GetPersonImageBytes(UserImageType imagetype, int userId)
        {
            IUser baseDal = base.baseDal as IUser;

            return(baseDal.GetPersonImageBytes(imagetype, userId));
        }
示例#10
0
        public bool UpdatePersonImageBytes(UserImageType imagetype, int userId, byte[] imageBytes)
        {
            IUser baseDal = base.baseDal as IUser;

            return(baseDal.UpdatePersonImageBytes(imagetype, userId, imageBytes));
        }
示例#11
0
 // 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);
 }
示例#12
0
 // 2) user/profilepic/1.jpg
 public static string BlobFullName(this UserImageType userFileType, string fileName)
 {
     return(ProfilePicBlobDirectory + userFileType.GetAttribute <FileTypeAttribute>().FolderName.ToLower() + "/" + fileName);
 }
示例#13
0
 // 1) https://itedata.blob.core.windows.net/ced/user/profilepic/
 private static string BlobSubDirectory(this UserImageType userImageType)
 {
     return(ProfilePicBlobDirectory + userImageType.GetAttribute <ImageAttribute>().Key.ToLower() + "/");
 }
示例#14
0
        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);
            }
        }
示例#15
0
        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));
        }
示例#16
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)
 {
     return(dal.UpdatePersonImageBytes(imagetype, userId, imageBytes));
 }
示例#17
0
 /// <summary>
 /// 根据个人图片枚举类型获取图片数据
 /// </summary>
 /// <param name="imagetype">图片枚举类型</param>
 /// <returns></returns>
 public byte[] GetPersonImageBytes(UserImageType imagetype, int userId)
 {
     return(null);
 }
示例#18
0
 /// <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);
 }
示例#19
0
        /// <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));
        }