예제 #1
0
        public async Task <IActionResult> AddAddress(AddEmployeeAddressQuery query)
        {
            var queryExecutionResult = await _employeeService.HandleAsync(query);

            var vm = BuildNewAddressVm(queryExecutionResult.Result, new AddEmployeeAddressCommand());

            return(View(vm));
        }
예제 #2
0
        public async Task <QueryExecutionResult <EmployeeEntity> > HandleAsync(AddEmployeeAddressQuery query)
        {
            var employeeEntity = await _repository.FirstAsync(new EmployeeWithIdSpecification(query.EmployeeId));

            var queryExecutionResult = new QueryExecutionResult <EmployeeEntity>(employeeEntity);

            return(queryExecutionResult);
        }
예제 #3
0
        public async Task <IActionResult> AddAddress(
            AddEmployeeAddressQuery query,
            AddEmployeeAddressCommand command)
        {
            CommandExecutionResult cer = null;

            if (ModelState.IsValid == false ||
                (cer = await _employeeService.HandleAsync(command))?.HasError == true)
            {
                _builder.Property("error", "error", cer?.ErrorMessage);

                var queryExecutionResult = await _employeeService.HandleAsync(query);

                var vm = BuildNewAddressVm(queryExecutionResult.Result, command);

                return(PartialView(vm));
            }

            await _notificationService.HandleAsync(new CreateNotificationCommand(query.EmployeeId, "A new address is added to the employee address list."));

            return(Redirect(AddressesUri(new SearchEmployeeAddressQuery(query.EmployeeId))));
        }
예제 #4
0
 private string AddAddressUri(AddEmployeeAddressQuery query) => Url.AppUri(nameof(AddAddress), nameof(EmployeeController), query);