public bool Create(Structures.CreateGuildInfo info, bool save)
        {
            //if (_data != null) return false;

            _members = new List <MemberInfo>();
            _allies  = new uint[5];
            _enemies = new uint[5];

            _data = save ? new DbGuild {
                Id = 0
            } : ServerDatabase.Context.Guilds.GetById(info.GuildId);

            _data.Id         = info.GuildId;
            _data.Name       = info.Name;
            _data.Announce   = string.Empty;
            _data.LeaderId   = info.LeaderId;
            _data.LeaderName = info.LeaderName;
            _data.Money      = info.Money;

            _data.Amount = 0;     //info.DeleteFlag ? 0 : 1;

            if (save)
            {
                ServerDatabase.Context.Guilds.AddOrUpdate(_data);
                return(true);
            }

            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a new <see cref="Structures.Guild"/> from the <paramref name="info"/> provided.
        /// </summary>
        /// <returns>The id of the new guild</returns>
        public static uint CreateGuild(Structures.CreateGuildInfo info)
        {
            var dbGuild = new DbGuild
            {
                Name       = info.Name,
                Announce   = string.Empty,
                LeaderId   = info.LeaderId,
                LeaderName = info.LeaderName,
                Money      = info.Money
            };

            try
            {
                ServerDatabase.Context.Guilds.Add(dbGuild);
            }
            catch (Exception)
            {
                return(0);
            }
            info.GuildId = dbGuild.Id;

            if (GetGuild(info.GuildId) != null)
            {
                return(info.GuildId);
            }

            var guild = new Structures.Guild();

            if (guild.Create(info, true))
            {
                _guilds.Add(guild.Id, guild);

                var leader = PlayerManager.GetUser(info.LeaderId);
                if (leader != null)
                {
                    leader.GuildAttribute.Rank = GuildRank.GuildLeader;
                }
            }

            return(dbGuild.Id);
        }