Beispiel #1
0
        public HttpResponseMessage DeleteIssue(int issueId)
        {
            ApiResult result;

            try
            {
                String locationName = "";
                var    images       = _imageRepository.GetImagesForIssue(issueId);
                if (images.Count > 0)
                {
                    int locationId = _issueRepository.GetLocationIdForIssue(issueId);
                    if (locationId == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Issue for image does not exists, or access denied"));
                    }

                    var location = _locationRepository.Get(locationId);
                    if (location == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Location not found"));
                    }

                    locationName = location.Name;
                }

                _issueRepository.Delete(issueId, User.Identity.Name);

                // delete images from disk
                foreach (var image in images)
                {
                    DeleteImageFile(locationName, image);
                }

                result = ApiResult.Success;
            }
            catch (LocationNotFoundException)
            {
                result = ApiResult.LocationNotFound;
            }
            catch (UserNotFoundException)
            {
                result = ApiResult.UserNotFound;
            }
            catch (UnauthorizedAccessException)
            {
                return(new HttpResponseMessage(HttpStatusCode.Unauthorized));
            }
            catch (IssueNotFoundException)
            {
                result = ApiResult.IssueNotFound;
            }
            catch (Exception)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, new ApiResponse {
                Result = result
            }));
        }
Beispiel #2
0
        public async Task <bool> DeleteIssueAsync(Guid issueId)
        {
            var issue = new Issue {
                Id = issueId
            };

            _issueRepository.Delete(issue);
            var deleted = await _issueRepository.SaveAsync().ConfigureAwait(false);

            return(deleted > 0);
        }
Beispiel #3
0
        public async Task <IActionResult> DeleteIssue(int issueId)
        {
            var userId      = userManager.GetUserId(User);
            var currentUser = await userManager.FindByIdAsync(userId);

            var userClaims = await userManager.GetClaimsAsync(currentUser);

            Global.globalCurrentUserClaims = userClaims.ToList();

            var issue = _issueRepository.Delete(issueId);

            return(RedirectToAction("ProjectIssues", "Project", new { projectId = issue.AssociatedProject }));
        }
        public ActionResult DeleteConfirmed(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Issue issue = repo.ReadOne(id);

            if (issue == null)
            {
                return(HttpNotFound());
            }
            repo.Delete(issue);
            return(RedirectToAction("Index"));
        }
Beispiel #5
0
        public async Task <IActionResult> Delete(int?issue)
        {
            if (!issue.HasValue)
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            //Remove issue
            var succeeded = await _issueRepository.Delete(issue.Value);

            if (!succeeded)
            {
                return(StatusCode(500, "A problem occured while removing the issue. Please try again!"));
            }

            return(Ok());
        }
Beispiel #6
0
 public IHttpActionResult Delete(int id)
 {
     _issueRepository.Delete(id);
     return(new StatusCodeResult(HttpStatusCode.NoContent, Request));
 }
Beispiel #7
0
 public async Task <IActionResult> DeleteIssueById(string id)
 {
     return(Ok(await _repository.Delete(id)));
 }
Beispiel #8
0
        public async Task <ActionResult> DeleteIssuesConfirmation([Bind(include: "selectedIssuesDelete")] ProjectManagementViewModel projectManagementViewModel)
        {
            Project       Project       = new Project();
            List <string> projectIssues = new List <string>();
            List <Issue>  IssueList     = new List <Issue>();
            string        ProjectIDCode = "";


            foreach (var issueSelected in projectManagementViewModel.selectedIssuesDelete)
            {
                Issue Issue = await _issueRepository.GetIssue(issueSelected);

                ProjectIDCode = Issue.ProjectIDCode;
                // Delete issue from project

                Project = await _projectRepository.GetProject(ProjectIDCode);

                projectIssues = Project.Issues;
                projectIssues.Remove(Issue.IDCode + ":" + Issue.Title);

                Project.Issues = projectIssues;

                await _projectRepository.Update(Project);


                // Delete issues from users

                if (Issue.Users != null)
                {
                    foreach (var user in Issue.Users)
                    {
                        User User = await _userRepository.GetUser(user);

                        if (User.Issues != null)
                        {
                            List <string> newIssueList = new List <string>();

                            foreach (var issue in User.Issues)
                            {
                                if (!(Issue.ProjectIDCode + "-" + issueSelected).Equals(issue.Split(':')[0]))
                                {
                                    newIssueList.Add(issue);
                                }
                                else
                                {
                                    IssueList.Add(await _issueRepository.GetIssue(issue.Split(':')[0].Replace("\"", "").Split('-')[1]));
                                }
                            }
                            User.Issues = newIssueList;
                        }
                        await _userRepository.Update(User);
                    }
                }
            }

            await _issueRepository.Delete(IssueList);



            return(RedirectToAction("Index", await _projectRepository.GetProject(ProjectIDCode)));
        }