Example #1
0
        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);
        }
Example #2
0
        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 }));
        }
Example #3
0
        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);
        }
Example #4
0
        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]));
        }