示例#1
0
        /// <summary>
        /// 更新部分
        /// </summary>
        private void RefreshSome(List <long> RoomsId)
        {
            Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
            {
                foreach (var RoomId in RoomsId)
                {
                    RoomModel item       = Resources.Instance.RoomsModel.Where(x => x.RoomId == RoomId).FirstOrDefault();
                    RoomStateModel model = RoomLists.Where(x => x.RoomId == RoomId).FirstOrDefault();
                    if (null == model)
                    {
                        RoomStateModel newRoomStateModel = new RoomStateModel()
                        {
                            RoomId = item.RoomId, RoomNo = item.RoomNo, UseState = (null != item.PayOrder), OrderSession = item.OrderSession, PayOrder = item.PayOrder
                        };
                        AddList(newRoomStateModel);
                    }
                    else
                    {
                        if (null != item && null != model && model.OrderSession != item.OrderSession)
                        {
                            RoomStateModel oldModel = RoomLists.Where(x => null != x.OrderSession && x.OrderSession.Equals(model.OrderSession, StringComparison.Ordinal)).FirstOrDefault();
                            int no = RoomLists.Count;


                            RoomStateModel newRoomStateModel = new RoomStateModel()
                            {
                                RoomId = item.RoomId, RoomNo = item.RoomNo, UseState = (null != item.PayOrder), OrderSession = item.OrderSession, PayOrder = item.PayOrder
                            };
                            if (null != oldModel)
                            {
                                no = RoomLists.IndexOf(oldModel);
                                ReplaceSelected(no, oldModel, newRoomStateModel);
                            }
                            else
                            {
                                AddList(newRoomStateModel, no);
                            }
                        }
                        else
                        {
                            if (null != model && item == null)
                            {
                                RoomStateModel oldModel = RoomLists.Where(x => x.OrderSession.Equals(model.OrderSession, StringComparison.Ordinal)).FirstOrDefault();
                                if (null != oldModel)
                                {
                                    RemoveSelected(oldModel);
                                }
                            }
                        }
                    }
                }

                RefreshAll(true);
            });
        }