Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }