// DELETE: odata/Projects(5) public async Task <IHttpActionResult> Delete([FromODataUri] int key) { //Get access token to SharePoint string accessToken = await _tokenProvider.GetSharePointAccessToken(); if (accessToken == null) { throw new UnauthorizedAccessException(); } //Get project from SharePoint //string rootUri = Request.RequestUri.OriginalString.Substring(0, Request.RequestUri.OriginalString.IndexOf(Request.GetODataPath().Segments[0].ToString())); string eTag = Request.Headers.IfMatch.ToString(); Project project = await _repository.GetProject(accessToken, key, eTag); if (String.IsNullOrEmpty(eTag)) { eTag = "*"; } if (eTag == project.__eTag || eTag == "*") { if (await _repository.DeleteProject(accessToken, key, eTag)) { return(StatusCode(HttpStatusCode.NoContent)); } return(StatusCode(HttpStatusCode.InternalServerError)); } return(StatusCode(HttpStatusCode.Conflict)); }
public async Task <ActionResult <ProjectDto> > DeleteProject(string userid, string projectid) { if (!ExternalIdPassedGuidValidation(userid)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Invalid {nameof(userid)}.")); } if (!ExternalIdPassedGuidValidation(projectid)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Invalid {nameof(projectid)}.")); } Project project; try { project = await databaseRepository.GetProjectAsync(projectid); } catch (Exception ex) { return(StatusCode(StatusCodes.Status400BadRequest, ex.Message)); } if (!UserHaveAccessToProject(userid, project)) { return(StatusCode(StatusCodes.Status400BadRequest, $"Access denied to project with external id: {projectid}.")); } try { databaseRepository.DeleteProject(project); await mediator.Publish <ProjectDeletedMessage>(new ProjectDeletedMessage(projectid)); await databaseRepository.SaveChangesAsync(); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } ProjectDto projectDto; try { projectDto = mapper.Map <ProjectDto>(project); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(Ok(projectDto)); }
public ActionResult DeleteConfirmed(int id) { var userName = GetUserName(); Project project = _repository.GetProjectById(id); if (project.Client.ClientOwner.Equals(userName)) { _repository.DeleteProject(project); } return(RedirectToAction("Index")); }
public async Task <IActionResult> DeleteProject(long projectId) { if (!_projectsRepository.ProjectExists(projectId)) { return(NotFound()); } var projectEntity = await _projectsRepository.GetProjectByIdAsync(projectId); if (projectEntity == null) { return(NotFound()); } _projectsRepository.DeleteProject(projectEntity); if (!(await _projectsRepository.SaveChangesAsync())) { return(StatusCode(500, "A problem happened while handling your request.")); } return(NoContent()); }
public void DeleteProject(int id) { _projectRepo.DeleteProject(id); }
private void OnDeleteProject(Project project) { projectsRepository.DeleteProject(project); }