public ProjectInfo Get(int id)
        {
            ProjectInfo project = new ProjectInfo();

            project = ProjectBl.GetProjectById(id);
            return(project);
        }
        public async Task <IActionResult> ProjectDetails(int id)
        {
            if (id < 0)
            {
                return(NotFound());
            }

            return(View(await
                        ProjectBl.PrepareViewProjectDetails(id)));
        }
Esempio n. 3
0
        public JsonResult <IEnumerable <ProjectInfo> > Get()
        {
            ProjectInfo[] ListOfProjects = ProjectBl.GetAllProjects();

            var proj = from c in ListOfProjects
                       select c;


            return(Json(proj));
        }
 /// <summary>
 /// Defines user roles which can change project state.
 /// </summary>
 /// <param name="projectBl">Extends project business logic class.</param>
 /// <param name="role">Role of user in project.</param>
 /// <returns>Boolean value which points to possibility to change project state.</returns>
 public static bool CanChangeProject(this ProjectBl projectBl, AppUserRole role)
 {
     if (role.IsOwner())
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 5
0
 public async Task GetByIdAsync_Should_Fail_Access()
 {
     // Arrange
     mockProjRepo.Setup(repo => repo.GetByIdAsync(1)).ReturnsAsync(GetSampleProjects()[0]);
     mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(It.IsAny <string>(), It.IsAny <int>())).ReturnsAsync(AppUserRole.None);
     var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
     // Act
     var resultFromBl = projectBL.GetByIdAsync(It.IsAny <int>(), It.IsAny <string>());
     // Assert
     await Assert.ThrowsAsync <ForbiddenResponseException>(() => projectBL.GetByIdAsync(It.IsAny <int>(), It.IsAny <string>()));
 }
 /// <summary>
 /// Defines user roles which can view project data.
 /// </summary>
 /// <param name="projectBl">Extends project business logic class.</param>
 /// <param name="role">Role of user in project.</param>
 /// <returns>Boolean value which points to possibility to view project data.</returns>
 public static bool CanAccessProject(this ProjectBl projectBl, AppUserRole role)
 {
     if (role.IsScrumMaster() || role.IsOwner() ||
         role.IsDeveloper() || role.IsObserver())
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 7
0
 public HttpResponseMessage Post(ProjectInfo project)
 {
     try
     {
         ProjectBl.AddNewProject(project);
         return(new HttpResponseMessage(HttpStatusCode.OK));
     }
     catch (Exception ex)
     {
         return(new HttpResponseMessage(HttpStatusCode.BadRequest));
     }
 }
Esempio n. 8
0
        public async Task GetByIdAsync_Should_Throw_NotFoundResponseException(int projectId)
        {
            string userId = It.IsAny <string>();

            // Arrange
            mockProjRepo.Setup(repo => repo.GetByIdAsync(projectId)).ReturnsAsync(null as Project);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(userId, projectId)).ReturnsAsync(AppUserRole.Owner);
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var resultFromBl = projectBL.GetByIdAsync(projectId, userId);
            // Assert
            await Assert.ThrowsAsync <NotFoundResponseException>(() => projectBL.GetByIdAsync(projectId, userId));
        }
Esempio n. 9
0
        public void GetAllAsync_Should_Returns_AllProjects()
        {
            // Arrange
            mockProjRepo.Setup(repo => repo.GetAllAsync()).ReturnsAsync(GetSampleProjects());
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var resultFromBl = projectBL.GetAllAsync();
            // Assert
            var typeResult = Assert.IsType <Task <IEnumerable <ProjectDto> > >(resultFromBl);
            var model      = Assert.IsAssignableFrom <IEnumerable <ProjectDto> >(typeResult.Result);

            Assert.Equal(GetSampleProjects().Count, model.Count());
        }
Esempio n. 10
0
        public void GetByIdAsync_Should_Work_Can_Access(string userIdRole)
        {
            // Arrange
            mockProjRepo.Setup(repo => repo.GetByIdAsync(1)).ReturnsAsync(GetSampleProjects()[0]);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsObserver", It.IsAny <int>())).ReturnsAsync(AppUserRole.Observer);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsDeveloper", It.IsAny <int>())).ReturnsAsync(AppUserRole.Developer);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsScrumMaster", It.IsAny <int>())).ReturnsAsync(AppUserRole.ScrumMaster);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsOwner", It.IsAny <int>())).ReturnsAsync(AppUserRole.Owner);
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var resultFromBl = projectBL.GetByIdAsync(1, userIdRole);

            // Assert
            mockProjRepo.Verify(r => r.GetByIdAsync(1), Times.Once);
        }
Esempio n. 11
0
        public void DeleteAsync_Should_Not_Found(int projectId)
        {         // Arrange
            string userId = It.IsAny <string>();

            mockProjRepo.Setup(repo => repo.GetByIdAsync(projectId)).ReturnsAsync(null as Project);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(userId, projectId)).ReturnsAsync(AppUserRole.Owner);
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.DeleteAsync(projectId, userId);

            // Assert
            Assert.IsType <ProjectResponse>(result.Result);
            Assert.False(result.Result.Success);
            Assert.Equal("Project not found", result.Result.Message);
        }
 public ProjectController(
     ProjectDbContext context,
     ApplicationDbContext appcontext,
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     ILogger <AccountController> logger
     )
 {
     _context       = context;
     _appcontext    = appcontext;
     _userManager   = userManager;
     _signInManager = signInManager;
     _logger        = logger;
     ProjectBl.ProjectLayer(context, appcontext);
 }
Esempio n. 13
0
        public void Delete_Should_Call_Once_DeleteAsync_Into_Repository()
        {
            // Arrange
            mockProjRepo.Setup(repo => repo.GetByIdAsync(It.IsAny <int>())).ReturnsAsync(GetSampleProjects()[0]);
            mockProjRepo.Setup(repo => repo.DeleteAsync(It.IsAny <int>()));
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(It.IsAny <string>(), It.IsAny <int>())).ReturnsAsync(AppUserRole.Owner);

            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.DeleteAsync(It.IsAny <int>(), It.IsAny <string>());

            // Assert
            mockProjRepo.Verify(r => r.DeleteAsync(It.IsAny <int>()), Times.Once);
            Assert.IsType <ProjectResponse>(result.Result);
            Assert.True(result.Result.Success);
        }
Esempio n. 14
0
        public async Task Delete_Should_Fail_Only_Owner_Can_Delete(string userIdRole)
        {
            // Arrange
            mockProjRepo.Setup(repo => repo.GetByIdAsync(It.IsAny <int>())).ReturnsAsync(GetSampleProjects()[0]);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsObserver", It.IsAny <int>())).ReturnsAsync(AppUserRole.Observer);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsDeveloper", It.IsAny <int>())).ReturnsAsync(AppUserRole.Developer);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsScrumMaster", It.IsAny <int>())).ReturnsAsync(AppUserRole.ScrumMaster);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember("IsNone", It.IsAny <int>())).ReturnsAsync(AppUserRole.None);

            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.DeleteAsync(It.IsAny <int>(), userIdRole);

            // Assert
            mockProjRepo.Verify(r => r.DeleteAsync(It.IsAny <int>()), Times.Never);
            await Assert.ThrowsAsync <ForbiddenResponseException>(() => projectBL.DeleteAsync(It.IsAny <int>(), userIdRole));
        }
Esempio n. 15
0
        public void GetByIdAsync_Should_Call_Once_ReadAsync()
        {
            string userId    = It.IsAny <string>();
            int    projectId = 1;
            int    index     = projectId - 1;

            // Arrange
            mockProjRepo.Setup(repo => repo.GetByIdAsync(projectId)).ReturnsAsync(GetSampleProjects()[index]);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(userId, projectId)).ReturnsAsync(AppUserRole.Owner);
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var resultFromBl = projectBL.GetByIdAsync(projectId, userId);
            // Assert
            var typeResult = Assert.IsType <Task <ProjectDto> >(resultFromBl);

            mockProjRepo.Verify(r => r.GetByIdAsync(projectId), Times.Once);
        }
Esempio n. 16
0
        public void GetByIdAsync_Should_Return_The_Same_Resault()
        {
            // Arrange
            string userId    = It.IsAny <string>();
            int    projectId = 1;
            int    index     = projectId - 1;

            mockProjRepo.Setup(repo => repo.GetByIdAsync(projectId)).ReturnsAsync(GetSampleProjects()[index]);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(userId, projectId)).ReturnsAsync(AppUserRole.Owner);
            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var resultFromBl = projectBL.GetByIdAsync(projectId, userId);

            // Assert
            Assert.Equal(GetSampleProjects()[index].Id, resultFromBl.Result.Id);
            Assert.Equal(GetSampleProjects()[index].Name, resultFromBl.Result.Name);
            Assert.Equal(GetSampleProjects()[index].Description, resultFromBl.Result.Description);
        }
Esempio n. 17
0
        public void Update_Should_Call_Once_UpdateAsync()
        {
            // Arrange
            var projectDto = new ProjectDto {
                Id = 1, Name = "First Update", Description = "Some description for Project1"
            };

            mockProjRepo.Setup(repo => repo.GetByIdAsync(It.IsAny <int>())).ReturnsAsync(GetSampleProjects()[0]);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(It.IsAny <string>(), It.IsAny <int>())).ReturnsAsync(AppUserRole.Owner);

            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.UpdateAsync(projectDto, It.IsAny <string>());

            // Assert
            mockProjRepo.Verify(r => r.UpdateAsync(It.IsAny <Project>()), Times.Once);
            Assert.IsType <ProjectResponse>(result.Result);
            Assert.True(result.Result.Success);
        }
Esempio n. 18
0
        public void Create_Should_Call_Once_CreateAsync()
        {
            // Arrange
            var projectDto = new ProjectDto {
                Id = 1, Name = "Project 1", Description = "Some description"
            };

            mockProjRepo.Setup(repo => repo.CreateAsync(null as Project));
            mockSprintRepo.Setup(repo => repo.CreateAsync(null as Sprint));
            mockProjectUserRepo.Setup(repo => repo.CreateRecordAsync(null as ProjectUser));

            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.CreateAsync(projectDto, It.IsAny <string>());

            // Assert
            mockProjRepo.Verify(r => r.CreateAsync(It.IsAny <Project>()), Times.Once);
            Assert.IsType <ProjectResponse>(result.Result);
            Assert.True(result.Result.Success);
        }
Esempio n. 19
0
        public void Delete_Should_Work()
        {
            // Arrange
            var projectDto = new ProjectDto {
                Id = 1, Name = "Project for deleting", Description = "Some description for Project1"
            };
            Project project = mapper.Map <ProjectDto, Project>(projectDto);

            mockProjRepo.Setup(repo => repo.GetByIdAsync(It.IsAny <int>())).ReturnsAsync(project);
            mockProjectUserRepo.Setup(repo => repo.GetRoleOfMember(It.IsAny <string>(), It.IsAny <int>())).ReturnsAsync(AppUserRole.Owner);

            var projectBL = new ProjectBl(mockProjRepo.Object, mapper, mockProjectUserRepo.Object, mockSprintRepo.Object);
            // Act
            var result = projectBL.DeleteAsync(It.IsAny <int>(), It.IsAny <string>());

            // Assert
            Assert.IsType <ProjectResponse>(result.Result);
            Assert.True(result.Result.Success);
            Assert.Equal(projectDto.Name, result.Result.ProjectDTO.Name);
            Assert.Equal(projectDto.Description, result.Result.ProjectDTO.Description);
        }
Esempio n. 20
0
 public ProjectController(IProjectRepository repo)
 {
     _repo      = repo;
     _projectBl = new ProjectBl(repo);
 }
 public HttpResponseMessage Post(ProjectInfo project)
 {
     return(ProjectBl.UpdateProject(project));
 }
 public HttpResponseMessage Delete(int id, bool isOpen)
 {
     return(ProjectBl.SoftDeleteProject(id, isOpen));
 }