public void CleanUp(Character character)
        {
            //reset extensions
            character.ResetAllExtensions();

            //reset credit
            character.Credit = 0;

            //reset sparks
            _sparkHelper.ResetSparks(character);

            //remove scanresults
            var repo = new MineralScanResultRepository(character);

            repo.DeleteAll();

            //remove insurance
            InsuranceHelper.RemoveAll(character);

            //remove market orders
            _marketHelper.RemoveAll(character);

            Db.Query().CommandText("delete charactertransactions where characterid=@characterID").SetParameter("@characterID", character.Id).ExecuteNonQuery();

            Db.Query().CommandText("delete productionlog where characterid=@characterID").SetParameter("@characterID", character.Id).ExecuteNonQuery();

            Db.Query().CommandText("delete techtreeunlockednodes where owner=@eid").SetParameter("@eid", character.Eid).ExecuteNonQuery();

            Db.Query().CommandText("delete techtreelog where character=@characterID").SetParameter("@characterID", character.Id).ExecuteNonQuery();

            Db.Query().CommandText("delete techtreepoints where owner=@eid").SetParameter("@eid", character.Eid).ExecuteNonQuery();

            character.HomeBaseEid = null;

            //delete all items
            Db.Query().CommandText("delete entities where owner=@rootEid")
            .SetParameter("@rootEid", character.Eid)
            .ExecuteNonQuery();

            Transaction.Current.OnCommited(() =>
            {
                //stop productions
                ProductionAbort(character);
                //stop all missions
                MissionForceAbort(character);
            });

            //do/finish character wizard
        }