예제 #1
1
 public void IList_Indexer()
 {
     var field = new RepeatedField<string> { "first", "second" };
     IList list = field;
     Assert.AreEqual("first", list[0]);
     list[1] = "changed";
     Assert.AreEqual("changed", field[1]);
 }
예제 #2
0
 public void Add_SingleItem()
 {
     var list = new RepeatedField<string>();
     list.Add("foo");
     Assert.AreEqual(1, list.Count);
     Assert.AreEqual("foo", list[0]);
 }
예제 #3
0
 public void Add_Sequence()
 {
     var list = new RepeatedField<string>();
     list.Add(new[] { "foo", "bar" });
     Assert.AreEqual(2, list.Count);
     Assert.AreEqual("foo", list[0]);
     Assert.AreEqual("bar", list[1]);
 }
예제 #4
0
 public void AddRange_SlowPath()
 {
     var list = new RepeatedField<string>();
     list.AddRange(new[] { "foo", "bar" }.Select(x => x));
     Assert.AreEqual(2, list.Count);
     Assert.AreEqual("foo", list[0]);
     Assert.AreEqual("bar", list[1]);
 }
예제 #5
0
 public void NullValuesRejected()
 {
     var list = new RepeatedField<string>();
     Assert.Throws<ArgumentNullException>(() => list.Add((string)null));
     Assert.Throws<ArgumentNullException>(() => list.Add((IEnumerable<string>)null));
     Assert.Throws<ArgumentNullException>(() => list.Add((RepeatedField<string>)null));
     Assert.Throws<ArgumentNullException>(() => list.Contains(null));
     Assert.Throws<ArgumentNullException>(() => list.IndexOf(null));
 }
예제 #6
0
 public void Add_RepeatedField()
 {
     var list = new RepeatedField<string> { "original" };
     list.Add(new RepeatedField<string> { "foo", "bar" });
     Assert.AreEqual(3, list.Count);
     Assert.AreEqual("original", list[0]);
     Assert.AreEqual("foo", list[1]);
     Assert.AreEqual("bar", list[2]);
 }
예제 #7
0
        private static void ScanMap(RepeatedField <MapCell> mapCells, Location loc)
        {
            foreach (var mapCell in mapCells)
            {
                foreach (WildPokemon pokemon in mapCell.WildPokemons)
                {
                    PokemonJsonForWebServer pokemonJson = new PokemonJsonForWebServer();
                    pokemonJson.id        = (int)pokemon.PokemonData.PokemonId;
                    pokemonJson.lat       = pokemon.Latitude;
                    pokemonJson.lng       = pokemon.Longitude;
                    pokemonJson.timeleft  = pokemon.TimeTillHiddenMs;
                    pokemonJson.timestamp = pokemon.LastModifiedTimestampMs;
                    pokemonJson.name      = pokemon.PokemonData.PokemonId.ToString();

                    pokemonJsonDict.GetOrAdd($"{pokemonJson.lat},{pokemonJson.lng}", pokemonJson);
                }
            }
        }
예제 #8
0
        //显示亮倒的牌
        public override void ShowLiangDaoCards(RepeatedField <int> cards)
        {
            RepeatedField <RepeatedField <int> > liangDaoCards = CardFiveStarHuPaiLogic.GetLiangDaoNoneHuCards(cards);

            ClearLiangCards();
            liangDaoCards[1].Sort();
            for (int i = 0; i < liangDaoCards[1].Count; i++)
            {
                CardFiveStarDownDaoDiZhengMainCard card = CardFiveStarCardPool.Ins.Create(LaingCardType, liangDaoCards[1][i], _LiangCardGroupGo.transform) as CardFiveStarDownDaoDiZhengMainCard;
                _liangCards.Add(card);
                card.ShowKouIcon();
            }
            liangDaoCards[0].Sort();
            for (int i = 0; i < liangDaoCards[0].Count; i++)
            {
                _liangCards.Add(CardFiveStarCardPool.Ins.Create(LaingCardType, liangDaoCards[0][i], _LiangCardGroupGo.transform));
            }
        }
예제 #9
0
        public static RepeatedField <OrderItemDto> ToOrderItemDtos(this List <OrderItem> items)
        {
            var result = new RepeatedField <OrderItemDto>();

            foreach (var item in items)
            {
                result.Add(new OrderItemDto()
                {
                    Id          = item.Id,
                    ProductId   = item.ProductId,
                    ProductName = item.ProductName,
                    UnitPrice   = (float)item.UnitPrice,
                    Count       = item.Count
                });
            }

            return(result);
        }
예제 #10
0
 private void SetProject(RepeatedField <ProjectModel> ProjectList)
 {
     while (ProjectFather.childCount > 1)
     {
         GameObject.DestroyImmediate(ProjectFather.GetChild(1).gameObject);
     }
     for (int i = 0; i < ProjectList.Count; i++)
     {
         GameObject project = GameObject.Instantiate(ProjectContent, ProjectFather);
         project.SetActive(true);
         project.transform.Find("Txt_Index").GetComponent <Text>().text        = (i + 1).ToString();
         project.transform.Find("Txt_Name").GetComponent <Text>().text         = ProjectList[i].ProjectName;
         project.transform.Find("Txt_Priority").GetComponent <Text>().text     = SetPriority(ProjectList[i].Priority);
         project.transform.Find("Txt_Description").GetComponent <Text>().text  = ProjectList[i].Description;
         project.transform.Find("Txt_CreateDate").GetComponent <Text>().text   = ProjectList[i].CreateDate;
         project.transform.Find("Txt_Completeness").GetComponent <Text>().text = ProjectList[i].Completeness.ToString();
     }
 }
예제 #11
0
 public void SetBlackListAdd(Notify notify)
 {
     if (notify.Feedback == FeedBack.Success)
     {
         BlackList_AddRsp addrsp = BlackList_AddRsp.Parser.ParseFrom(notify.message);
         friendApplyList = addrsp.ApplyList;
         friendList      = addrsp.FriendList;
         blackList       = addrsp.BlackList;
         GameFacade.SendNotification(Protocol.FriendApply_Check, CmdType.Presenter, friendApplyList);
         GameFacade.SendNotification(Protocol.Friend_Check, CmdType.Presenter, friendList);
         GameFacade.SendNotification(Protocol.BlackList_Check, CmdType.Presenter, blackList);
         GameFacade.SendNotification(notify.Protocol, CmdType.Presenter);
     }
     else
     {
         GameFacade.SendNotification(notify.Protocol, CmdType.Error, notify.Feedback);
     }
 }
        public EventRepeatedField(EventDataConverter <T> converter, RepeatedField <T> repeatedField, bool isMessageType = false)
        {
            _converter     = converter;
            _isMessageType = isMessageType;

            if (isMessageType)
            {
                _internal = new RepeatedField <T>();
                foreach (var v in repeatedField)
                {
                    InternalAdd(v);
                }
            }
            else
            {
                _internal = repeatedField;
            }
        }
예제 #13
0
    /// <summary>
    /// 整体刷新迟郁的生日数据
    /// </summary>
    /// <param name="pbs"></param>
    public void UpdatePlayerBirthdayMission(RepeatedField <UserMissionPB> pbs)
    {
        if (pbs.Count > 0)
        {
            foreach (var v in pbs)
            {
                foreach (var a in UserMissionList)
                {
                    if (v.MissionId == a.MissionId)
                    {
                        a.InitData(v);
                    }
                }
            }
        }

        InitPlayerBirthdayMission();
    }
예제 #14
0
    /// <summary>
    /// 整体刷新星动之约任务数据
    /// </summary>
    /// <param name="pbs"></param>
    public void UpdateStarActivityMission(RepeatedField <UserMissionPB> pbs)
    {
        if (pbs.Count > 0)
        {
            foreach (var v in pbs)
            {
                foreach (var a in UserMissionList)
                {
                    if (v.MissionId == a.MissionId)
                    {
                        a.InitData(v);
                    }
                }
            }
        }

        InitStarActivityMission();
    }
    // Start is called before the first frame update
    void Start()
    {
        chatRows = GetComponentsInChildren <Text>();

        // Don't load chat history
        //EventBus.instance.onCharacterSelected += LoadChatHistory;
        EventBus.instance.onChatHistoryLoaded += UpdateChatText;
        EventBus.instance.onNewMessageArrived += ShowNewMessage;

        displayedMessages = new RepeatedField <ChatMessage>();
        displayedMessages.Add(new ChatMessage {
            Sender = "Gardarike", Text = "Welcome to Bugaga server", Type = ChatMessage.Types.Type.System
        });

        UpdateChatText(displayedMessages);

        input.onEndEdit.AddListener(delegate { PostMessage(); });
    }
예제 #16
0
        // 返回数组,[]包裹 暂时以逗号分隔,根据自己的需求进行更改
        private static RepeatedField <T> HandlerArray <T>(string value, Func <string, T> func)
        {
            if (null == value)
            {
                return(null);
            }
            string val = value.TrimStart('[');

            val = val.TrimEnd(']');
            string[]          datas    = val.Split(',');
            RepeatedField <T> newValue = new RepeatedField <T>();

            for (int i = 0; i < datas.Length; i++)
            {
                newValue.Add(func(datas[i]));
            }
            return(newValue);
        }
예제 #17
0
        //初始化玩家信息
        private static RepeatedField <Video_PlayerInfo> GetVideoPlayers(this FiveStarRoom fiveStarRoom)
        {
            RepeatedField <Video_PlayerInfo> playerInfos = new RepeatedField <Video_PlayerInfo>();

            for (int i = 0; i < fiveStarRoom.FiveStarPlayerDic.Count; i++)
            {
                Video_PlayerInfo player = ComponentFactory.Create <Video_PlayerInfo>();
                player.NowScore  = fiveStarRoom.FiveStarPlayerDic[i].NowScore;
                player.Hands     = fiveStarRoom.FiveStarPlayerDic[i].Hands;
                player.Icon      = fiveStarRoom.FiveStarPlayerDic[i].User.Icon;
                player.PiaoFen   = fiveStarRoom.FiveStarPlayerDic[i].PiaoNum;
                player.UserId    = fiveStarRoom.FiveStarPlayerDic[i].User.UserId;
                player.Name      = fiveStarRoom.FiveStarPlayerDic[i].User.Name;
                player.SeatIndex = i;
                playerInfos.Add(player);
            }
            return(playerInfos);
        }
예제 #18
0
    public void SetupGrids(RepeatedField <ColumnsLabels> columnsLabels)
    {
        if (columnsLabels.Count >= 3)
        {
            var xColumsnAmount = columnsLabels[0].Labels.Count - 1;
            var yColumsnAmount = columnsLabels[1].Labels.Count - 1;
            var zColumsnAmount = columnsLabels[2].Labels.Count - 1;


            gridRendererBottom.gridSize = new Vector2Int(xColumsnAmount, zColumsnAmount);
            gridRendererBack.gridSize   = new Vector2Int(xColumsnAmount, yColumsnAmount);
            gridRendererLeft.gridSize   = new Vector2Int(zColumsnAmount, yColumsnAmount);

            gridRendererBottom.SetAllDirty();
            gridRendererBack.SetAllDirty();
            gridRendererLeft.SetAllDirty();
        }
    }
예제 #19
0
        static void SaveStaticBitmaps(RepeatedField <uint> sprites, ref int start, Core.Sprites.ContentSprites sprParser, int dX, int dY, int clientVersion)
        {
            DrawBitmapsDelegate drawFunc;
            int layers     = 0;
            int spritetype = 1;

            if (dX == 32 && dY == 32)
            {
                drawFunc = DrawBitmap32x32From1_32x32;
                layers   = 1;
            }
            else if (dX == 32 && dY == 64)
            {
                drawFunc   = DrawBitmap32x64From2_32x32;
                layers     = 2;
                spritetype = 2;
            }
            else if (dX == 64 && dY == 32)
            {
                drawFunc   = DrawBitmap64x32From2_32x32;
                layers     = 2;
                spritetype = 3;
            }
            else
            {
                drawFunc   = DrawBitmap64x64From4_32x32;
                layers     = 4;
                spritetype = 4;
            }

            int amountInBitmap = BITMAP_SIZE / (32 * 32);
            int totalBitmaps   = (int)Math.Ceiling((double)sprites.Count / amountInBitmap);

            if (totalBitmaps == 0)
            {
                return;
            }

            int localStart = start;

            start += sprites.Count / layers;

            tasks.Add(Task.Run(() => InternalSaveStaticBitmaps(sprites, drawFunc, layers, spritetype, localStart, sprParser, dX, dY, clientVersion)));
        }
    public async Task <bool> SubscribeTopic(string topic, Action <TopicDataRecord> callback)
    {
        if (callback == null)
        {
            Debug.LogError("SubscribeTopic() - callback is NULL!");
            return(false);
        }

        if (this.netmqTopicDataClient.IsSubscribed(topic))
        {
            netmqTopicDataClient.AddTopicDataCallback(topic, callback);
            return(true);
        }

        // Repeated fields cannot be instantiated in SerivceRequest creation
        RepeatedField <string> subscribeTopics = new RepeatedField <string>();

        subscribeTopics.Add(topic);


        //Debug.Log("Subscribing to topic: " + topic + " (backend), subscribeRepeatedField: " + subscribeTopics.Count);
        ServiceRequest topicSubscription = new ServiceRequest
        {
            Topic             = UbiiConstants.Instance.DEFAULT_TOPICS.SERVICES.TOPIC_SUBSCRIPTION,
            TopicSubscription = new TopicSubscription
            {
                ClientId        = clientSpecification.Id,
                SubscribeTopics = { subscribeTopics }
            }
        };

        var          task     = CallService(topicSubscription);
        ServiceReply subReply = await task;

        if (subReply.Error != null)
        {
            Debug.LogError("subReply Error! Error msg: " + subReply.Error.ToString());
            return(false);
        }

        // adding callback function to dictionary
        netmqTopicDataClient.AddTopicDataCallback(topic, callback);
        return(true);
    }
예제 #21
0
    public void InitRule(MallRuleRes res)
    {
        MallRefreshGoldRulePbs = res.MallRefreshGoldRules;

        if (GameMallDic == null)
        {
            GameMallDic = new Dictionary <int, GameMallVo>();
        }

        foreach (var pb in res.GameMallRules)
        {
//                Debug.LogError(pb);
            var vo = new GameMallVo(pb);
            if (GameMallDic.ContainsKey(vo.MallId))
            {
                GameMallDic[vo.MallId] = vo;
            }
            else
            {
                GameMallDic.Add(vo.MallId, vo);
            }
        }


        if (RmbMallDic == null)
        {
            RmbMallDic = new Dictionary <int, RmbMallVo>();
        }

        foreach (var pb in res.RmbMallRules)
        {
//                Debug.LogError(pb);
            var vo = new RmbMallVo(pb);
            if (RmbMallDic.ContainsKey(vo.MallId))
            {
//                    Debug.LogError(vo.MallId);
                RmbMallDic[vo.MallId] = vo;
            }
            else
            {
                RmbMallDic.Add(vo.MallId, vo);
            }
        }
    }
        private void SaveStaticBitmaps(RepeatedField <uint> sprites, ref int start, Assets.ContentSprites sprParser, int width, int height)
        {
            DrawBitmapsDelegate drawFunc;
            int parts      = 0;
            int spritetype = 1;

            if (width == 32 && height == 32)
            {
                drawFunc = DrawBitmap32x32From1_32x32;
                parts    = 1;
            }
            else if (width == 32 && height == 64)
            {
                drawFunc   = DrawBitmap32x64From2_32x32;
                parts      = 2;
                spritetype = 2;
            }
            else if (width == 64 && height == 32)
            {
                drawFunc   = DrawBitmap64x32From2_32x32;
                parts      = 2;
                spritetype = 3;
            }
            else
            {
                drawFunc   = DrawBitmap64x64From4_32x32;
                parts      = 4;
                spritetype = 4;
            }

            int amountInBitmap = Program.BITMAP_SIZE / (32 * 32);
            int totalBitmaps   = (int)Math.Ceiling((double)sprites.Count / amountInBitmap);

            if (totalBitmaps == 0)
            {
                return;
            }

            int localStart = start;

            start += sprites.Count / parts;

            m_Tasks.Add(m_TaskFactory.StartNew(() => InternalSaveStaticBitmaps(sprites, drawFunc, parts, spritetype, localStart, sprParser, width, height)));
        }
예제 #23
0
        bool IEquatable <SerializedCallGraph> .Equals(SerializedCallGraph other)
        {
            var edges = new RepeatedField <GraphEdge>();

            edges.AddRange(Edges.OrderBy(e => e.Source).ThenBy(e => e.Target));
            var otherEdges = new RepeatedField <GraphEdge>();

            otherEdges.AddRange(other.Edges.OrderBy(e => e.Source).ThenBy(e => e.Target));

            var vertices = new RepeatedField <string>();

            vertices.AddRange(Vertices.OrderBy(v => v));
            var otherVertices = new RepeatedField <string>();

            otherVertices.AddRange(other.Vertices.OrderBy(v => v));


            return(edges.Equals(otherEdges) && vertices.Equals(otherVertices));
        }
예제 #24
0
        //发牌
        public static async void Deal(this FiveStarRoom fiveStarRoom)
        {
            fiveStarRoom.intData = fiveStarRoom.RoomNumber;
            if (fiveStarRoom.intData == 4)
            {
                fiveStarRoom.intData--;//4人房实际只有3个人 发牌
            }
            RepeatedField <RepeatedField <int> > dealCards;

            if (fiveStarRoom.IsHaveAI)
            {
                dealCards = CardFiveGameDealLogic.AIDealCards(fiveStarRoom.intData);//如果有AI就用AI发牌
            }
            else
            {
                dealCards = CardFiveGameDealLogic.DealCards(fiveStarRoom.intData);//如果没有有AI就正常发牌
            }
            fiveStarRoom.ResidueCards = dealCards[fiveStarRoom.intData];

            //四人房 在休息玩家的位置 多个一个空的数组
            if (fiveStarRoom.RoomNumber == 4)
            {
                RepeatedField <RepeatedField <int> > fourCards = new RepeatedField <RepeatedField <int> >();
                for (int i = 0; i < dealCards.Count; i++)
                {
                    if (i == fiveStarRoom.CurrRestSeatIndex)
                    {
                        fourCards.Add(new RepeatedField <int>());
                    }
                    fourCards.Add(dealCards[i]);
                }
                dealCards = fourCards;
            }
            //发牌
            for (int i = 0; i < fiveStarRoom.FiveStarPlayerDic.Count; i++)
            {
                fiveStarRoom.FiveStarPlayerDic[i].Deal(dealCards[i]);
            }
            fiveStarRoom.DealFinishRecordGameInitInfo();                      //发完牌记录初始化信息
            await Game.Scene.GetComponent <TimerComponent>().WaitAsync(2000); //延迟两秒在摸牌

            fiveStarRoom.PlayerMoPai(fiveStarRoom.FirstMoCardSeatIndex);      //发完牌第一个玩家摸牌
        }
예제 #25
0
        public RepeatedField <ChallengeMatchDto> Resolve(
            Participant participant,
            ChallengeParticipantDto participantResponse,
            IReadOnlyCollection <IMatch> matches,
            RepeatedField <ChallengeMatchDto> matchResponses,
            ResolutionContext context
            )
        {
            foreach (var match in matches)
            {
                var matchResponse = context.Mapper.Map <ChallengeMatchDto>(match);

                matchResponse.ParticipantId = participant.Id;

                matchResponses.Add(matchResponse);
            }

            return(matchResponses);
        }
예제 #26
0
        public static string AbilitiesToString(RepeatedField <AbilityPB> abs)
        {
            string temp = "";

            //AbilityPB.
            foreach (var item in abs)
            {
                if (temp == "")
                {
                    temp = AbilityToString(item);
                }
                else
                {
                    temp += "、" + AbilityToString(item);
                }
            }

            return(temp);
        }
예제 #27
0
        public void GetBigWinAndPaoShouIndex(RepeatedField <FiveStarTotalPlayerResult> playerResults)
        {
            int _scoreCount        = 0;
            int _fangChongNumCount = 0;

            for (int i = 0; i < playerResults.Count; i++)
            {
                if (playerResults[i].TotalSocre > _scoreCount)
                {
                    _scoreCount     = playerResults[i].TotalSocre;
                    bigWinSeatIndex = playerResults[i].SeatIndex;
                }
                if (playerResults[i].FangChongCount > _fangChongNumCount)
                {
                    _fangChongNumCount = playerResults[i].FangChongCount;
                    PaoShouSeatIndex   = playerResults[i].SeatIndex;
                }
            }
        }
예제 #28
0
        public long EndTime;                  //结束时间

        public GameMallVo(GameMallRulePB gamemallRulePb)
        {
            MallId        = gamemallRulePb.MallId;
            MallType      = gamemallRulePb.MallType;
            MallSortPb    = gamemallRulePb.MallSort;
            MoneyTypePb   = gamemallRulePb.MoneyType;
            MallName      = gamemallRulePb.MallName;
            MallDesc      = gamemallRulePb.MallDesc;
            GiftImage     = gamemallRulePb.GiftImage;
            Slot          = gamemallRulePb.Slot;
            MallLabelPb   = gamemallRulePb.MallLabel;
            LabelImage    = gamemallRulePb.LabelImage;
            RealPrice     = gamemallRulePb.RealPrice;
            OriginalPrice = gamemallRulePb.OriginalPrice;
            BuyMax        = gamemallRulePb.BuyMax;
            Award         = gamemallRulePb.Award;
            Starttime     = gamemallRulePb.StartTime;
            EndTime       = gamemallRulePb.EndTime;
        }
예제 #29
0
    // --------------------------Vision Modality----------------------------------
    public bool vision_initialise()
    {
        //Get OVR Cameras
        var cameras = OVRRig.GetComponentsInChildren <Camera>();

        // Setup ovr camera parameters and attach component transforms to ovr camera transforms
        // This allows the planes to follow the cameras
        foreach (Camera cam in cameras)
        {
            Debug.Log("Formatting: " + cam.transform.name);
            cam.clearFlags       = CameraClearFlags.SolidColor;
            cam.backgroundColor  = Color.black;
            cam.orthographic     = true;
            cam.orthographicSize = 5;
            cam.cullingMask     &= ~(1 << 11);
            switch (cam.transform.name)
            {
            case "LeftEyeAnchor":
                LeftEye.transform.parent           = cam.transform;
                LeftEye.transform.localPosition    = Vector3.zero;
                LeftEye.transform.localEulerAngles = Vector3.zero;
                break;

            case "RightEyeAnchor":
                RightEye.transform.parent           = cam.transform;
                RightEye.transform.localPosition    = Vector3.zero;
                RightEye.transform.localEulerAngles = Vector3.zero;
                break;
            }
        }

        _leftPlane  = LeftEye.transform.Find("LeftEyePlane").gameObject;
        _rightPlane = RightEye.transform.Find("RightEyePlane").gameObject;

        _leftRenderer  = _leftPlane.GetComponent <Renderer>();
        _rightRenderer = _rightPlane.GetComponent <Renderer>();
        _imageDims     = new RepeatedField <uint>();
        visionEnabled  = true;

        // Comment the line below to enable two images - Not tested
        RightEye.SetActive(false);
        return(visionEnabled);
    }
예제 #30
0
        public bool Special;                  //特殊礼包标记

        public RmbMallVo(RmbMallRulePB gamemallRulePb)
        {
            MallId        = gamemallRulePb.MallId;
            MallSortPb    = gamemallRulePb.MallSort;
            MallName      = gamemallRulePb.MallName;
            MallDesc      = gamemallRulePb.MallDesc;
            GiftImage     = gamemallRulePb.GiftImage;
            Slot          = gamemallRulePb.Slot;
            MallLabelPb   = gamemallRulePb.MallLabel;
            LabelImage    = gamemallRulePb.LabelImage;
            RealPrice     = gamemallRulePb.RealPrice;
            OriginalPrice = gamemallRulePb.OriginalPrice;
            Special       = gamemallRulePb.Special;
            BuyMax        = gamemallRulePb.BuyMax;
            BuyRefreshDay = gamemallRulePb.BuyRefreshDay;
            Award         = gamemallRulePb.Award;
            Starttime     = gamemallRulePb.StartTime;
            EndTime       = gamemallRulePb.EndTime;
        }
예제 #31
0
        public RepeatedField <InlineCall> GetInlineCalls()
        {
            if (!IsContractReferenceState())
            {
                return(new RepeatedField <InlineCall>());
            }

            var calls     = new RepeatedField <InlineCall>();
            var toBeAdded = AccessedMethods.Select(x => PropertyMethodIndex[x.Resolve()])
                            .Where(x => x != null)
                            .Where(PropertyTypeIsActionType)
                            .Select(x => new InlineCall()
            {
                MethodName = x.Name
            });

            calls.AddRange(toBeAdded);
            return(calls);
        }
예제 #32
0
        /// <summary>
        /// 查詢使用者全部騎乘紀錄
        /// </summary>
        /// <param name="teamId"></param>
        /// <returns></returns>
        public static async ETTask <PlayerRideTotalInfo> QueryUserRideAllRecord(User user)
        {
            var userRideRecords = await QueryUserRideRecords(user.Id);

            var rideAllInfo = new RepeatedField <PlayerRideRoadInfo>();

            for (int i = 0; i < userRideRecords.Count; i++)
            {
                var playerRideRoadInfo = new PlayerRideRoadInfo();
                var userRideRecord     = userRideRecords[i];
                playerRideRoadInfo.InfoId         = userRideRecord.Id;
                playerRideRoadInfo.RoadId         = userRideRecord.roadConfigId;
                playerRideRoadInfo.Rank           = userRideRecord.rank;
                playerRideRoadInfo.Mileage        = userRideRecord.mileage;
                playerRideRoadInfo.CumulativeTime = userRideRecord.cumulativeSecond;
                playerRideRoadInfo.AverageSpeed   = (float)userRideRecord.averageSpeed;
                playerRideRoadInfo.TopSpeed       = (float)userRideRecord.topSpeed;
                playerRideRoadInfo.Calories       = (float)userRideRecord.calories;
                playerRideRoadInfo.Power          = (float)userRideRecord.power;
                playerRideRoadInfo.RecordUTCTick  = DateHelper.TimestampMillisecondToDateTimeUTC(userRideRecord.createAt).Ticks;
                if (userRideRecord.rideType == (int)RideRecord.RideType.Party)
                {
                    var teamRecord = await QueryRideTeamRecord(userRideRecord.teamId);

                    playerRideRoadInfo.BattleLeaderboardUnitInfos = teamRecord.members.Aggregate(new RepeatedField <BattleLeaderboardUnitInfo>(), (list, item) =>
                    {
                        list.Add(item.ToBattleLeaderboardUnitInfo());
                        return(list);
                    });
                }
                rideAllInfo.Add(playerRideRoadInfo);
            }

            return(new PlayerRideTotalInfo
            {
                Mileage = user.playerRideTotalInfo.Mileage,
                CumulativeTime = user.playerRideTotalInfo.CumulativeTime,
                AverageSpeed = user.playerRideTotalInfo.AverageSpeed,
                TopSpeed = user.playerRideTotalInfo.TopSpeed,
                Calories = user.playerRideTotalInfo.Calories,
                RideRoadInfos = rideAllInfo
            });
        }
예제 #33
0
        //获取亲友圈信息
        public async Task <RepeatedField <FriendsCircle> > GetFriendsCircleInfo(IList <int> friendsCirleIds)
        {
            for (int i = 0; i < friendsCirleIds.Count; i++)
            {
                if (!_FriendsCircleDic.ContainsKey(friendsCirleIds[i]))
                {
                    RepeatedField <FriendsCircle> queryFriendsCircles = await QueryFriendsCircleInfo(friendsCirleIds.ToArray());

                    return(queryFriendsCircles);
                }
            }
            RepeatedField <FriendsCircle> friendsCircles = new RepeatedField <FriendsCircle>();

            for (int i = 0; i < friendsCirleIds.Count; i++)
            {
                friendsCircles.Add(await GetFriendsCircleInfo(friendsCirleIds[i]));
            }
            return(friendsCircles);
        }
예제 #34
0
        public async void AlteWanFaCall(RepeatedField <int> config)
        {
            F2C_AlterWanFa f2CAlterWanFa = (F2C_AlterWanFa)await SessionComponent.Instance.Call(new C2F_AlterWanFa()
            {
                FriendsCrircleId = FrienCircleComponet.Ins.CuurSelectFriendsCircle.FriendsCircleId,
                ToyGameId        = ToyGameId.CardFiveStar,
                WanFaCofigs      = config
            });

            if (string.IsNullOrEmpty(f2CAlterWanFa.Message))
            {
                UIComponent.GetUiView <NormalHintPanelComponent>().ShowHintPanel("修改成功");
                FrienCircleComponet.Ins.AlteWanFaCall(config);
            }
            else
            {
                UIComponent.GetUiView <NormalHintPanelComponent>().ShowHintPanel(f2CAlterWanFa.Message);
            }
        }
예제 #35
0
        private RepeatedField <string> GetAddressParts(TypeReference typeReference)
        {
            var arguments = (GetMapType(typeReference).Resolve().BaseType as GenericInstanceType)?.GenericArguments ??
                            new Collection <TypeReference>();

            var addresses = new RepeatedField <string>();

            foreach (var a in arguments)
            {
                if (a.Resolve() != AddressType)
                {
                    break;
                }

                addresses.Add($"{{{a.Name}}}");
            }

            return(addresses);
        }
        public bool _IsDealCardIn = false;//是否在发牌中 置塞子也算
        //发牌动画
        public async void Deal(RepeatedField <int> hands)
        {
            _IsDealCardIn = true;
            ClearHands();
            for (int i = 0; i < hands.Count; i++)
            {
                await ETModel.Game.Scene.GetComponent <TimerComponent>().WaitAsync(100);

                _HandLists.Add(CardFiveStarCardPool.Ins.CreateHand(hands[i], i, _HandPatent));
                CardFiveStarSoundMgr.Ins.PlaySound(SexType.None, FiveStarOperateType.MoCard); //摸牌 音效
            }
            RefreshHand(hands);                                                               //发完牌 直接刷新手牌
            _IsDealCardIn = false;
            RepairDealMoCard();                                                               //发完牌检测一下 是否修补摸牌消息
            if (_IsCanChuCard)
            {
                CanChuCard();//发完牌检测一下 是否修可以出牌的消息
            }
        }
예제 #37
0
        public void AddEntriesFrom_Message()
        {
            var message1 = new ForeignMessage { C = 2000 };
            var message2 = new ForeignMessage { C = -250 };

            uint tag = WireFormat.MakeTag(10, WireFormat.WireType.LengthDelimited);
            var stream = new MemoryStream();
            var output = new CodedOutputStream(stream);
            output.WriteTag(tag);
            output.WriteMessage(message1);
            output.WriteTag(tag);
            output.WriteMessage(message2);
            output.Flush();
            stream.Position = 0;

            var field = new RepeatedField<ForeignMessage>();
            var input = new CodedInputStream(stream);
            input.AssertNextTag(tag);
            field.AddEntriesFrom(input, FieldCodec.ForMessage(tag, ForeignMessage.Parser));
            CollectionAssert.AreEqual(new[] { message1, message2}, field);
            Assert.IsTrue(input.IsAtEnd);
        }
예제 #38
0
 public void CalculateSize_FixedSizeNonPacked()
 {
     var list = new RepeatedField<int> { 1, 500, 1 };
     var tag = WireFormat.MakeTag(1, WireFormat.WireType.Fixed32);
     // 5 bytes for the each entry
     Assert.AreEqual(15, list.CalculateSize(FieldCodec.ForSFixed32(tag)));
 }
예제 #39
0
 public void CalculateSize_VariableSizePacked()
 {
     var list = new RepeatedField<int> { 1, 500, 1};
     var tag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
     // 1 byte for the tag, 1 byte for the length,
     // 1 byte for the first entry, 2 bytes for the second, 1 byte for the third
     Assert.AreEqual(6, list.CalculateSize(FieldCodec.ForInt32(tag)));
 }
예제 #40
0
 public void RemoveAt_Valid()
 {
     var list = new RepeatedField<string> { "first", "second", "third" };
     list.RemoveAt(1);
     CollectionAssert.AreEqual(new[] { "first", "third" }, list);
     // Just check that these don't throw...
     list.RemoveAt(list.Count - 1); // Now the count will be 1...
     list.RemoveAt(0);
     Assert.AreEqual(0, list.Count);
 }
예제 #41
0
 public void CalculateSize_FixedSizePacked()
 {
     var list = new RepeatedField<int> { 1, 500, 1 };
     var tag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
     // 1 byte for the tag, 1 byte for the length, 4 bytes per entry
     Assert.AreEqual(14, list.CalculateSize(FieldCodec.ForSFixed32(tag)));
 }
예제 #42
0
 public void IList_Remove()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     list.Remove("third"); // No-op, no exception
     list.Remove(new object()); // No-op, no exception
     list.Remove("first");
     CollectionAssert.AreEqual(new[] { "second" }, list);
 }
예제 #43
0
 public void IList_IsSynchronized()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     Assert.IsFalse(list.IsSynchronized);
 }
예제 #44
0
 public void ToString_Empty()
 {
     var list = new RepeatedField<TestAllTypes> { };
     var text = list.ToString();
     Assert.AreEqual("[ ]", text);
 }
예제 #45
0
 public void ToString_Messages()
 {
     var list = new RepeatedField<TestAllTypes> { new TestAllTypes { SingleDouble = 1.5 }, new TestAllTypes { SingleInt32 = 10 } };
     var text = list.ToString();
     Assert.AreEqual("[ { \"singleDouble\": 1.5 }, { \"singleInt32\": 10 } ]", text);
 }
예제 #46
0
 public void ToString_Strings()
 {
     var list = new RepeatedField<string> { "x", "y", "z" };
     var text = list.ToString();
     Assert.AreEqual("[ \"x\", \"y\", \"z\" ]", text);
 }
예제 #47
0
 public void ToString_Integers()
 {
     var list = new RepeatedField<int> { 5, 10, 20 };
     var text = list.ToString();
     Assert.AreEqual("[ 5, 10, 20 ]", text);
 }
예제 #48
0
 public void IList_Insert()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     list.Insert(1, "middle");
     CollectionAssert.AreEqual(new[] { "first", "middle", "second" }, list);
 }
예제 #49
0
        public void IList_CopyTo()
        {
            IList list = new RepeatedField<string> { "first", "second" };
            string[] stringArray = new string[4];
            list.CopyTo(stringArray, 1);
            CollectionAssert.AreEqual(new[] { null, "first",  "second", null }, stringArray);

            object[] objectArray = new object[4];
            list.CopyTo(objectArray, 1);
            CollectionAssert.AreEqual(new[] { null, "first", "second", null }, objectArray);

            Assert.Throws<ArrayTypeMismatchException>(() => list.CopyTo(new StringBuilder[4], 1));
            Assert.Throws<ArrayTypeMismatchException>(() => list.CopyTo(new int[4], 1));
        }
예제 #50
0
        public void TestNegativeEnumPackedArray()
        {
            int arraySize = 1 + (10 * 5);
            int msgSize = 1 + 1 + arraySize;
            byte[] bytes = new byte[msgSize];
            CodedOutputStream output = new CodedOutputStream(bytes);
            // Length-delimited to show we want the packed representation
            uint tag = WireFormat.MakeTag(8, WireFormat.WireType.LengthDelimited);
            output.WriteTag(tag);
            int size = 0;
            for (int i = 0; i >= -5; i--)
            {
                size += CodedOutputStream.ComputeEnumSize(i);
            }
            output.WriteRawVarint32((uint)size);
            for (int i = 0; i >= -5; i--)
            {
                output.WriteEnum(i);
            }
            Assert.AreEqual(0, output.SpaceLeft);

            CodedInputStream input = new CodedInputStream(bytes);
            tag = input.ReadTag();

            RepeatedField<SampleEnum> values = new RepeatedField<SampleEnum>();
            values.AddEntriesFrom(input, FieldCodec.ForEnum(tag, x => (int)x, x => (SampleEnum)x));

            Assert.AreEqual(6, values.Count);
            Assert.AreEqual(SampleEnum.None, values[0]);
            Assert.AreEqual(((SampleEnum)(-1)), values[1]);
            Assert.AreEqual(SampleEnum.NegativeValue, values[2]);
            Assert.AreEqual(((SampleEnum)(-3)), values[3]);
            Assert.AreEqual(((SampleEnum)(-4)), values[4]);
            Assert.AreEqual(((SampleEnum)(-5)), values[5]);
        }
예제 #51
0
 public void IList_Contains()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     Assert.IsTrue(list.Contains("second"));
     Assert.IsFalse(list.Contains("third"));
     Assert.IsFalse(list.Contains(new object()));
 }
예제 #52
0
 public void IList_SyncRoot()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     Assert.AreSame(list, list.SyncRoot);
 }
예제 #53
0
 public void ToString_InvalidElementType()
 {
     var list = new RepeatedField<decimal> { 15m };
     Assert.Throws<ArgumentException>(() => list.ToString());
 }
예제 #54
0
 public void IList_IsFixedSize()
 {
     var field = new RepeatedField<string> { "first", "second" };
     IList list = field;
     Assert.IsFalse(list.IsFixedSize);
 }
예제 #55
0
 public void ToString_Timestamp()
 {
     var list = new RepeatedField<Timestamp> { Timestamp.FromDateTime(new DateTime(2015, 10, 1, 12, 34, 56, DateTimeKind.Utc)) };
     var text = list.ToString();
     Assert.AreEqual("[ \"2015-10-01T12:34:56Z\" ]", text);
 }
예제 #56
0
 public void ToString_Struct()
 {
     var message = new Struct { Fields = { { "foo", new Value { NumberValue = 20 } } } };
     var list = new RepeatedField<Struct> { message };
     var text = list.ToString();
     Assert.AreEqual(text, "[ { \"foo\": 20 } ]", message.ToString());
 }
예제 #57
0
 public void WriteValue_List()
 {
     var value = new RepeatedField<int> { 1, 2, 3 };
     AssertWriteValue(value, "[ 1, 2, 3 ]");
 }
예제 #58
0
        public void TestNegativeEnumArray()
        {
            int arraySize = 1 + 1 + (11 * 5);
            int msgSize = arraySize;
            byte[] bytes = new byte[msgSize];
            CodedOutputStream output = new CodedOutputStream(bytes);
            uint tag = WireFormat.MakeTag(8, WireFormat.WireType.Varint);
            for (int i = 0; i >= -5; i--)
            {
                output.WriteTag(tag);
                output.WriteEnum(i);
            }

            Assert.AreEqual(0, output.SpaceLeft);

            CodedInputStream input = new CodedInputStream(bytes);
            tag = input.ReadTag();

            RepeatedField<SampleEnum> values = new RepeatedField<SampleEnum>();
            values.AddEntriesFrom(input, FieldCodec.ForEnum(tag, x => (int)x, x => (SampleEnum)x));

            Assert.AreEqual(6, values.Count);
            Assert.AreEqual(SampleEnum.None, values[0]);
            Assert.AreEqual(((SampleEnum)(-1)), values[1]);
            Assert.AreEqual(SampleEnum.NegativeValue, values[2]);
            Assert.AreEqual(((SampleEnum)(-3)), values[3]);
            Assert.AreEqual(((SampleEnum)(-4)), values[4]);
            Assert.AreEqual(((SampleEnum)(-5)), values[5]);
        }
예제 #59
0
 public void IList_IndexOf()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     Assert.AreEqual(1, list.IndexOf("second"));
     Assert.AreEqual(-1, list.IndexOf("third"));
     Assert.AreEqual(-1, list.IndexOf(new object()));
 }
예제 #60
0
 public void IList_Add()
 {
     IList list = new RepeatedField<string> { "first", "second" };
     list.Add("third");
     CollectionAssert.AreEqual(new[] { "first", "second", "third" }, list);
 }