protected override async Task <ResponseApi> AddMiddlewareExecuted(UserFileInfo obj) { base.GetBase64(obj); if (string.IsNullOrEmpty(obj.Base64)) { ResponseApi response1 = ResponseApi.Create(GetLanguage(), Code.UploadFileFail, false); return(await Task.FromResult(response1)); } obj = this.AddMiddlewareExecute(obj); var parent = base.UnitWork.FindSingle <UserFileInfo>(it => it.Base64 == obj.Base64); if (parent == null) { obj.Id = (int)base.UnitWork.Insert(obj); System.IO.File.WriteAllBytes($"{AddressConfig.UploadImgDirectory}\\{ obj.Src}", /*obj.Base64*/ Base64Helper.FromBase64String(obj.Base64)); obj = (UserFileInfo)obj.Clone(); } else { obj.Parent = parent; obj.Base64 = null; } obj.FileId = RandomHelper.OrderId.Sha1(); obj.Src = $"{RandomHelper.OrderId.Sha1()}.{obj.Parent.Src.Split('.').LastOrDefault()}"; obj.Id = (int)base.UnitWork.Insert(obj); var userFileEntry = this._userFileService.ToUserFileEntry(obj); this._userFileService.Publish(userFileEntry); ResponseApi response = ResponseApi.Create(GetLanguage(), Code.AddSuccess); response.Data = new { obj.Src, Id = obj.FileId }; return(await Task.FromResult(response)); }
protected override async Task <ResponseApi> EditMiddlewareExecuted(UserFileInfo obj) { obj.UpdateDate = DateTime.Now; base.GetBase64(obj); this.EditMiddlewareExecute(obj); if (string.IsNullOrEmpty(obj.Base64)) { var oldObj = base.UnitWork.FindSingle <SocialContact.Domain.Core.UserFileInfo>(it => it.Id == obj.Id && it.FileId == obj.FileId); if (oldObj == null) { ResponseApi response1 = ResponseApi.Create(GetLanguage(), Code.UploadFileFail, false); return(await Task.FromResult(response1)); } oldObj.FileId = RandomHelper.OrderId.Sha1(); oldObj.Src = $"{RandomHelper.OrderId.Sha1()}.{oldObj.Src.Split('.').LastOrDefault()}"; obj.FileId = oldObj.FileId; obj.Src = oldObj.Src; obj.Parent = oldObj.Parent; base.UnitWork.Update <UserFileInfo>(it => it.Id == obj.Id, it => new UserFileInfo() { UpdateDate = DateTime.Now, Admin = obj.Admin, Category = obj.Category, Description = obj.Description, FileId = obj.FileId, Src = obj.Src }); } else { var parent = base.UnitWork.FindSingle <UserFileInfo>(it => it.Base64 == obj.Base64); if (parent == null) { parent = (UserFileInfo)obj.Clone(); parent.Parent = null; parent.Base64 = obj.Base64; parent.Id = (int)base.UnitWork.Insert(parent); System.IO.File.WriteAllBytes($"{AddressConfig.UploadImgDirectory}\\{ parent.Src}", Base64Helper.FromBase64String(parent.Base64)); } obj.Base64 = null; obj.Parent = parent; obj.FileId = RandomHelper.OrderId.Sha1(); obj.Src = $"{RandomHelper.OrderId.Sha1()}.{obj.Parent.Src.Split('.').LastOrDefault()}"; base.UnitWork.Update(obj); } var userFileEntry = this._userFileService.ToUserFileEntry(obj); this._userFileService.Publish(userFileEntry); ResponseApi response = ResponseApi.Create(GetLanguage(), Code.ModifySuccess); response.Data = new { obj.Src, Id = obj.FileId }; return(await Task.FromResult(response)); }
UserFileInfo Set(UserFileInfo fileInfo, UserInfo user = null, bool add = true) { fileInfo.User = add?null: user; string str = base.RedisCache.GetHashValue("file", fileInfo.FileId); if (add) { str = str ?? throw new Exception("用户文件不存在"); } UserFileInfo parent = null; UserFileInfo pic = null; if (str != null) { string[] strs = str.Split('_'); int index = str.IndexOf("_"); fileInfo.Src = str.Substring(0, index); fileInfo.Type = str.Substring(index + 1); fileInfo.Base64 = Base64Helper.Base64String(System.IO.File.ReadAllBytes($"{AddressConfig.UploadImgDirectory}\\{fileInfo.Src}")); parent = base.UnitWork.FindSingle <UserFileInfo>(it => it.Base64 == fileInfo.Base64); if (!add) { //pic = base.UnitWork.FindSingle<UserFileInfo>(it => it.User.Id == user.Id && it.FileId == fileInfo.FileId && it.Type == fileInfo.Type); pic = base.UnitWork.FindSingle <UserFileInfo>(it => it.FileId == fileInfo.FileId && it.Type == fileInfo.Type); if (pic == null) { throw new Exception("用户文件不存在"); } } } else { // pic = base.UnitWork.FindSingle<UserFileInfo>(it => it.User.Id == user.Id && it.FileId == fileInfo.FileId); pic = base.UnitWork.FindSingle <UserFileInfo>(it => it.FileId == fileInfo.FileId); if (pic == null) { throw new Exception("用户文件不存在"); } parent = pic.Parent; } if (parent == null) { parent = fileInfo; parent.Id = (int)base.UnitWork.Insert(parent); if (add) { pic = (UserFileInfo)parent.Clone(); pic.Id = (int)base.UnitWork.Insert(pic); } } else { if (add) { pic = fileInfo; pic.Parent = parent; pic.Base64 = null; pic.Id = (int)base.UnitWork.Insert(pic); } } if (add) { var userFileEntry1 = this._userFileService.ToUserFileEntry(pic); this._userFileService.Publish(userFileEntry1); return(pic); } else { if (parent != null) { if (pic.Parent.Base64 != parent.Base64) { pic.Parent = parent; } } } pic.FileId = RandomHelper.OrderId.Sha1(); pic.Src = $"{RandomHelper.OrderId.Sha1()}.{pic.Parent.Src.Split('.').LastOrDefault()}"; base.UnitWork.Update <UserFileInfo>(it => it.Id == pic.Id, it => new UserFileInfo() { Parent = pic.Parent, FileId = pic.FileId, Src = pic.Src, UpdateDate = DateTime.Now }); var userFileEntry = this._userFileService.ToUserFileEntry(pic); this._userFileService.Publish(userFileEntry); return(pic); }