示例#1
0
        internal void Insert(int index, int val)
        {
            if (index == 0)
            {
                var tmp = Next;
                Next      = new List(val);
                Next.Next = tmp;
                return;
            }

            var  p    = Next;
            List?prev = null;

            for (var i = 0; i < index; i++)
            {
                if (p == null)
                {
                    return;
                }

                prev = p;
                p    = p.Next;
            }

            if (prev != null && p != null)
            {
                prev.Next      = new List(val);
                prev.Next.Next = p;
            }
        }
        /// <summary>
        /// Transforms json into an action response.
        /// </summary>
        /// <param name="responseJson">json with Twitter response</param>
        /// <param name="theAction">Used to specify side-effect methods</param>
        /// <returns>Action response</returns>
        public virtual T?ProcessActionResult(string responseJson, Enum theAction)
        {
            List?list = null;

            if (!string.IsNullOrWhiteSpace(responseJson))
            {
                JsonElement listJson = JsonDocument.Parse(responseJson).RootElement;

                switch ((ListAction)theAction)
                {
                case ListAction.Create:
                case ListAction.Update:
                case ListAction.Delete:
                case ListAction.AddMember:
                case ListAction.AddMemberRange:
                case ListAction.DeleteMember:
                case ListAction.Subscribe:
                case ListAction.Unsubscribe:
                case ListAction.DestroyAll:
                    list = new List(listJson);
                    break;

                default:
                    throw new InvalidOperationException(
                              "The default case of ProcessActionResult should never execute because a Type must be specified.");
                }
            }

            return(list.ItemCast(default(T)));
        }
示例#3
0
        static async Task CreateListAsync(TwitterContext twitterCtx)
        {
            List?list =
                await twitterCtx.CreateListAsync(
                    "linq-to-twitter", "public", "This is a test");

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#4
0
        static async Task DeleteListAsync(TwitterContext twitterCtx)
        {
            ulong listID = 0;

            List?list =
                await twitterCtx.DeleteListAsync(
                    listID, "linq-to-twitter", 0, "Linq2Twitr");

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#5
0
        static async Task AddMemberToListAsync(TwitterContext twitterCtx)
        {
            string ownerScreenName = "Linq2Twitr";

            List?list =
                await twitterCtx.AddMemberToListAsync(
                    "Linq2Twitr", 0, "linq-to-twitter", 0, ownerScreenName);

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#6
0
        static async Task UnsubscribeFromListAsync(TwitterContext twitterCtx)
        {
            string ownerScreenName = "Linq2Twitr";

            List?list =
                await twitterCtx.UnsubscribeFromListAsync(
                    0, "testDemo", 0, ownerScreenName);

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#7
0
        static async Task UpdateListAsync(TwitterContext twitterCtx)
        {
            string ownerScreenName = "Linq2Twitr";
            ulong  listID          = 0;

            List?list =
                await twitterCtx.UpdateListAsync(
                    listID, "linq-to-twitter", "Test List", 0,
                    ownerScreenName, "public", "This is a test2");

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#8
0
        static async Task DeleteMemberRangeFromListAsync(TwitterContext twitterCtx)
        {
            string ownerScreenName = "Linq2Twitr";
            var    screenNames     = new List <string> {
                "JoeMayo", "mp2kmag"
            };

            List?list =
                await twitterCtx.DeleteMemberRangeFromListAsync(
                    0, "linq-to-twitter", screenNames, 0, ownerScreenName);

            if (list != null)
            {
                Console.WriteLine("List Name: {0}, Description: {1}",
                                  list.Name, list.Description);
            }
        }
示例#9
0
        internal void InsertTail(int val)
        {
            var p = Next;

            if (p == null)
            {
                Next = new List(val);
                return;
            }

            while (p.Next != null)
            {
                p = p.Next;
            }

            p.Next = new List(val);
        }
示例#10
0
        static async Task AddMemberRangeToListAsync(TwitterContext twitterCtx)
        {
            string ownerScreenName = "Linq2Twitr";
            var    screenNames     = new List <string>
            {
                "JoeMayo",
                "Linq2Twitr"
            };

            List?list =
                await twitterCtx.AddMemberRangeToListAsync(
                    0, "linq-to-twitter", 0, ownerScreenName, screenNames);

            if (list != null && list.Users != null)
            {
                list.Users.ForEach(user => Console.WriteLine(user.Name));
            }
        }
示例#11
0
        void OnTextBlockFocused(object?sender, EventArgs e)
        {
            if (VirtualView == null || PlatformView == null || NativeParent == null)
            {
                return;
            }

            // For EFL Entry, the event will occur even if it is currently disabled.
            // If the problem is resolved, no conditional statement is required.
            if (VirtualView.IsEnabled)
            {
                int i = 0;
                _dialog = new Dialog(NativeParent)
                {
                    AlignmentX = -1,
                    AlignmentY = -1,
                    Title      = VirtualView.Title,
                };
                _dialog.Dismissed         += OnDialogDismissed;
                _dialog.BackButtonPressed += (object?senders, EventArgs es) =>
                {
                    _dialog.Dismiss();
                };

                _list = new List(_dialog);
                foreach (var s in VirtualView.GetItemsAsArray())
                {
                    ListItem item = _list.Append(s);
                    _itemToItemNumber[item] = i;
                    i++;
                }
                _list.ItemSelected += OnItemSelected;
                _dialog.Content     = _list;

                // You need to call Show() after ui thread occupation because of EFL problem.
                // Otherwise, the content of the popup will not receive focus.
                EcoreMainloop.Post(() =>
                {
                    _dialog.Show();
                    _list.Show();
                });
            }
        }
示例#12
0
 public bool Equals(List?input)
 {
     return(OpenAPIClientUtils.compareLogic.Compare(this, input).AreEqual);
 }
示例#13
0
 internal List(int val)
 {
     Value = val;
     Next  = null;
 }