public IHttpActionResult PutIntelRequest(string id, IntelRequest intelRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != intelRequest.IntelRequestID)
            {
                return(BadRequest());
            }

            db.Entry(intelRequest).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!IntelRequestExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #2
0
        private void RequestHandler(byte[] data)
        {
            var request = AbathurRequest.Parser.ParseFrom(data);

            if (request.Intel != null)
            {
                _intelSettings = request.Intel;
            }
            foreach (var combatRequest in request.Combat)
            {
                _combatService.Execute(combatRequest);
            }
            foreach (var productionRequest in request.Production)
            {
                _productionService.Execute(productionRequest);
            }
            if (request.Raw != null)
            {
                _rawService.Execute(request.Raw);
            }
            if (_marker != null)
            {
                _marker.RunSynchronously();
            }
        }
        public IHttpActionResult DeleteIntelRequest(string id)
        {
            IntelRequest intelRequest = db.IntelRequests.Find(id);

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

            //Update status to be canceled
            intelRequest.IntelReqStatus = new List <IntelReqStatu>
            {
                new IntelReqStatu
                {
                    IntelRequestID = intelRequest.IntelRequestID,
                    Status         = 5, // Canceled
                    StatusDateTime = DateTime.Now
                }
            };

            db.Entry(intelRequest).State = EntityState.Modified;
            db.SaveChanges();

            return(Ok(intelRequest));
        }
        private IHttpActionResult UpdateIntelRequestWithCollectionPlan(string intelReqId, int?statusId, bool?isInCollectionPlan = null)
        {
            IntelRequest intelRequest = db.IntelRequests.Find(intelReqId);

            intelRequest.IsInCollectionPlan = isInCollectionPlan ?? intelRequest.IsInCollectionPlan;
            intelRequest.StatusId           = statusId ?? intelRequest.StatusId;
            return(this.PutIntelRequest(intelReqId, intelRequest));
        }
        public IHttpActionResult GetIntelRequest(string id)
        {
            db.Configuration.LazyLoadingEnabled = false;
            IntelRequest intelRequest = db.IntelRequests.Find(id);

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

            return(Ok(intelRequest));
        }
        public IHttpActionResult DeleteIntelRequest(string id)
        {
            IntelRequest intelRequest = db.IntelRequests.Find(id);

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

            // TODO In future we need to check if IntelRequest is being used somewhere in missions or other objects
            //Update status to delete
            var status = db.StatusCodes.Join(db.StatusCodeTypes, sc => sc.type, st => st.id, (statuscode, type) => new { statuscode.id, type.description }).FirstOrDefault(s => s.description.Equals("all", StringComparison.OrdinalIgnoreCase));

            intelRequest.StatusId = status.id;
            db.SaveChanges();

            return(Ok(intelRequest));
        }
Beispiel #7
0
        void IModule.Initialize()
        {
            _intelSettings = new IntelRequest {
                Map             = true,
                Score           = true,
                Common          = true,
                UpgradesSelf    = true,
                BuildingsSelf   = true,
                WorkersSelf     = true,
                UnitsSelf       = true,
                StructuresEnemy = true,
                UnitsEnemy      = true,
                WorkersEnemy    = true,
                PrimaryColony   = true,
                Colonies        = true,
                MineralFields   = true,
                VespeneGeysers  = true,
                Destructibles   = true,
                ProductionQueue = true,
                Squads          = true,
            };
            _connection = new NydusWormConnection(b => RequestHandler(b));
            _connection.Initialize();

            Process.Start(new ProcessStartInfo {
                FileName        = "CMD.exe",
                Arguments       = $"/k{Command} {_connection.Port}",
                UseShellExecute = true
            });

            _connection.Connect();
            _connection.SendMessage(new AbathurResponse {
                Notification = new Notification {
                    Type = NotificationType.Initialize
                }
            });
        }
        public IHttpActionResult PostIntelRequest(IntelRequest intelRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (intelRequest.IntelRequestID == null || intelRequest.IntelRequestID == "0")
            {
                intelRequest.IntelRequestID = Guid.NewGuid().ToString();
            }

            intelRequest.IntelReqStatus = new List <IntelReqStatu>
            {
                new IntelReqStatu
                {
                    IntelRequestID = intelRequest.IntelRequestID,
                    StatusDateTime = DateTime.Now,
                    Status         = (int)IntelReqStatuses.PENDING
                }
            };

            db.IntelRequests.Add(intelRequest);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (IntelRequestExists(intelRequest.IntelRequestID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            db.Alerts.Add(new Alert
            {
                id           = Guid.NewGuid().ToString(),
                Type         = 1, //Action Item
                Message      = "Intel Request #" + intelRequest.ReqUserFrndlyID + " Pending Review",
                DashboardInd = true,
                Complete     = false,
                createDate   = DateTime.Now,
                createUserId = "1",
                LinkTo       = "/intel-request/review/" + intelRequest.IntelRequestID
            });

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                throw;
            }

            return(CreatedAtRoute("DefaultApiPost", new { id = intelRequest.IntelRequestID }, intelRequest));
        }
Beispiel #9
0
        public IntelResponse BundleIntel(IntelRequest request)
        {
            AbathurMap map = null;

            if (request.Map)
            {
                map = new AbathurMap {
                }
            }
            ;
            Score score = null;

            if (request.Score)
            {
                score = _intel.CurrentScore;
            }
            PlayerCommon playerCommon = null;

            if (request.Common)
            {
                playerCommon = _intel.Common;
            }
            ICollection <UpgradeData> upgradeSelf = null;

            if (request.UpgradesSelf)
            {
                upgradeSelf = _intel.UpgradesSelf;
            }
            ICollection <IUnit> alliedBuilding = null;

            if (request.BuildingsSelf)
            {
                alliedBuilding = _intel.StructuresSelf().ToList();
            }
            ICollection <IUnit> alliedWorkers = null;

            if (request.WorkersSelf)
            {
                alliedWorkers = _intel.WorkersSelf().ToList();
            }
            ICollection <IUnit> alliedUnits = null;

            if (request.WorkersSelf)
            {
                alliedUnits = _intel.UnitsSelf().ToList();
            }
            ICollection <IUnit> structuresEnemy = null;

            if (request.StructuresEnemy)
            {
                structuresEnemy = _intel.WorkersEnemy().ToList();
            }
            ICollection <IUnit> unitsEnemy = null;

            if (request.UnitsEnemy)
            {
                unitsEnemy = _intel.WorkersEnemy().ToList();
            }
            ICollection <IUnit> workersEnemy = null;

            if (request.WorkersEnemy)
            {
                workersEnemy = _intel.WorkersEnemy().ToList();
            }
            IColony primaryColony = null;

            if (request.PrimaryColony)
            {
                primaryColony = _intel.PrimaryColony;
            }
            IEnumerable <IColony> colonies = null;

            if (request.Colonies)
            {
                colonies = _intel.Colonies;
            }
            ICollection <IUnit> mineralFields = null;

            if (request.MineralFields)
            {
                mineralFields = _intel.MineralFields.ToList();
            }
            ICollection <IUnit> vespeneGeysers = null;

            if (request.VespeneGeysers)
            {
                vespeneGeysers = _intel.VespeneGeysers.ToList();
            }
            ICollection <IUnit> destructibles = null;

            if (request.Destructibles)
            {
                destructibles = _intel.Destructibles().ToList();
            }
            ICollection <UnitTypeData> productionQueue = null;

            if (request.ProductionQueue)
            {
                productionQueue = _intel.ProductionQueue.ToList();
            }
            IEnumerable <Squad> squads = null;

            if (request.Squads)
            {
                squads = _squadRepo.Get();
            }
            uint gameloop = 0;

            if (request.GameLoop)
            {
                gameloop = _intel.GameLoop;
            }

            return(new IntelResponse {
                Map = map,
                Score = score,
                Common = playerCommon,
                UpgradesSelf = { upgradeSelf },
                BuildingsSelf = { Convert(alliedBuilding) },
                WorkersSelf = { Convert(alliedWorkers) },
                UnitsSelf = { Convert(alliedUnits) },
                StructuresEnemy = { Convert(structuresEnemy) },
                WorkersEnemy = { Convert(workersEnemy) },
                UnitsEnemy = { Convert(unitsEnemy) },
                PrimaryColony = Convert(primaryColony),
                Colonies = { Convert(colonies.ToList()) },
                MineralFields = { Convert(mineralFields) },
                VespeneGeysers = { Convert(vespeneGeysers) },
                Destructibles = { Convert(destructibles) },
                ProductionQueue = { productionQueue },
                Squads = { squads.Select(Convert) },
                GameLoop = gameloop
            });
        }