public async Task <IActionResult> Edit(Guid id, [Bind("Id,UserId,SHA256HexString,Name,DOUploading")] WeArticleFile weArticleFile) { if (id != weArticleFile.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(weArticleFile); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WeArticleFileExists(weArticleFile.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(weArticleFile)); }
public async Task <IActionResult> Create([Bind("Id,UserId,SHA256HexString,Name,DOUploading")] WeArticleFile weArticleFile) { if (ModelState.IsValid) { weArticleFile.Id = Guid.NewGuid(); _context.Add(weArticleFile); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(weArticleFile)); }
public async Task <IActionResult> Edit(Guid id, [Bind("Id,SetId,Title,WeArticleFormFile,ClassId,CustomClass,Complex,Comment,IsCommentBeAllowed,IsNegativeSignBeAllowed,IsPositiveSignBeAllowed")] WeArticle weArticle) { if (id != weArticle.Id) { return(NotFound()); } if (ModelState.IsValid) { try { var _UserId = _userManager.GetUserAsync(User).GetAwaiter().GetResult().Id; var _WeArticle = await _context.WeArticle.Where(p => p.Id == weArticle.Id && p.AuthorUserId == _UserId).FirstOrDefaultAsync(); if (weArticle.WeArticleFormFile != null) { var _FormFileBytes = _funFilesHelper.GetFormFileBytes(weArticle.WeArticleFormFile); var _FormFileSHA256HexString = _funFilesHelper.SHA256BytesToHexString(SHA256.Create().ComputeHash(_FormFileBytes)); var _WeEduHubFilesDirectoryInfo = new DirectoryInfo(_weEduHubHelper.WeEduHubFilesDirectoryPath(_webHostEnv)); if ( _WeEduHubFilesDirectoryInfo.GetFiles().ToList().Any(p => p.Name == _FormFileSHA256HexString) && !await _context.WeArticleFile.AnyAsync(p => p.SHA256HexString == _FormFileSHA256HexString && p.UserId == _UserId) ) { return(BadRequest()); } if (!IsFileLengthValid(weArticle.WeArticleFormFile)) { return(BadRequest()); } var _WeArticleFile = new WeArticleFile { DOUploading = DateTimeOffset.Now, Id = Guid.NewGuid(), Name = System.IO.Path.GetFileName(weArticle.WeArticleFormFile.FileName), UserId = _UserId, SHA256HexString = _FormFileSHA256HexString }; await System.IO.File.WriteAllBytesAsync( _weEduHubHelper.WeEduHubFilesDirectoryPath(_webHostEnv) + "/" + _FormFileSHA256HexString, _FormFileBytes ); await _context.WeArticleFile.AddAsync(_WeArticleFile); _WeArticle.WeArticleContentFileId = _WeArticleFile.Id; } _WeArticle.Title = weArticle.Title; _WeArticle.Complex = weArticle.Complex; _WeArticle.ClassId = weArticle.ClassId; _WeArticle.CustomClass = weArticle.CustomClass; _WeArticle.Comment = weArticle.Comment; _WeArticle.IsCommentBeAllowed = weArticle.IsCommentBeAllowed; _WeArticle.IsPositiveSignBeAllowed = weArticle.IsPositiveSignBeAllowed; _WeArticle.IsNegativeSignBeAllowed = weArticle.IsNegativeSignBeAllowed; await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WeArticleExists(weArticle.Id)) { return(NotFound()); } else { throw; } } return(Content(Url.Action(nameof(Index), new{ weArticle.SetId }))); // RedirectToAction(nameof(Index), new{weArticle.SetId}); } return(View(weArticle)); }
public async Task <IActionResult> Create([Bind("SetId,Title,WeArticleFormFile,ClassId,CustomClass,Complex,Comment,IsCommentBeAllowed,IsNegativeSignBeAllowed,IsPositiveSignBeAllowed")] WeArticle weArticle) { if (ModelState.IsValid) { var _UserId = _userManager.GetUserAsync(User).GetAwaiter().GetResult().Id; if ( !await _context.WeArticleSet.AnyAsync(p => p.UserId == _UserId && p.Id == weArticle.SetId) || weArticle.WeArticleFormFile == null ) { return(NotFound()); } if ( !weArticle.WeArticleFormFile.ContentType.StartsWith("video/") && !weArticle.WeArticleFormFile.FileName.EndsWith(".pdf") ) { return(BadRequest()); } if (!IsFileLengthValid(weArticle.WeArticleFormFile)) { return(BadRequest()); } var _FormFileBytes = _funFilesHelper.GetFormFileBytes(weArticle.WeArticleFormFile); var _FormFileSHA256HexString = _funFilesHelper.SHA256BytesToHexString( SHA256.Create().ComputeHash(_FormFileBytes) ); var WeEduHubFilesDirectoryInfo = new DirectoryInfo(_weEduHubHelper.WeEduHubFilesDirectoryPath(_webHostEnv)); if (WeEduHubFilesDirectoryInfo.GetFiles().ToList().Any(p => p.Name == _FormFileSHA256HexString)) { Console.WriteLine(_FormFileSHA256HexString); return(NotFound()); } weArticle.Id = Guid.NewGuid(); weArticle.AuthorUserId = _UserId; var _WeArticleFile = new WeArticleFile { DOUploading = DateTimeOffset.Now, Id = Guid.NewGuid(), Name = System.IO.Path.GetFileName(weArticle.WeArticleFormFile.FileName), UserId = _UserId, SHA256HexString = _FormFileSHA256HexString }; weArticle.WeArticleContentFileId = _WeArticleFile.Id; weArticle.DOPublishing = DateTimeOffset.Now; await _context.WeArticle.AddAsync(weArticle); await _context.WeArticleFile.AddAsync(_WeArticleFile); await System.IO.File.WriteAllBytesAsync( _weEduHubHelper.WeEduHubFilesDirectoryPath(_webHostEnv) + "/" + _FormFileSHA256HexString, _FormFileBytes ); await _context.SaveChangesAsync(); return(Content(Url.Action(nameof(Index), new{ weArticle.SetId }))); // RedirectToAction(nameof(Index),new{weArticle.SetId}); } return(View(weArticle)); }