Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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;
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        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));
        }