public static CorporationDescription Get(long corporationEid)
        {
            const string selectCommandText = @"select name,taxrate,wallet,publicprofile,privateprofile,defaultcorp,nick,founder,creation,m.memberid,am.allianceEID,color from corporations c
                                               left join corporationmembers m on m.corporationeid=c.eid and (m.role & @ceorole) > 0
                                               left join alliancemembers am on am.corporationEID=c.eid
                                               where eid = @eid";

            var record = Db.Query().CommandText(selectCommandText)
                         .SetParameter("@ceorole", (int)CorporationRole.CEO)
                         .SetParameter("@eid", corporationEid)
                         .ExecuteSingleRow();

            if (record == null)
            {
                return(None);
            }

            var description = new CorporationDescription
            {
                eid     = corporationEid,
                name    = record.GetValue <string>(0),
                taxRate = record.GetValue <int>(1),
                wallet  = record.GetValue <double>(2),

                publicProfile  = null,
                privateProfile = null,

                isDefault   = record.GetValue <bool>(5),
                nick        = record.GetValue <string>(6),
                founder     = record.GetValue <int?>(7),
                creation    = record.GetValue <DateTime>(8),
                CEO         = Character.Get(record.GetValue <int>(9)),
                allianceEID = record.GetValue <long?>(10),
                color       = record.GetValue <int?>(11),
            };

            if (!record.IsDBNull(3))
            {
                description.publicProfile = new GenxyString(record.GetValue <string>(3)).ToDictionary();
            }

            if (!record.IsDBNull(4))
            {
                description.privateProfile = new GenxyString(record.GetValue <string>(4)).ToDictionary();
            }

            return(description);
        }
        public static PrivateCorporation Create(CorporationDescription corporationDescription)
        {
            var container = SystemContainer.GetByName(k.es_private_corporation);

            return((PrivateCorporation)Create(EntityDefault.GetByName(DefinitionNames.PRIVATE_CORPORATION), container, corporationDescription, EntityIDGenerator.Random));
        }
        protected static Corporation Create(EntityDefault entityDefault, SystemContainer container, CorporationDescription corporationDescription, EntityIDGenerator generator)
        {
            var corporation = Factory.Create(entityDefault, generator);

            corporation.Parent = container.Eid;
            corporation.Save();

            const string insertCommandText = @"insert into corporations (eid, name, nick, wallet, taxrate, publicProfile, privateProfile,defaultcorp, founder) 
                                                                 values (@eid, @name, @nick, @wallet, @taxrate, @publicProfile, @privateProfile,@defaultcorp,@founder)";

            Db.Query().CommandText(insertCommandText)
            .SetParameter("@eid", corporation.Eid)
            .SetParameter("@name", corporationDescription.name)
            .SetParameter("@nick", corporationDescription.nick)
            .SetParameter("@wallet", 0)
            .SetParameter("@taxrate", corporationDescription.taxRate)
            .SetParameter("@publicProfile", GenxyConverter.Serialize((Dictionary <string, object>)corporationDescription.publicProfile))
            .SetParameter("@privateProfile", GenxyConverter.Serialize((Dictionary <string, object>)corporationDescription.privateProfile))
            .SetParameter("@defaultCorp", corporationDescription.isDefault).SetParameter("@founder", corporationDescription.founder)
            .ExecuteNonQuery().ThrowIfEqual(0, ErrorCodes.SQLInsertError);

            return((Corporation)corporation);
        }