public ProjectModule(IDbContext dbContext, IProjectValidator projectValidator , ICreateProjectCommand createProjectCommand, IDeleteProjectCommand deleteProjectCommand , IProjectRepository projectRepo, ILogFileRepository logFileRepo, IRequestRepository requestRepo , IProjectRequestAggregateRepository projectRequestAggregateRepo) { _dbContext = dbContext; _projectValidator = projectValidator; _createProjectCommand = createProjectCommand; _deleteProjectCommand = deleteProjectCommand; _projectRepo = projectRepo; _logFileRepo = logFileRepo; _requestRepo = requestRepo; _projectRequestAggregateRepo = projectRequestAggregateRepo; Post[Actions.Project.Aggregates()] = x => { return(Aggregates(x.projectId)); }; Post[Actions.Project.Files()] = x => { return(Files(x.projectId)); }; Post[Actions.Project.AvgLoadTimes()] = x => { return(AvgLoadTimes(x.projectId)); }; Post[Actions.Project.Delete()] = x => { this.RequiresClaims(new[] { Claims.ProjectEdit }); return(DeleteProject(x.projectId)); }; Get[Actions.Project.RequestsByAggregate()] = x => { return(RequestsByAggregate(x.projectId)); }; Post[Actions.Project.RequestsByAggregateDetail()] = x => { return(RequestsByAggregateDetail(x.projectId)); }; Get[Actions.Project.View()] = x => { return(ProjectView(x.projectId)); }; Post[Actions.Project.Save] = x => { this.RequiresClaims(new[] { Claims.ProjectEdit }); return(ProjectSave()); }; }
public async Task <IActionResult> DeleteProjectAsync(int projectId, [FromServices] IDeleteProjectCommand command) { try { await command.ExecuteAsync(projectId); return(Ok("Успешно")); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void ProjectModuleTest_SetUp() { _dbContext = Substitute.For <IDbContext>(); _createProjectCommand = Substitute.For <ICreateProjectCommand>(); _deleteProjectCommand = Substitute.For <IDeleteProjectCommand>(); _projectValidator = Substitute.For <IProjectValidator>(); _projectRepo = Substitute.For <IProjectRepository>(); _logFileRepo = Substitute.For <ILogFileRepository>(); _requestRepo = Substitute.For <IRequestRepository>(); _projectRequestAggregateRepo = Substitute.For <IProjectRequestAggregateRepository>(); Mapper.Initialize((cfg) => { cfg.CreateMap <ProjectFormViewModel, ProjectModel>(); }); }
public async Task <IActionResult> DeleteProjectAsync(int projectId, [FromServices] IDeleteProjectCommand command) { try { if ((await _authorizationService.AuthorizeAsync(User, new Project(), Operations.Delete)).Succeeded) { string user = User.Identity.Name; await command.ExecuteAsync(projectId, user); return(NoContent()); } return(StatusCode(403, "Вы не можете удалить этот проект!")); } catch (CannotDeleteProjectWithTasksException ex) { return(BadRequest(ex.Message)); } catch (ProjectLockedException) { return(BadRequest("В данный момент удаление проекта невозможно!")); } }
public async Task <IActionResult> DeleteProjectAsync(int projectId, [FromBody] DeleteProjectRequest request, [FromServices] IDeleteProjectCommand command) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = await command.ExecuteAsync(projectId, request); if (!response) { return(NotFound()); } return(Ok()); }
public void DeleteProjectCommandTest_SetUp() { _dbContext = Substitute.For <IDbContext>(); _deleteProjectCommand = new DeleteProjectCommand(_dbContext); }
public IActionResult Delete(int id, [FromServices] IDeleteProjectCommand command) { _executor.ExecuteCommand(command, id); return(NoContent()); }