コード例 #1
0
ファイル: Index.cshtml.cs プロジェクト: ooocode/WebDisk
        /// <summary>
        /// 创建文件共享
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostCreateSharedAsync([FromBody] CreateSharedDto dto)
        {
            if (TryValidateModel(dto))
            {
                var shared = await fileSharedService.CreateSharedFileAsync(dto);

                if (shared != null)
                {
                    return(new JsonResult(new
                    {
                        Code = shared.Code,
                        EndDateTime = shared.EndDateTime.ToString(),
                        FileId = shared.FileId.ToString(),
                        Id = shared.Id.ToString()
                    }));
                }
            }

            return(BadRequest());
        }
コード例 #2
0
ファイル: FileSharedService.cs プロジェクト: ooocode/WebDisk
        /// <summary>
        /// 创建文件共享
        /// </summary>
        /// <returns></returns>
        public async Task <FileShared> CreateSharedFileAsync(CreateSharedDto dto)
        {
            long fileId = long.Parse(dto.FileId);

            //先判断文件存不存在
            var exist = await fileDbContext.Files.AnyAsync(e => e.Id == fileId && e.UserId == userId);

            if (exist)
            {
                var    sharedId = GuidEx.NewGuid();
                string code     = string.Empty;
                if (dto.HadCode)
                {
                    code = (new Random()).Next(1000, 9999).ToString();
                }


                if (dto.Days <= 0)
                {
                    dto.Days = 3650;
                }

                fileDbContext.FileShareds.Add(new FileShared
                {
                    Id          = sharedId,
                    Code        = code,
                    EndDateTime = DateTimeOffset.Now.AddDays(dto.Days),
                    FileId      = fileId
                });

                int row = await fileDbContext.SaveChangesAsync();

                return(await GetFileSharedAsync(new GetFileSharedDto { Code = code, SharedId = sharedId }));
            }
            return(null);
        }