Ejemplo n.º 1
0
        private async Task ListUsersUpdate(List <BookMyFood.ServiceChat.ServerUser> users)
        {
            if (!updating)
            {
                updating = true;

                ClientMaintaining.Update()
                ;

                try
                {
                    var me = users[users.FindIndex(x => x.ID == ClientMaintaining.ID)];
                    users.Remove(me);
                    users.Insert(0, me);
                }
                catch (Exception e)
                {
                    Log.Instance.W(this, e.Message);
                    updating = false;
                    return;
                }


                var cp = new SequenceEqualityComparer <UserItem>(new UserComparer());

                TempUsersList.Clear();
                //await Task.Run(async () => { Thread.Sleep(3000); });
                foreach (var user in users)
                {
                    TempUsersList.Add(new UserItem(user));
                    //await Task.Run(async () => { TempUsersList.Add(new UserItem(user)); });
                    //await
                    //    Task.Run( () = {

                    //    TempUsersList.Add(new UserItem(user));
                    //}
                }



                if (!cp.Equals(TempUsersList, UsersList) || Math.Abs(ClientMaintaining.CurrentDiscount - discount) > 0)
                {
                    UsersList.Clear();
                    foreach (var user in users)
                    {
                        UsersList.Add(new UserItem(user));
                    }
                    ;
                }

                updating = false;
            }
        }
Ejemplo n.º 2
0
        public bool Equals(SequenceEqualityComparer <T> other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }

            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(this.comparer.Equals(other.comparer));
        }
Ejemplo n.º 3
0
        public bool Equals(UserItem x, UserItem y)
        {
            //Check whether the compared objects reference the same data.
            if (Object.ReferenceEquals(x, y))
            {
                return(true);
            }

            //Check whether any of the compared objects is null.
            if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
            {
                return(false);
            }

            var  oc      = new SequenceEqualityComparer <BookMyFood.ServiceChat.Item>(new ItemComparer());
            bool orderEq = false;

            if (x.pickedUser.Order != null && y.pickedUser.Order != null)
            {
                orderEq = oc.Equals(x.pickedUser.Order.Items, y.pickedUser.Order.Items);
            }

            return(x.pickedUser.ID == y.pickedUser.ID
                   &&
                   x.pickedUser.MissionForClient == y.pickedUser.MissionForClient

                   &&
                   x.pickedUser.Name == y.pickedUser.Name
                   &&
                   x.pickedUser.Ready == y.pickedUser.Ready
                   &&
                   x.pickedUser.isLeader == y.pickedUser.isLeader
                   &&
                   orderEq
                   );
        }