public async Task <ProjectDeleteResponse> DeleteProject(ProjectDeleteRequest request) { var response = new ProjectDeleteResponse(); var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId); if (!currentUser.IsAdmin) { response.SetInvalid(); return(response); } var project = await _projectRepository.Select(x => x.Uid == request.ProjectUid); if (project.IsNotExist()) { response.SetInvalid(); response.ErrorMessages.Add("project_not_found"); return(response); } if (project.OrganizationId != currentUser.OrganizationId) { response.SetFailed(); return(response); } if (await _organizationRepository.Any(x => x.Id == project.OrganizationId && !x.IsActive)) { response.SetInvalid(); return(response); } if (await _labelRepository.Any(x => x.ProjectId == project.Id)) { response.SetInvalid(); response.ErrorMessages.Add("has_children"); return(response); } var result = await _projectRepository.Delete(request.CurrentUserId, project.Id); if (result) { response.Status = ResponseStatus.Success; return(response); } var uowResult = await _projectUnitOfWork.DoDeleteWork(request.CurrentUserId, project); if (uowResult) { response.Status = ResponseStatus.Success; return(response); } response.SetFailed(); return(response); }
/// <summary> /// Delete - remove project (<see cref="https://github.com/onesky/api-documentation-platform/blob/master/resources/project.md#delete---remove-project"/>) /// </summary> public static ProjectDeleteResponse Delete(int projectId, APIConfiguration configuration = null) { string methodName = string.Format("projects/{0}", projectId); IRestResponse resp = APIBase.GetResponse<IRestResponse>(configuration, methodName, null, RestSharp.Method.DELETE); if (resp.StatusCode != System.Net.HttpStatusCode.OK) { throw new Exception("Failed to delete Project", new Exception(string.Format("Status: {0}", (int)resp.StatusCode))); } ProjectDeleteResponse respData = new ProjectDeleteResponse() { Meta = new Metadata() { Status = (int)resp.StatusCode } }; return respData; }
public ProjectDelete(ProjectDeleteRequest request) { if (request != null && request.Identifiers != null && request.Identifiers.Any()) { using (var dbContext = new ApplicationDbContext()) { var projectsToDelete = dbContext.Projects.Where(aProject => request.Identifiers.Contains(aProject.Identifier)); dbContext.Projects.RemoveRange(projectsToDelete); dbContext.SaveChanges(); } Response = new ProjectDeleteResponse(); } }
public IActionResult deleteInfoAboutProject(int id) { var response = new ProjectDeleteResponse(); var Project = new Project(); Project.AssociatedTasks = new List <Task>(); var cl = new HttpClient(); cl.BaseAddress = new Uri("http://*****:*****@id"; com.Parameters.AddWithValue("id", id); var dr = com.ExecuteReader(); if (!dr.Read()) { dr.Close(); transaction.Rollback(); return(BadRequest("Given project does not exist!")); } Project.IdProject = (int)dr[0]; Project.Name = dr[1].ToString(); Project.Deadline = (DateTime)dr[2]; com.Parameters.Clear(); dr.Close(); // add associated tasks to response com.CommandText = "select IdTask,Task.Name,Description,Deadline,TT.Name from Task join TaskType TT on Task.IdTaskType = TT.IdTaskType where IdProject =@id order by Task.Deadline desc;"; com.Parameters.AddWithValue("id", id); dr = com.ExecuteReader(); while (dr.Read()) { var Task = new Task(); Task.IdTask = (int)dr[0]; Task.Name = dr[1].ToString(); Task.Description = dr[2] as string; Task.Deadline = (DateTime)dr[3]; Task.TaskType = dr[4] as string; Project.AssociatedTasks.Add(Task); } com.Parameters.Clear(); dr.Close(); com.CommandText = "delete from Task where IdProject =@id;"; com.Parameters.AddWithValue("id", id); com.ExecuteNonQuery(); com.Parameters.Clear(); dr.Close(); com.CommandText = "delete from Project where IdProject =@id;"; com.Parameters.AddWithValue("id", id); com.ExecuteNonQuery(); transaction.Commit(); response.Project = Project; } return(Ok(response)); }