public override void Serialize(GenericWriter writer) { base.Serialize(writer); var version = writer.SetVersion(1); switch (version) { case 1: writer.WriteBlock(w => w.WriteType(Missions, t => Missions.Serialize(w))); goto case 0; case 0: { writer.WriteBlock(w => w.WriteType(Broadcasts, t => Broadcasts.Serialize(w))); writer.WriteBlock(w => w.WriteType(Locations, t => Locations.Serialize(w))); writer.WriteBlock(w => w.WriteType(Restrictions, t => Restrictions.Serialize(w))); writer.WriteBlock(w => w.WriteType(Rewards, t => Rewards.Serialize(w))); writer.WriteBlock(w => w.WriteType(Rules, t => Rules.Serialize(w))); writer.WriteBlock(w => w.WriteType(Sounds, t => Sounds.Serialize(w))); writer.WriteBlock(w => w.WriteType(SuddenDeath, t => SuddenDeath.Serialize(w))); writer.WriteBlock(w => w.WriteType(Timing, t => Timing.Serialize(w))); writer.WriteBlock(w => w.WriteType(Weather, t => Weather.Serialize(w))); } break; } }
public EventHandler(Plugin plugin) { this.plugin = plugin; CustomPlayerManager = new CustomPlayerManager(plugin); LightControl = new LightControl(plugin); Broadcasts = new Broadcasts(plugin); ManualEndGame = new ManualEndGame(plugin); }
public override void Reset() { Broadcasts.Reset(); Locations.Reset(); Restrictions.Reset(); Rewards.Reset(); Rules.Reset(); Sounds.Reset(); SuddenDeath.Reset(); Timing.Reset(); Weather.Reset(); }
public override void Clear() { Broadcasts.Clear(); Locations.Clear(); Restrictions.Clear(); Rewards.Clear(); Rules.Clear(); Sounds.Clear(); SuddenDeath.Clear(); Timing.Clear(); Weather.Clear(); }
public static string[] GetBroadcastMsgs(ref long revision) { if (Broadcasts.Count == 0) { return(new string[0]); } var rev = revision; var result = Broadcasts.Where(pair => pair.Key > rev).ToArray(); revision = result.LastOrDefault().Key; return(result.Select(pair => pair.Value).ToArray()); }
public bool RemoveBroadcast(BroadcastToken broadcastToken) { if (broadcastToken == null) { throw new ArgumentNullException(nameof(broadcastToken)); } if (Broadcasts.Contains(broadcastToken)) { Broadcasts.Remove(broadcastToken); return(true); } return(false); }
public IActionResult AddBroadcast(PublishBroadcastViewModel vm) { if (!_auth.Authorise(RolesEnum.Admin, _context)) // Authenticate the user { Redirect("~/Project/Dashboard"); } if (!_context.Broadcasts.Any(b => b.BroadcastId == vm.UpdateId)) // If there isn't a broadcast with that id { return(RedirectToAction("Publish")); // Kick back to publish page } // If The update id is null if (vm.UpdateId == null) { // Create new broadcast var userId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId; // create a new broadcast var newBroadcast = new Broadcasts() { Body = vm.Body, Title = vm.Title, UserId = userId }; // add the new broadcast to the database _context.Broadcasts.Add(newBroadcast); } else { // Update existing broadcast if (vm.Title != null) { _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).Title = vm.Title; } if (vm.Body != null) { _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).Body = vm.Body; } _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).UserId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId; } // Save changes to the database _context.SaveChanges(); // Return to the list view return(RedirectToAction("List")); }
public bool AddBroadcast(BroadcastToken broadcastToken) { if (broadcastToken == null) { throw new ArgumentNullException(nameof(broadcastToken)); } if (!Broadcasts.Contains(broadcastToken)) { broadcastToken.Event += Broadcast; Broadcasts.Add(broadcastToken); return(true); } return(false); }
public IActionResult BookHours(ViewProjectViewModel vm, int id) { // create a new record and fill out fields var rec = new ProjectMinutesBooked(); rec.UserId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId; rec.ProjectId = id; rec.AmountOfMinutes = (vm.HoursBooked * 60) + vm.MinutesBooked; rec.DateOfBooking = DateTime.Now; // Add minutes to the project _context.Projects.First(p => p.ProjectId == id).CurrentUsedMinutes += rec.AmountOfMinutes; // Add the record _context.ProjectMinutesBooked.Add(rec); // Get the project record var proj = _context.Projects.First(p => p.ProjectId == id); // If over budget if (proj.CurrentUsedMinutes > proj.MaximumMinutes) { // Generate an automatic broadcast var broadcastTitle = $"Project: {proj.ProjectName}, has run over-budget."; // Check there isn't already a broadcast with the automatic broadcast signature if (!_context.Broadcasts.Any(b => b.Title == broadcastTitle)) { // Create a new broadcast var broadcast = new Broadcasts(); broadcast.Title = broadcastTitle; broadcast.Body = "This project has gone over the maximum amount of hours that was budgeted. Project is being locked."; broadcast.UserId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId; // Add broadcast to the database _context.Broadcasts.Add(broadcast); // Lock the project _context.Projects.First(p => p.ProjectId == id).Locked = true; } } // Save the changes to the database _context.SaveChanges(); // Kick back to the project page return(Redirect($"~/Project/Project/{id}")); }
public bool RemoveBroadcast(string broadcastName) { if (broadcastName == null) { throw new ArgumentNullException(nameof(broadcastName)); } else if (string.IsNullOrWhiteSpace(broadcastName)) { throw new ArgumentException("Argument may not be empty or contain only white space.", nameof(broadcastName)); } var broadcastToken = Broadcasts.FirstOrDefault(x => x.BroadcastName.Equals(broadcastName)); if (broadcastToken != null) { return(RemoveBroadcast(broadcastToken)); } return(false); }
static void Main(string[] args) { var input = Console.ReadLine(); var broadcasts = new List <Broadcasts>(); var messages = new List <Messages>(); while (input != "Hornet is Green") { var broadcastpattern = new Regex(@"^(\D+) \<\-\> ([a-zA-Z0-9]+)$"); if (broadcastpattern.IsMatch(input)) { var broadcastMatches = broadcastpattern.Matches(input); foreach (Match match in broadcastMatches) { var info = Regex.Split(input, @"\s<->\s").ToList(); var nums = info[1].Trim().ToCharArray(); var name = info[0].Trim(); var list = new List <char>(); for (int i = 0; i < nums.Length; i++) { if (char.IsLetter(nums[i])) { if (char.IsUpper(nums[i])) { nums[i] = char.ToLower(nums[i]); } else { nums[i] = char.ToUpper(nums[i]); } } list.Add(nums[i]); } string numsSting = string.Join("", list); var broadcast = new Broadcasts() { Name = name, Nums = numsSting }; broadcasts.Add(broadcast); } } var messagepattern = new Regex(@"^(\d+) \<\-\> ([a-zA-Z0-9]+)$"); if (messagepattern.IsMatch(input)) { var messageMatches = messagepattern.Matches(input); foreach (Match match in messageMatches) { var info = Regex.Split(input, @"\s<->\s").ToList(); var nums = info[0].Trim().ToCharArray(); var listnums = new List <char>(); for (int i = nums.Length - 1; i >= 0; i--) { listnums.Add(nums[i]); } string numss = string.Join("", listnums); var name = info[1].Trim(); var message = new Messages() { Name = name, Nums = numss }; messages.Add(message); } } input = Console.ReadLine(); } Console.WriteLine("Broadcasts:"); if (broadcasts.Count > 0) { foreach (var broadcast in broadcasts) { Console.WriteLine($"{broadcast.Nums} -> {broadcast.Name}"); } } else { Console.WriteLine("None"); } Console.WriteLine("Messages:"); if (messages.Count > 0) { foreach (var message in messages) { Console.WriteLine($"{message.Nums} -> {message.Name}"); } } else { Console.WriteLine("None"); } }
public override void Serialize(GenericWriter writer) { base.Serialize(writer); int version = writer.SetVersion(0); switch (version) { case 0: { writer.WriteBlock( () => writer.WriteType( Broadcasts, t => { if (t != null) { Broadcasts.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Locations, t => { if (t != null) { Locations.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Restrictions, t => { if (t != null) { Restrictions.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Rewards, t => { if (t != null) { Rewards.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Rules, t => { if (t != null) { Rules.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Sounds, t => { if (t != null) { Sounds.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( SuddenDeath, t => { if (t != null) { SuddenDeath.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Timing, t => { if (t != null) { Timing.Serialize(writer); } })); writer.WriteBlock( () => writer.WriteType( Weather, t => { if (t != null) { Weather.Serialize(writer); } })); } break; } }