public async Task <IActionResponse <PagedResult <Models.Country> > > Handle(CountryListQuery request, CancellationToken cancellationToken) { var response = new ActionResponse <PagedResult <Models.Country> > { Success = true, Data = new PagedResult <Models.Country>() }; var queryResult = await Task.Run(() => _countryService.FetchList(request)); response.MergeResponse(queryResult); Bus.RaiseOnResponse(response, $"Error During Country Query"); if (response.Success) { response.Data = queryResult.Data; } return(response); }
public async Task <IActionResponse <Models.Country> > Handle(UpdateCountryCommand request, CancellationToken cancellationToken) { var response = new ActionResponse <Models.Country> { Success = true }; if (!request.IsValid()) { NotifyValidationErrors(request); response.Success = false; request.ValidationResult.Errors.ToList().ForEach(e => response.ErrorMessages.Add(e.ErrorMessage)); return(response); } var existingCountry = _countryService.FetchSingle(request.Id); if (existingCountry.Data == null || existingCountry.Data.Id < 1) { var errorMessage = $"Country {request.EnglishName} ({request.Alpha3Code}) does not exist."; await Bus.RaiseEvent(new DomainNotification(EventType.Error, "Country Does Not Exist", errorMessage)); response.Success = false; response.ErrorMessages.Add(errorMessage); return(response); } var updateResponse = _countryService.Persist(new Models.Country(request)); response.MergeResponse(updateResponse); Bus.RaiseOnResponse(response, $"Error Updating Country {request.EnglishName} ({request.Alpha3Code})"); if (response.Success && Commit()) { response.Data = updateResponse.Data; await Bus.RaiseEvent(new CountryUpdatedEvent(response.Data)); } return(response); }