示例#1
0
        public async Task <ActionResult <DepartmentManagerDetail> > Post(DepartmentManagerDetail deptManagerCreateRequest)
        {
            VwDeptManagerCurrent vwDeptManagerCurrent =
                new VwDeptManagerCurrent {
                EmpNo    = deptManagerCreateRequest.EmpNo.Value,
                DeptNo   = deptManagerCreateRequest.DeptNo,
                FromDate = deptManagerCreateRequest.FromDate.Value,
                ToDate   = deptManagerCreateRequest.ToDate.Value,
            };
            ActionResult <VwDeptManagerCurrent> postResult = await _deptManagerCurrentRepository.PostAsync(vwDeptManagerCurrent);

            VwDeptManagerCurrent value    = postResult.Value;
            Employees            employee = await _employeeRepository.GetAsync(value.EmpNo.ToString());

            Departments department = await _departmentsRepository.GetAsync(value.DeptNo);

            var result = new DepartmentManagerDetail {
                DeptNo    = value.DeptNo,
                DeptName  = department.DeptName,
                FromDate  = value.FromDate,
                ToDate    = value.ToDate,
                EmpNo     = value.EmpNo,
                FirstName = employee.FirstName,
                LastName  = employee.LastName,
            };

            return(CreatedAtAction(
                       nameof(Post),
                       nameof(DeptManagerDetailController),
                       new { EmpNo = result.EmpNo, DeptNo = result.DeptNo },
                       result));
        }
示例#2
0
        public async Task <ActionResult <DepartmentManagerDetail> > Put(string id, DepartmentManagerDetail deptManagerUpdateRequest)
        {
            Departments departmentCheck = await _departmentsRepository.GetAsync(deptManagerUpdateRequest.DeptNo);

            if (departmentCheck == null)
            {
                return(NotFound());
            }
            Employees employeeCheck = await _employeeRepository.GetAsync(deptManagerUpdateRequest.EmpNo.Value.ToString());

            if (employeeCheck == null)
            {
                return(NotFound());
            }

            VwDeptManagerCurrent vwDeptManagerCurrent =
                new VwDeptManagerCurrent {
                EmpNo    = deptManagerUpdateRequest.EmpNo.Value,
                DeptNo   = deptManagerUpdateRequest.DeptNo,
                FromDate = deptManagerUpdateRequest.FromDate.Value,
                ToDate   = deptManagerUpdateRequest.ToDate.Value,
            };
            VwDeptManagerCurrent result = await _deptManagerCurrentRepository.PutAsync(id, vwDeptManagerCurrent);

            Employees employee = await _employeeRepository.GetAsync(result.EmpNo.ToString());

            Departments department = await _departmentsRepository.GetAsync(result.DeptNo);

            DepartmentManagerDetail updatedDepartmentManagerDetail =
                new DepartmentManagerDetail {
                DeptNo    = result.DeptNo,
                DeptName  = department.DeptName,
                FromDate  = result.FromDate,
                ToDate    = result.ToDate,
                EmpNo     = employee.EmpNo,
                FirstName = employee.FirstName,
                LastName  = employee.LastName,
            };

            return(updatedDepartmentManagerDetail);
        }
        public async void ShouldCreateDeptManagerDetailWithEmpNo()
        {
            // Arrange
            DepartmentManagerDetail departmentManagerDetailCreateRequest =
                new DepartmentManagerDetail {
                DeptNo    = deptNo,
                DeptName  = deptName,
                FromDate  = dateTime,
                ToDate    = dateTime,
                EmpNo     = managerEmpNo,
                FirstName = managerFirstName,
                LastName  = managerLastName
            };

            DepartmentManagerDetail expectedCreateResult =
                new DepartmentManagerDetail {
                DeptNo    = deptNo,
                DeptName  = deptName,
                FromDate  = dateTime,
                ToDate    = dateTime,
                EmpNo     = managerEmpNo,
                FirstName = managerFirstName,
                LastName  = managerLastName
            };

            VwDeptManagerCurrent vwDeptManagerCurrentUpdateResult =
                new VwDeptManagerCurrent {
                DeptNo   = deptNo,
                EmpNo    = managerEmpNo,
                FromDate = DateTime.Now,
                ToDate   = DateTime.Now,
            };

            mockDeptManagerCurrentRepository
            .Setup(x => x.PostAsync(
                       It.Is <VwDeptManagerCurrent>(i =>
                                                    i.DeptNo == departmentManagerDetailCreateRequest.DeptNo &&
                                                    i.EmpNo == departmentManagerDetailCreateRequest.EmpNo)
                       ))
            .ReturnsAsync(vwDeptManagerCurrentUpdateResult);
            mockEmployeeRepository
            .Setup(x => x.GetAsync(It.Is <string>(i => i == managerEmpNo.ToString())))
            .ReturnsAsync(new Employees {
                EmpNo     = managerEmpNo,
                BirthDate = DateTime.Now,
                FirstName = managerFirstName,
                LastName  = managerLastName
            });
            mockDepartmentsRepository
            .Setup(x => x.GetAsync(It.Is <string>(i => i == deptNo)))
            .ReturnsAsync(new Departments {
                DeptNo   = deptNo,
                DeptName = deptName
            });

            // Act
            ActionResult <DepartmentManagerDetail> postResult =
                await _controller.Post(departmentManagerDetailCreateRequest);

            CreatedAtActionResult   createdResult      = postResult.Result as CreatedAtActionResult;
            DepartmentManagerDetail createdDeptManager = createdResult.Value as DepartmentManagerDetail;

            // Assert
            Assert.NotNull(createdResult);
            Assert.Equal(201, createdResult.StatusCode);
            // Assert.NotEqual(createResult.EmpNo, employeeCreateRequest.EmpNo);
            Assert.Equal(expectedCreateResult.DeptNo, createdDeptManager.DeptNo);
            Assert.Equal(expectedCreateResult.EmpNo, createdDeptManager.EmpNo);
            // Assert.Equal(expectedCreateResult.FromDate, createdDeptManager.FromDate);
            // Assert.Equal(expectedCreateResult.ToDate, createdDeptManager.ToDate);
            Assert.Equal(expectedCreateResult.DeptName, createdDeptManager.DeptName);
            Assert.Equal(expectedCreateResult.LastName, createdDeptManager.LastName);
            Assert.Equal(expectedCreateResult.FirstName, createdDeptManager.FirstName);
        }
        public async void ShouldReturnNotFoudWhenUpdatingDeptManagerDetailWithInvalidEmpNo()
        {
            // Arrange
            DepartmentManagerDetail departmentManagerDetailUpdateRequest =
                new DepartmentManagerDetail {
                DeptNo    = deptNo,
                DeptName  = deptName,
                FromDate  = dateTime,
                ToDate    = dateTime,
                EmpNo     = invalidManagerEmpNo,
                FirstName = managerFirstName,
                LastName  = managerLastName
            };

            DepartmentManagerDetail expectedUpdateResult =
                new DepartmentManagerDetail {
                DeptNo    = newDeptNo,
                DeptName  = newDeptName,
                FromDate  = dateTime,
                ToDate    = dateTime,
                EmpNo     = newManagerEmpNo,
                FirstName = newManagerFirstName,
                LastName  = newManagerLastName
            };

            VwDeptManagerCurrent vwDeptManagerCurrentUpdateResult =
                new VwDeptManagerCurrent {
                DeptNo   = newDeptNo,
                EmpNo    = newManagerEmpNo,
                FromDate = DateTime.Now,
                ToDate   = DateTime.Now,
            };

            mockDeptManagerCurrentRepository
            .Setup(x => x.PutAsync(
                       It.Is <string>(i => i == deptNo),
                       It.Is <VwDeptManagerCurrent>(i =>
                                                    i.DeptNo == departmentManagerDetailUpdateRequest.DeptNo &&
                                                    i.EmpNo == departmentManagerDetailUpdateRequest.EmpNo)
                       ))
            .ReturnsAsync(vwDeptManagerCurrentUpdateResult);
            mockEmployeeRepository
            .Setup(x => x.GetAsync(It.Is <string>(i => i == newManagerEmpNo.ToString())))
            .ReturnsAsync(new Employees {
                EmpNo     = newManagerEmpNo,
                BirthDate = DateTime.Now,
                FirstName = newManagerFirstName,
                LastName  = newManagerLastName
            });
            mockDepartmentsRepository
            .Setup(x => x.GetAsync(It.Is <string>(i => i == newDeptNo)))
            .ReturnsAsync(new Departments {
                DeptNo   = newDeptNo,
                DeptName = newDeptName
            });

            // Act
            ActionResult <DepartmentManagerDetail> updateResult =
                await _controller.Put(deptNo, departmentManagerDetailUpdateRequest);

            NotFoundResult notFoundResult = updateResult.Result as NotFoundResult;

            // Assert
            Assert.NotNull(notFoundResult);
            Assert.Equal(404, notFoundResult.StatusCode);
        }