public async Task <IActionResult> AddTaskFile(AddTaskFileViewModel model) { if (ModelState.IsValid) { var teacherID = Context.Users.FirstOrDefault(x => x.UserName == this.User.Identity.Name).Id; var task = Documentation.Tasks.FirstOrDefault(x => x.StTaskID == model.TaskID); if (task == null) { return(LocalRedirect(model.ReturnUrl)); } if (Files.StudentTaskFiles.Any(x => x.FileName == model.File.FileName && x.StTaskId == model.TaskID)) { ModelState.AddModelError("", "File with name " + model.File.FileName + " is alredy exist."); return(View(model)); } var directory = Directory.GetFiles(environment.ContentRootPath + @"/wwwroot/FileExtansions"); var ext = new String(model.File.FileName.TakeLast(model.File.FileName.Length - (model.File.FileName.LastIndexOf('.') == -1 ? model.File.FileName.Length : model.File.FileName.LastIndexOf('.')) - 1).ToArray()); if (!directory.Any(x => x == ("File" + ext + ".png"))) { ext = ""; } var File = new TaskFile() { FileName = model.File.FileName, FileExtansion = ext, StTaskId = model.TaskID, Description = model.Desription }; using (var reader = new BinaryReader(model.File.OpenReadStream())) { byte[] data = reader.ReadBytes((int)model.File.Length); File.FileSize = String.Format(new FileSizeFormatProvider(), "{0:fs}", data.LongLength); File.Value = data; } Files.AddFile(File); task.IsChecked = true; Documentation.AddAnswer( new Answer { AnswerDate = DateTime.Now, StTaskID = model.TaskID, UserID = teacherID, TextData = $"Adding file {File.FileName} to task." }); return(LocalRedirect(model.ReturnUrl)); } return(View(model)); }
public async Task <IActionResult> AddTaskFile(string returnUrl, int TaskID) { var task = Documentation.Tasks.FirstOrDefault(x => x.StTaskID == TaskID); if (task == null) { return(LocalRedirect(returnUrl)); } var model = new AddTaskFileViewModel { ReturnUrl = returnUrl, TaskID = TaskID }; return(View(model)); }
public async Task <IActionResult> AddTaskFile(string returnUrl, int TaskID) { var student = await Manager.FindByNameAsync(User.Identity.Name); var task = Docs.Tasks.FirstOrDefault(x => x.StTaskID == TaskID && x.UserID == student.Id); if (task == null) { return(LocalRedirect(returnUrl)); } var model = new AddTaskFileViewModel { ReturnUrl = returnUrl, TaskID = TaskID }; return(View(model)); }