public async Task <Result <AddPersonOccupationLevelResponse> > Handle(PersonOccupationLevelCommand request, CancellationToken cancellationToken) { try { RegisterPersonService sc = new RegisterPersonService(_unitOfWork); if (request.PersonId > 0) { PersonOccupation pmo = new PersonOccupation(); pmo = await Task.Run(() => sc.GetCurrentOccupation(request.PersonId)); if (pmo != null) { pmo.DeleteFlag = true; var pm = await Task.Run(() => sc.UpdateOccupation(pmo)); // var AddedPersonOcc = await Task.Run(() => sc.AddPersonOccupation(request.PersonId, request.UserId, request.Occupation)); if (pm != null) { msg = "PersonOccupation Updated successfully"; } } else { var AddedPersonOcc = await Task.Run(() => sc.AddPersonOccupation(request.PersonId, request.UserId, request.Occupation)); if (AddedPersonOcc != null) { msg = "PersonOccupation Added successfully for personId" + request.PersonId; } } } return(Result <AddPersonOccupationLevelResponse> .Valid(new AddPersonOccupationLevelResponse() { Message = msg })); } catch (Exception e) { return(Result <AddPersonOccupationLevelResponse> .Invalid(e.Message)); } }