public void AddSyndicate(Character pSender, MsgSynRecuitAdvertising pMsg) { if (pSender == null || pSender.Syndicate == null) { return; } string szMessage = pMsg.Description; if (pSender.SyndicateRank != SyndicateRank.GUILD_LEADER) { return; } if (szMessage.Length > 255) { szMessage = szMessage.Substring(0, 255); } if (m_pSyndicateAdvertisings.Values.FirstOrDefault(x => x.SyndicateIdentity == pSender.SyndicateIdentity) != null) { EditSyndicate(pSender, pMsg); return; } if (pMsg.LevelRequirement <= 0) { pMsg.LevelRequirement = 1; } if (pSender.Syndicate.SilverDonation < pMsg.Amount) { pSender.Send(ServerString.STR_SYNRECRUIT_NOT_ENOUGH_MONEY); return; } if (pMsg.Amount < _MIN_MONEY_AMOUNT) { pSender.Send(ServerString.STR_SYNRECRUIT_NOT_ENOUGH_DONATION); return; } pSender.Syndicate.ChangeFunds((int)pMsg.Amount * -1); DbSyndicateAdvertising dbSyn = new DbSyndicateAdvertising { AutoRecruit = (byte)(pMsg.IsAutoRecruit ? 1 : 0), Donation = (uint)pMsg.Amount, Message = szMessage, RequiredLevel = pMsg.LevelRequirement, RequiredMetempsychosis = pMsg.RebornRequirement, RequiredProfession = pMsg.ProfessionForbid, SyndicateIdentity = pSender.SyndicateIdentity, SyndicateName = pSender.SyndicateName, Timestamp = (uint)UnixTimestamp.Timestamp() }; if (m_pRepo.SaveOrUpdate(dbSyn)) { m_pSyndicateAdvertisings.TryAdd(dbSyn.SyndicateIdentity, dbSyn); } else { pSender.Send("Oops! Something went wrong."); } }
private bool IsValid(DbSyndicateAdvertising pSyn) { return(pSyn.Timestamp + 60 * 60 * 24 * 7 > UnixTimestamp.Timestamp()); }