public async Task <CreateLecturerResponse> Handle(CreateLecturerRequest request, CancellationToken cancellationToken) { var result = new CreateLecturerResponse(); try { // Validation if (!request.IsValid()) { result.ValidationResult = request.ValidationResult; return(await Task.FromResult(result)); } // Map Lecturer var lecturer = MapLecturer(request); //add lecturer to context repository _lecturerRepository.Create(lecturer); // persist data result.ValidationResult = await PersistData(_lecturerRepository.UnitOfWork); //Map return result.LecturerId = lecturer.Id; } catch (Exception ex) { _log.Error($"", JsonConvert.SerializeObject(ex)); result.ValidationResult.Errors.Add(new ValidationFailure(string.Empty, "An error has occurred please try again.")); } return(await Task.FromResult(result)); }