public DevIssue CreateNewIssue(Citizen citizen, CreateIssueArgs args) { var issue = new DevIssue() { Content = args.Content, Day = GameHelper.CurrentDay, Name = args.Name, VisibilityOptionID = (int)VisibilityOptionEnum.Author, Time = DateTime.Now, CreatedByID = citizen.ID }; foreach (var file in args.UploadedFiles) { if (file == null) { continue; } var extension = Path.GetExtension(file.FileName).Replace(".", ""); var newFilename = GenerateFilenameForNewUpload(extension); var path = GetPathToUploadedFile(newFilename); Directory.CreateDirectory(Path.GetDirectoryName(path)); file.SaveAs(path); issue.DevIssueUploadedFiles.Add(new DevIssueUploadedFile() { Filename = newFilename, OriginalFilename = file.FileName }); } devIssueRepository.Add(issue); devIssueRepository.SaveChanges(); return(issue); }
public ActionResult CreateIssue(CreateIssueViewModel vm, List <HttpPostedFileBase> files) { var citizen = SessionHelper.LoggedCitizen; var args = new CreateIssueArgs() { Content = vm.Content, Name = vm.Name, VisibilityOption = VisibilityOptionEnum.Moderators, UploadedFiles = files.ToList() }; var result = devIssueService.CanCreateNewIssue(citizen, args); if (result.IsError) { AddError(result); return(View(vm)); } var issue = devIssueService.CreateNewIssue(citizen, args); AddSuccess("Issue created!"); return(RedirectToAction(nameof(this.ViewIssue), new { issueID = issue.ID })); }
public MethodResult CanCreateNewIssue(Citizen citizen, CreateIssueArgs args) { if (citizen == null) { return(new MethodResult("You do not exist!")); } if (string.IsNullOrWhiteSpace(args.Name)) { return(new MethodResult("Name cannot be empty!")); } foreach (var file in args.UploadedFiles) { try { if (file == null) { continue; } bool allowed = false; foreach (var ext in AllowedExtensions) { if (file.FileName.EndsWith(ext)) { allowed = true; break; } } if (allowed == false) { return(new MethodResult($"File {file.FileName} have wrong extension!")); } if (file.ContentLength > 5_000_000) { return(new MethodResult("File is too big! Maximum 5MB")); } } catch { return(new MethodResult("There was error during an upload")); } } return(MethodResult.Success); }
public string MRWebServices__createIssue(string usr, string pw, string extraInfo, CreateIssueArgs args) { object[] results = this.Invoke( "MRWebServices__createIssue", new object[] { usr, pw, extraInfo, args }); return((string)(results[0])); }