Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 public EventHandler(Plugin plugin)
 {
     this.plugin         = plugin;
     CustomPlayerManager = new CustomPlayerManager(plugin);
     LightControl        = new LightControl(plugin);
     Broadcasts          = new Broadcasts(plugin);
     ManualEndGame       = new ManualEndGame(plugin);
 }
Ejemplo n.º 3
0
 public override void Reset()
 {
     Broadcasts.Reset();
     Locations.Reset();
     Restrictions.Reset();
     Rewards.Reset();
     Rules.Reset();
     Sounds.Reset();
     SuddenDeath.Reset();
     Timing.Reset();
     Weather.Reset();
 }
Ejemplo n.º 4
0
 public override void Clear()
 {
     Broadcasts.Clear();
     Locations.Clear();
     Restrictions.Clear();
     Rewards.Clear();
     Rules.Clear();
     Sounds.Clear();
     SuddenDeath.Clear();
     Timing.Clear();
     Weather.Clear();
 }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
 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"));
        }
Ejemplo n.º 8
0
 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}"));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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");
            }
        }
Ejemplo n.º 12
0
        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;
            }
        }