コード例 #1
0
ファイル: ProjectController.cs プロジェクト: Xeppit/curly.Api
        public async Task <IActionResult> Delete(string id)
        {
            var _request = new ProjectDeleteRequest(id);
            var _result  = await _mediator.Send(_request);

            return(_result.DeleteRecords > 0 ? (IActionResult)Ok(_result) : NotFound());
        }
コード例 #2
0
        public static ProjectDeleteRequest GetProjectDeleteRequest()
        {
            var project = GetOrganizationOneProjectOne();
            var request = new ProjectDeleteRequest(CurrentUserId, project.Uid);

            return(request);
        }
コード例 #3
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);
        }
コード例 #4
0
        public async Task <dynamic> DeleteAsync(Guid id, CancellationToken cancellationToken)
        {
            var request = new ProjectDeleteRequest()
            {
                Id = id
            };
            var result = await _mediator.Send(request, cancellationToken);

            return(new HRAssistActionResult(result));
        }
コード例 #5
0
ファイル: ProjectDelete.cs プロジェクト: Nyczuu/Keeper
        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();
            }
        }
コード例 #6
0
        public void DeleteProject(ProjectDeleteRequest request)
        {
            if (!CheckProject(request.id))
            {
                throw new NoSuchProjectException();
            }

            var taskId = GetTaskId(request.id);

            using (var connection = new SqlConnection(connectionString))
                using (var command = new SqlCommand())
                {
                    var tran = connection.BeginTransaction();

                    command.CommandText = "delete from project where idProject = @id";
                    command.Parameters.AddWithValue("id", request.id);

                    DeleteTask(taskId, connection);

                    tran.Commit();
                }
        }
コード例 #7
0
        public async Task <IActionResult> Delete(Guid id)
        {
            var projectUid = id;

            if (projectUid.IsEmptyGuid())
            {
                return(Forbid());
            }

            var request  = new ProjectDeleteRequest(CurrentUser.Id, projectUid);
            var response = await _projectService.DeleteProject(request);

            if (response.Status.IsNotSuccess)
            {
                return(Json(new CommonResult {
                    IsOk = false, Messages = response.ErrorMessages
                }));
            }

            CurrentUser.IsActionSucceed = true;
            return(Json(new CommonResult {
                IsOk = true
            }));
        }
コード例 #8
0
ファイル: Client.cs プロジェクト: Nyczuu/Keeper
 public ProjectDeleteResponse ProjectDelete(ProjectDeleteRequest request)
 => new ProjectDelete(request).Response;