Exemplo n.º 1
0
        ProcessRequestMessage(ANWI.Messaging.IMessagePayload p)
        {
            ANWI.Messaging.Request req = p as ANWI.Messaging.Request;

            switch (req.type)
            {
            case ANWI.Messaging.Request.Type.GetOperations: {
                List <LiteOperation> ops
                    = OperationManager.Instance.GetOpsList(
                          GetUser().profile.id
                          );
                return(new ANWI.Messaging.FullOperationsList(ops));
            }

            case ANWI.Messaging.Request.Type.GetOperation: {
                ANWI.Messaging.ReqExp.IdString det
                    = req.detail as ANWI.Messaging.ReqExp.IdString;

                ActiveOperation op = GetOperation(det.str);
                if (op != null)
                {
                    subscribedOps.Add(det.str);
                    op.SubscribeUser(GetUser());
                    return(new ANWI.Messaging.Ops.FullOperationSnapshot(
                               op.ToSnapshot()));
                }
                else
                {
                    return(null);
                }
            }

            case ANWI.Messaging.Request.Type.CloseOperation: {
                ANWI.Messaging.ReqExp.IdString det
                    = req.detail as ANWI.Messaging.ReqExp.IdString;

                subscribedOps.Remove(det.str);

                ActiveOperation op = GetOperation(det.str);
                if (op != null)
                {
                    op.UnsubscribeUser(GetTokenCookie());
                }

                return(null);
            }

            case ANWI.Messaging.Request.Type.AdvanceOpLifecycle: {
                ANWI.Messaging.ReqExp.IdString det
                    = req.detail as ANWI.Messaging.ReqExp.IdString;

                ActiveOperation op = GetOperation(det.str);
                if (op != null)
                {
                    op.AdvanceLifecycle();
                }
                return(null);
            }

            case ANWI.Messaging.Request.Type.JoinOperation: {
                ANWI.Messaging.ReqExp.IdString det
                    = req.detail as ANWI.Messaging.ReqExp.IdString;

                ActiveOperation op = GetOperation(det.str);
                if (op != null)
                {
                    op.JoinUser(GetTokenCookie());
                }
                return(null);
            }

            case ANWI.Messaging.Request.Type.LeaveOperation: {
                ANWI.Messaging.ReqExp.IdString det
                    = req.detail as ANWI.Messaging.ReqExp.IdString;

                ActiveOperation op = GetOperation(det.str);
                if (op != null)
                {
                    op.RemoveUser(det.id);
                }
                return(null);
            }
            }

            return(null);
        }
Exemplo n.º 2
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);
        }