예제 #1
0
 private void Init()
 {
     resourceRead   = new ResourceRead(this);
     resourceUpdate = new ResourceUpdate(this);
 }
예제 #2
0
        public async Task <IActionResult> AddResource(int resourceType, string resourceUUID)
        {
            var(team, done) = await TestTeam();

            if (team == null)
            {
                return(NotFound());
            }

            if (done)
            {
                return(RedirectToAction("TimesUp"));
            }

            var validResource = (from res in _context.ItemsToBuys
                                 where res.Guid == resourceUUID
                                 select res).Count() == 1;

            if (!validResource)
            {
                return(RedirectToAction("Cheater"));
            }

            var rrs = (from readr in _context.ResourceReads
                       where readr.TeamID == team.TeamID && readr.ResourceUUID == resourceUUID && readr.ReadAt > DateTime.Now
                       select readr).Count();

            if (rrs > 0)
            {
                return(RedirectToAction("Cheater"));
            }
            var type = "";

            switch (resourceType)
            {
            case 0:
                team.Metal += 1;
                type        = "Metal";
                break;

            case 1:
                team.Wood += 1;
                type       = "Wood";
                break;

            case 2:
                team.Cloth += 1;
                type        = "Cloth";
                break;

            case 3:
                team.Plastic += 1;
                type          = "Plastic";
                break;

            default:
                break;
            }
            team.NumberOfActions += 1;
            var rr = new ResourceRead {
                ResourceUUID = resourceUUID, TeamID = team.TeamID, ReadAt = DateTime.Now.AddSeconds(30)
            };

            _context.ResourceReads.Add(rr);
            _context.Teams.Update(team);
            var logLine = new LogLine {
                LogTime = DateTime.Now, Message = $"{team.TeamName} add a resource of type {type}"
            };

            _context.Logs.Add(logLine);
            await _context.SaveChangesAsync();

            return(View(team));
        }