Example #1
0
        public async Task <IActionResult> OnPostReOpenAsync([FromRoute] Guid id, [FromServices] IHelpRequestService helpRequestService)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(RedirectToPage("/Error"));
            }

            Issue = await _context.Issues.FindAsync(id);

            if (Issue == null || user.Id != Issue.OwnerId)
            {
                return(RedirectToPage("/NotFound", new { message = "Your issue may have been removed or moved. Return home to view all your issues." }));
            }

            Issue.IsSolved = false;

            await _context.Entry(Issue).Collection(i => i.HelpRequests).LoadAsync();

            if (Issue.HelpRequests.Where(hr => hr.Status != HelpRequestStatus.Declined).Count() == 0)
            {
                await helpRequestService.RequestHelpAsync(Issue);
            }

            await _context.SaveChangesAsync();

            return(RedirectToPage("Single", new { id = id }));
        }
Example #2
0
        public async Task <IActionResult> OnPostMoreHelpAsync([FromRoute] Guid id, [FromServices] IHelpRequestService helpRequestService)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(RedirectToPage("/Error"));
            }

            Issue = await _context.Issues.FindAsync(id);

            if (Issue == null || user.Id != Issue.OwnerId)
            {
                return(RedirectToPage("/NotFound", new { message = "Your issue may have been removed or moved. Return home to view all your issues." }));
            }

            await helpRequestService.RequestHelpAsync(Issue);

            return(RedirectToPage("Single", new { id = id }));
        }
Example #3
0
        public async Task <IActionResult> OnPostAsync([FromRoute] Guid id)
        {
            if (id != Guid.Empty)
            {
                ParentTopic = await _context.Topics.FindAsync(id);

                if (ParentTopic == null)
                {
                    return(RedirectToPage("/NotFound", new { message = "We couldn't find the parent topic from your link. This may be because the topic has been deleted. You can use the topic search on the home page to try to find it again." }));
                }
            }

            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(RedirectToPage("/Error"));
            }

            NewIssue.OwnerId = user.Id;

            NewIssue.TopicId = id;

            _context.Issues.Add(NewIssue);

            await _context.SaveChangesAsync();

            await _helpRequestService.RequestHelpAsync(NewIssue);

            return(RedirectToPage("Single", new { Id = NewIssue.Id }));
        }