Пример #1
0
        public async Task ShouldAdd_EmployeeAddress_UsingEmployeeAggregate()
        {
            EditEmployeeInfo employee = GetEmployeeInfoForEditing();

            EditEmployeeAddressInfo newAddress = new EditEmployeeAddressInfo
            {
                AddressId    = 0,
                EmployeeId   = employee.Id,
                AddressLine1 = "32145 Main Street",
                AddressLine2 = "3rd Floor",
                City         = "Dallas",
                StateCode    = "TX",
                Zipcode      = "75021",
                Status       = RecordStatus.New
            };

            employee.Addresses.Add(newAddress);
            await _employeeCmdHdlr.Handle(employee);

            Employee result = await _dbContext.Employees.FindAsync(employee.Id);

            var found = (from item in result.Addresses()
                         where item.AddressDetails.AddressLine1.Equals(newAddress.AddressLine1) &&
                         item.AddressDetails.AddressLine2.Equals(newAddress.AddressLine2) &&
                         item.AddressDetails.City.Equals(newAddress.City) &&
                         item.AddressDetails.StateCode.Equals(newAddress.StateCode) &&
                         item.AddressDetails.Zipcode.Equals(newAddress.Zipcode)
                         select item).SingleOrDefault();

            Assert.NotNull(found);
        }
Пример #2
0
        public async Task <IActionResult> EditEmployeeAddressInfo([FromBody] EditEmployeeAddressInfo writeModel)
        {
            try
            {
                await _employeeCmdHdlr.Handle(writeModel);

                return(Ok());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest(ex.Message));
            }
        }
Пример #3
0
        private EditEmployeeInfo GetEmployeeInfoForEditing()
        {
            Guid empID = new Guid("4b900a74-e2d9-4837-b9a4-9e828752716e");

            EditEmployeeInfo employeeInfo = new EditEmployeeInfo
            {
                Id            = empID,
                SupervisorId  = empID,
                LastName      = "Sanchez",
                FirstName     = "Ken",
                MiddleInitial = "J",
                SSN           = "123789999",
                Telephone     = "817-987-1234",
                MaritalStatus = "M",
                Exemptions    = 5,
                PayRate       = 40.00M,
                StartDate     = new DateTime(1998, 12, 2),
                IsActive      = true
            };

            EditEmployeeAddressInfo addressInfo1 = new EditEmployeeAddressInfo
            {
                AddressId    = 1,
                EmployeeId   = empID,
                AddressLine1 = "321 Tarrant Pl",
                City         = "Fort Worth",
                StateCode    = "TX",
                Zipcode      = "78965"
            };

            EditEmployeeAddressInfo addressInfo2 = new EditEmployeeAddressInfo
            {
                AddressId    = 2,
                EmployeeId   = empID,
                AddressLine1 = "1 Desoto Plaza",
                AddressLine2 = "1st Floor",
                City         = "Desoto",
                StateCode    = "TX",
                Zipcode      = "75115"
            };

            employeeInfo.Addresses.Add(addressInfo1);
            employeeInfo.Addresses.Add(addressInfo2);

            return(employeeInfo);
        }
Пример #4
0
        public async Task ShouldDelete_EmployeeAddress_UsingEmployeeAggregate()
        {
            EditEmployeeInfo        employee = GetEmployeeInfoForEditing();
            EditEmployeeAddressInfo address  = employee.Addresses.Where(a => a.AddressId == 1).FirstOrDefault();

            address.Status = RecordStatus.Deleted;

            await _employeeCmdHdlr.Handle(employee);

            Employee result = await _dbContext.Employees.FindAsync(employee.Id);

            var found = (from item in result.Addresses()
                         where item.Id.Equals(address.AddressId)
                         select item).SingleOrDefault();

            Assert.Null(found);
        }