public async Task <IActionResult> AddAddress(AddEmployeeAddressQuery query) { var queryExecutionResult = await _employeeService.HandleAsync(query); var vm = BuildNewAddressVm(queryExecutionResult.Result, new AddEmployeeAddressCommand()); return(View(vm)); }
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); }
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)))); }
private string AddAddressUri(AddEmployeeAddressQuery query) => Url.AppUri(nameof(AddAddress), nameof(EmployeeController), query);