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; } }
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; } }