private bool ValidateAndCommit()
        {
            var checkables = TransactionalChangeHandler.GetCheckables(unitOfWork);

            if (TransactionalChangeHandler.Validate(checkables) == false)
            {
                return(false);
            }

            var relatedRooms = checkables.
                               OfType <RoomBooking>().
                               Where(rb => rb.Room != null).
                               Select(rb => rb.Room);

            var relatedRoomResults = DemoDatabase.BizRulezChecker.Check("save", relatedRooms).ToList();

            if (relatedRoomResults.Count > 0)
            {
                XtraMessageBox.Show("There have been errors during data validation.");
                return(false);
            }

            unitOfWork.CommitChanges();
            return(true);
        }