示例#1
0
        public void AddPosition(string unitUUID, List <int> roleID)
        {
            List <OpPosition> newPositions = new List <OpPosition>();

            foreach (int id in roleID)
            {
                OpPosition pos = new OpPosition()
                {
                    uuid            = ANWI.Utility.UUID.GenerateUUID(),
                    unitUUID        = unitUUID,
                    critical        = false,
                    filledById      = -1,
                    filledByPointer = null,
                    role            = OperationRole.FetchById(id)
                };

                fleet.AddPosition(pos);
                newPositions.Add(pos);
            }

            PushToAll(new ANWI.Messaging.Ops.UpdatePositions(
                          newPositions,
                          null,
                          null));
        }
示例#2
0
        public DocumentFunctionOperationBuilder(DocumentMapping mapping, UpsertFunction function, OperationRole role,
                                                StoreOptions options)
        {
            _function = function;
            _role     = role;
            _options  = options;

            CommandText = $"select {_function.Identifier}({_function.OrderedArguments().Select(x => "?").Join(", ")})";

            ClassName =
                $"{function.GetType().Name.Replace("Function", "")}{mapping.DocumentType.ToSuffixedTypeName("Operation")}";

            _mapping = mapping;
        }
示例#3
0
        ProcessRequestMessage(ANWI.Messaging.IMessagePayload p)
        {
            ANWI.Messaging.Request req = p as ANWI.Messaging.Request;

            switch (req.type)
            {
            case ANWI.Messaging.Request.Type.GetCommonData: {
                ANWI.Messaging.AllCommonData acd
                                    = new ANWI.Messaging.AllCommonData();
                acd.ranks           = Rank.FetchAll();
                acd.rates           = Rate.FetchAllRates();
                acd.assignmentRoles = AssignmentRole.FetchAll();
                acd.largeHulls      = Hull.FetchLarge();
                acd.smallHulls      = Hull.FetchSmall();
                acd.shipRoles       = OperationRole.FetchAllShips();
                acd.boatRoles       = OperationRole.FetchAllBoats();
                return(acd);
            }

            case ANWI.Messaging.Request.Type.GetProfile: {
                Profile profile = Profile.FetchById(req.id);
                return(new ANWI.Messaging.FullProfile(profile));
            }

            case ANWI.Messaging.Request.Type.GetFleet: {
                List <LiteVessel> registry = LiteVessel.FetchRegistry();
                return(new ANWI.Messaging.FullVesselReg(registry));
            }

            case ANWI.Messaging.Request.Type.GetAvailableFleet: {
                List <LiteVessel> avail = LiteVessel.FetchAvailable();
                return(new ANWI.Messaging.FullVesselReg(avail));
            }

            case ANWI.Messaging.Request.Type.GetRoster: {
                List <LiteProfile> profiles = LiteProfile.FetchAll();
                return(new ANWI.Messaging.FullRoster(profiles));
            }

            case ANWI.Messaging.Request.Type.GetVesselDetail: {
                Vessel details = Vessel.FetchById(req.id);
                return(new ANWI.Messaging.FullVessel(details));
            }

            case ANWI.Messaging.Request.Type.GetUnassignedRoster: {
                List <LiteProfile> unassigned
                    = LiteProfile.FetchAllUnassigned();
                return(new ANWI.Messaging.FullRoster(unassigned));
            }

            case ANWI.Messaging.Request.Type.ChangeRank: {
                ANWI.Messaging.ReqExp.TwoIDs tid
                    = req.detail as ANWI.Messaging.ReqExp.TwoIDs;
                return(ChangeRank(tid.id1, tid.id2));
            }

            case ANWI.Messaging.Request.Type.DeleteRate: {
                ANWI.Messaging.ReqExp.TwoIDs tid
                    = req.detail as ANWI.Messaging.ReqExp.TwoIDs;
                return(DeleteRate(tid.id1, tid.id2));
            }

            case ANWI.Messaging.Request.Type.SetPrimaryRate: {
                ANWI.Messaging.ReqExp.TwoIDs tid
                    = req.detail as ANWI.Messaging.ReqExp.TwoIDs;
                return(SetPrimaryRate(tid.id1, tid.id2));
            }

            case ANWI.Messaging.Request.Type.ChangeName: {
                ANWI.Messaging.ReqExp.IdString ids
                    = req.detail as ANWI.Messaging.ReqExp.IdString;
                return(ChangeNickname(ids.id, ids.str));
            }

            case ANWI.Messaging.Request.Type.AddEquipment: {
                ANWI.Messaging.ReqExp.TwoIDs tid
                    = req.detail as ANWI.Messaging.ReqExp.TwoIDs;
                return(AddEquipment(tid.id1, tid.id2));
            }

            case ANWI.Messaging.Request.Type.RemoveEquipment: {
                ANWI.Messaging.ReqExp.TwoIDs tid
                    = req.detail as ANWI.Messaging.ReqExp.TwoIDs;
                return(RemoveEquipment(tid.id1, tid.id2));
            }
            }

            return(null);
        }