コード例 #1
0
        public ListMessageResult ListMessages(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate())
                    return null;

                using (var db = new CSSDataContext())
                {
                    var messages = new List<IMessage>();
                    messages.AddRange(GroupMessage.GetGroupMessages(db, data.Username));
                    messages.AddRange(PersonalMessage.GetPrivateMessages(db, data.Username));
                    messages.AddRange(GroupMessage.GetGlobalMessages(db, data.Username));

                    //Re-insert messages into list since windows services
                    //don't seem to be able to handle objects wrapped in a baseclass.
                    //var result = messages
                    //    .OrderByDescending(p => p.DateToSend)
                    //    .Select(p => new BaseMessage()
                    //{
                    //    Id = p.Id,
                    //    Sender = p.Sender,
                    //    Subject = p.Subject,
                    //    Message = p.Message,
                    //    DateCreated = p.DateToSend,     //User doesn't actually have to know the date the message was created - only sent.
                    //    DateToSend = p.DateToSend,
                    //    DateExpires = p.DateExpires,
                    //}).ToList();

                    //return result;

                    ListMessageResult returnValue = new ListMessageResult();
                    returnValue.Messages = new List<ListMessageResult.ListMessage>();
                    messages.ForEach(p => returnValue.Messages.Add(new ListMessageResult.ListMessage()
                    {
                        DateCreated = p.DateCreated,
                        DateExpires = p.DateExpires,
                        DateToSend = p.DateToSend,
                        Id = p.Id,
                        Sender = p.Sender,
                        Subject = p.Subject,
                        Message = p.Message
                    }));

                    return returnValue;
                }
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
        public List<Ban> ListBans(AuthenticatedData data, string alias)
        {
            try
            {
                if (!data.Authenticate(RoleType.Moderator, RoleType.ZoneLeader, RoleType.Administrator, RoleType.SuperAdministrator))
                    throw new AuthenticationException();

                return BanData.ListBans(alias);
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
コード例 #3
0
        public List<Poll> ListPolls(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate())
                    return null;

                return Poll.FindActivePolls(data.Username);
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
        public List<BanType> ListInfractionTypes(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate(RoleType.Administrator, RoleType.ZoneLeader, RoleType.Moderator, RoleType.SuperAdministrator))
                    throw new AuthenticationException();

                using (var db = new CSSDataContext())
                {
                    return db.BanTypes.ToList();
                }
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
        public List<Alias> ListAliases(AuthenticatedData data, string alias)
        {
            try
            {
                if (!data.Authenticate(RoleType.Administrator, RoleType.ZoneLeader, RoleType.SuperAdministrator))
                    throw new AuthenticationException();

                using (var db = new CSSDataContext())
                {
                    return Alias.ListAliases(db, alias);
                }
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
        public void Logout(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate())
                    return;

                Validation.EndSession(data.Username, data.Password);
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }
        public ListAliasesResult ListAliases(AuthenticatedData data)
        {
            try
            {
                if (!data.Authenticate())
                    return null;

                ListAliasesResult result = new ListAliasesResult();

                using (var db = new CSSDataContext())
                {
                    result.Aliases = Alias.ListDecoratedAliases(db, data.Username, true);

                    result.AvailableAliasCount = Alias.GetAliasCount(db, data.Username);
                }

                return result;
            }
            catch (Exception error)
            {
                Error.Write(error);
                throw;
            }
        }