public void CreateCharacterProcess(ClientConnection connection, CharacterData info)
        {
            var characterData = info;

            using (var db = _gsDbFactory.OpenSession())
            {
                if (db.QueryOver <CharacterData>().Where(s => s.CharacterName == info.CharacterName).Take(1).SingleOrDefault() != null)
                {
                    new SMSG_CreateCharacterToFieldNak().Send(connection);

                    return;
                }

                using (var transaction = db.BeginTransaction())
                {
                    try
                    {
                        characterData.CharacterId  = _characterUidsFactory.Next();
                        characterData.Surname      = connection.Account.FamilyName;
                        characterData.Level        = 1;
                        characterData.CreationDate = DateTime.Now;
                        characterData.CreatedId    = 0; // for nhibernate driver

                        /* TEMP FIX UNTIL DATA IS FOUND AND LOADED */
                        switch (characterData.ClassType)
                        {
                        case ClassType.Warrior:
                            characterData.PositionX = -153728;
                            characterData.PositionY = 531;
                            characterData.PositionZ = 130574;
                            break;

                        case ClassType.Ranger:
                            characterData.PositionX = -138793;
                            characterData.PositionY = -1208;
                            characterData.PositionZ = 137342;
                            break;

                        case ClassType.Sorcerer:
                            characterData.PositionX = -135621;
                            characterData.PositionY = 802;
                            characterData.PositionZ = 107359;
                            break;

                        case ClassType.Giant:
                            characterData.PositionX = -120118;
                            characterData.PositionY = -1625;
                            characterData.PositionZ = 118794;
                            break;

                        case ClassType.Tamer:
                            characterData.PositionX = -159853;
                            characterData.PositionY = 2089;
                            characterData.PositionZ = 123726;
                            break;

                        case ClassType.BladeMaster:
                            characterData.PositionX = -154408;
                            characterData.PositionY = -335;
                            characterData.PositionZ = 135204;
                            break;

                        case ClassType.BladeMasterWomen:
                            characterData.PositionX = -154408;
                            characterData.PositionY = -335;
                            characterData.PositionZ = 135204;
                            break;

                        case ClassType.Valkyrie:
                            characterData.PositionX = -145479;
                            characterData.PositionY = 2185;
                            characterData.PositionZ = 110947;
                            break;

                        case ClassType.Kunoichi:
                            characterData.PositionX = -136152;
                            characterData.PositionY = -730;
                            characterData.PositionZ = 128869;
                            break;

                        case ClassType.Ninja:
                            characterData.PositionX = -136152;
                            characterData.PositionY = -730;
                            characterData.PositionZ = 128869;
                            break;

                        case ClassType.Wizard:
                            characterData.PositionX = -157013;
                            characterData.PositionY = 946;
                            characterData.PositionZ = 128052;
                            break;

                        case ClassType.WizardWomen:
                            characterData.PositionX = -157013;
                            characterData.PositionY = 946;
                            characterData.PositionZ = 128052;
                            break;
                        }

                        var inventory = InventoryStorage.GetDefault(characterData.ClassType);
                        foreach (var daoItem in inventory.Items.Select(item => new CharacterItem
                        {
                            CharacterId = characterData.CharacterId,
                            ItemId = item.Value.ItemId,
                            ItemUid = _itemsUidsFactory.Next(),
                            Slot = item.Key - 1,
                            Count = item.Value.Count,
                            StorageType = (int)((InventoryItem)item.Value).StorageType
                        }))
                        {
                            db.Save(daoItem);
                        }

                        db.Save(characterData);

                        connection.Characters.Add(characterData);

                        new SMSG_CreateCharacterToField(characterData).Send(connection, false);

                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        Log.Error($"Cannot create character\n{ex}");
                    }
                }
            }
        }