Пример #1
0
        public void Publics()
        {
            string issuerAdderss = @"http://www.gotjwt.com";
            string wreply        = @"http://www.relyingparty.com";
            string wct           = Guid.NewGuid().ToString();
            WsFederationMessage wsFederationMessage = new WsFederationMessage
            {
                IssuerAddress = issuerAdderss,
                Wreply        = wreply,
                Wct           = wct,
            };

            wsFederationMessage.SetParameter("bob", null);
            wsFederationMessage.Parameters.Add("bob", null);
            string uriString = wsFederationMessage.BuildRedirectUrl();
            Uri    uri       = new Uri(uriString);

            WsFederationMessage wsFederationMessageReturned = WsFederationMessage.FromQueryString(uri.Query);

            wsFederationMessageReturned.IssuerAddress = issuerAdderss;
            wsFederationMessageReturned.Parameters.Add("bob", null);
            Assert.IsTrue(MessageComparer.AreEqual(wsFederationMessage, wsFederationMessageReturned));

            wsFederationMessageReturned = WsFederationMessage.FromUri(uri);
            wsFederationMessageReturned.IssuerAddress = issuerAdderss;
            wsFederationMessageReturned.Parameters.Add("bob", null);
            Assert.IsTrue(MessageComparer.AreEqual(wsFederationMessage, wsFederationMessageReturned));
        }
Пример #2
0
        /// <summary>
        /// Sorts the messages by the specified ordering.
        /// </summary>
        /// <remarks>
        /// Sorts the messages by the specified ordering.
        /// </remarks>
        /// <returns>The sorted messages.</returns>
        /// <typeparam name="T">The message items must implement the <see cref="IMessageSummary"/> interface.</typeparam>
        /// <param name="messages">The messages to sort.</param>
        /// <param name="orderBy">The sort ordering.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <para><paramref name="messages"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is <c>null</c>.</para>
        /// </exception>
        /// <exception cref="System.ArgumentException">
        /// <para><paramref name="messages"/> contains one or more items that is missing information needed for sorting.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is an empty list.</para>
        /// </exception>
        public static void Sort <T> (this List <T> messages, IList <OrderBy> orderBy) where T : IMessageSummary
        {
            if (messages == null)
            {
                throw new ArgumentNullException("messages");
            }

            if (orderBy == null)
            {
                throw new ArgumentNullException("orderBy");
            }

            if (orderBy.Count == 0)
            {
                throw new ArgumentException("No sort order provided.", "orderBy");
            }

            for (int i = 0; i < messages.Count; i++)
            {
                if (messages[i].Envelope == null)
                {
                    throw new ArgumentException("One or more messages is missing information needed for sorting.", "messages");
                }
            }

            if (messages.Count < 2)
            {
                return;
            }

            var comparer = new MessageComparer <T> (orderBy);

            messages.Sort(comparer);
        }
Пример #3
0
        private void RePaintScreen3()
        {
            // Console.;
            var cr = Console.CursorTop;
            var cc = Console.CursorLeft;
            var cw = Console.WindowWidth;
            var ch = Console.WindowHeight;

            // Console.WriteLine($"{cr} {cc} {cw} {ch}");
            // var wl = "";
            // for (int i = 0; i < cw; i++) {
            //     wl += " ";
            // }
            for (int i = 0; i < ch - 1; i++)
            {
                Console.CursorTop  = i;
                Console.CursorLeft = 0;
                Console.Write(new String(Enumerable.Range(0, cw).Select(o => ' ').ToArray()));
            }
            Console.CursorTop  = ch - CurrentMessages.Count - 1;
            Console.CursorLeft = 0;
            MessageComparer comparer = new MessageComparer();

            CurrentMessages.Sort(comparer);
            foreach (var m in CurrentMessages)
            {
                Console.WriteLine($"{m.SentAt.ToString("HH:mm:ss")} {GetUsernameById(m.SentBy),5}: {m.Text}");
            }
            Console.Write("> ");
            if (cc > 2)
            {
                Console.CursorLeft = cc;
            }
        }
Пример #4
0
        private void AssertMessageWasReceived(TransportMessage unackedTransportMessage, int messageIndex)
        {
            var expected = new TransportMessageSent(new MessageReplayed(_replayId, unackedTransportMessage).ToTransportMessage(_selfPeer, wasPersisted: false), _targetPeer);
            var comparer = new MessageComparer();

            comparer.CheckExpectations(new[] { _transport.Messages[messageIndex] }, new[] { expected }, false);
        }
Пример #5
0
        public static bool AreEqual(WsFederationMessage wsFederationMessage1, WsFederationMessage wsFederationMessage2)
        {
            if (!MessageComparer.AreEqual(wsFederationMessage1 as AuthenticationProtocolMessage, wsFederationMessage2 as AuthenticationProtocolMessage))
            {
                return(false);
            }

            return(true);
        }
 public DownStreamRequest()
 {
     path = new FilePath();
     kv = new KeyValues();
     priorties = kv.getPriorities();
     tc = new TargetConfiguration();
     mc = new MessageComparer();
     mac = new MessageAttributesComparer();
 }
Пример #7
0
        // Creates a view model for QueueDelete.
        private QueueDeleteMsgVM CreateQueueDeleteMsgVM(Messages message, IEnumerable <Messages> inbox)
        {
            MessageComparer msgComparer = new MessageComparer();

            return(new QueueDeleteMsgVM
            {
                SenderID = message.SenderID,
                ReceiverID = message.ReceiverID,
                Date = message.Date,
                Time = message.Time,
                Contents = message.Contents,
                Read = message.Read,
                Queued = message.Queued,
                Inbox = inbox.Contains(message, msgComparer)
            });
        }
Пример #8
0
        /// <summary>
        /// Sorts the messages by the specified ordering.
        /// </summary>
        /// <remarks>
        /// Sorts the messages by the specified ordering.
        /// </remarks>
        /// <returns>The sorted messages.</returns>
        /// <typeparam name="T">The message items must implement the <see cref="IMessageSummary"/> interface.</typeparam>
        /// <param name="messages">The messages to sort.</param>
        /// <param name="orderBy">The sort ordering.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <para><paramref name="messages"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is <c>null</c>.</para>
        /// </exception>
        /// <exception cref="System.ArgumentException">
        /// <para><paramref name="messages"/> contains one or more items that is missing information needed for sorting.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is an empty list.</para>
        /// </exception>
        public static IList <T> Sort <T> (this IEnumerable <T> messages, IList <OrderBy> orderBy) where T : IMessageSummary
        {
            if (messages == null)
            {
                throw new ArgumentNullException(nameof(messages));
            }

            if (orderBy == null)
            {
                throw new ArgumentNullException(nameof(orderBy));
            }

            if (orderBy.Count == 0)
            {
                throw new ArgumentException("No sort order provided.", nameof(orderBy));
            }

            var requiredFields = GetMessageSummaryItems(orderBy);
            var list           = new List <T> ();

            foreach (var message in messages)
            {
                if ((message.Fields & requiredFields) != requiredFields)
                {
                    throw new ArgumentException("One or more messages is missing information needed for sorting.", nameof(messages));
                }

                list.Add(message);
            }

            if (list.Count < 2)
            {
                return(list);
            }

            var comparer = new MessageComparer <T> (orderBy);

            list.Sort(comparer);

            return(list);
        }
Пример #9
0
        /// <summary>
        /// Sorts the messages by the specified ordering.
        /// </summary>
        /// <remarks>
        /// Sorts the messages by the specified ordering.
        /// </remarks>
        /// <returns>The sorted messages.</returns>
        /// <typeparam name="T">The message items must implement the <see cref="IMessageSummary"/> interface.</typeparam>
        /// <param name="messages">The messages to sort.</param>
        /// <param name="orderBy">The sort ordering.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <para><paramref name="messages"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is <c>null</c>.</para>
        /// </exception>
        /// <exception cref="System.ArgumentException">
        /// <para><paramref name="messages"/> contains one or more items that is missing information needed for sorting.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is an empty list.</para>
        /// </exception>
        public static IList <T> Sort <T> (this IEnumerable <T> messages, IList <OrderBy> orderBy) where T : IMessageSummary
        {
            if (messages == null)
            {
                throw new ArgumentNullException("messages");
            }

            if (orderBy == null)
            {
                throw new ArgumentNullException("orderBy");
            }

            if (orderBy.Count == 0)
            {
                throw new ArgumentException("No sort order provided.", "orderBy");
            }

            var list = new List <T> ();

            foreach (var message in messages)
            {
                if (message.Envelope == null)
                {
                    throw new ArgumentException("One or more messages is missing information needed for sorting.", "messages");
                }

                list.Add(message);
            }

            if (list.Count < 2)
            {
                return(list);
            }

            var comparer = new MessageComparer <T> (orderBy);

            list.Sort(comparer);

            return(list);
        }
Пример #10
0
        /// <summary>
        /// Sorts the messages by the specified ordering.
        /// </summary>
        /// <remarks>
        /// Sorts the messages by the specified ordering.
        /// </remarks>
        /// <returns>The sorted messages.</returns>
        /// <typeparam name="T">The message items must implement the <see cref="IMessageSummary"/> interface.</typeparam>
        /// <param name="messages">The messages to sort.</param>
        /// <param name="orderBy">The sort ordering.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <para><paramref name="messages"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is <c>null</c>.</para>
        /// </exception>
        /// <exception cref="System.ArgumentException">
        /// <para><paramref name="messages"/> contains one or more items that is missing information needed for sorting.</para>
        /// <para>-or-</para>
        /// <para><paramref name="orderBy"/> is an empty list.</para>
        /// </exception>
        public static void Sort <T> (this List <T> messages, IList <OrderBy> orderBy) where T : IMessageSummary
        {
            if (messages == null)
            {
                throw new ArgumentNullException(nameof(messages));
            }

            if (orderBy == null)
            {
                throw new ArgumentNullException(nameof(orderBy));
            }

            if (orderBy.Count == 0)
            {
                throw new ArgumentException("No sort order provided.", nameof(orderBy));
            }

            var requiredFields = GetMessageSummaryItems(orderBy);

            for (int i = 0; i < messages.Count; i++)
            {
                if ((messages[i].Fields & requiredFields) != requiredFields)
                {
                    throw new ArgumentException("One or more messages is missing information needed for sorting.", nameof(messages));
                }
            }

            if (messages.Count < 2)
            {
                return;
            }

            var comparer = new MessageComparer <T> (orderBy);

            messages.Sort(comparer);
        }
Пример #11
0
        public void Expect(params TransportMessageSent[] expectedMessages)
        {
            var comparer = new MessageComparer();

            comparer.CheckExpectations(Messages, expectedMessages, false);
        }
Пример #12
0
 public void Expect(params TransportMessageSent[] expectedMessages)
 {
     var comparer = new MessageComparer();
     comparer.CheckExpectations(Messages, expectedMessages, false);
 }
Пример #13
0
 public MessageBodyTests()
 {
     comparer = new MessageComparer();
 }
        private ComparisonResult ValidateInteraction(Message interaction, Message actualMessage)
        {
            var comparer = new MessageComparer();

            return(comparer.Compare(interaction, actualMessage));
        }
Пример #15
0
    public static void Main(String[] args)
    {
        try
        {
            // Считывание кол-ва человек.
            string count = File.ReadLines("C:/Users/user/source/repos/TaskForSoftius/TaskForSoftius/Res/input.txt").First();
            // Кол-во сообщений у каждого.
            string messages = File.ReadLines("C:/Users/user/source/repos/TaskForSoftius/TaskForSoftius/Res/input.txt").Skip(1).First();

            string[] mass   = messages.Split(' ');
            int      n      = Convert.ToInt16(count);
            int[]    degseq = new int[n];

            List <Item> list = new List <Item>();

            for (int i = 0; i < mass.Length; i++)
            {
                Item person = new Item();
                person.a    = Convert.ToInt16(mass[i]);
                person.n    = i + 1;
                person.used = false;
                list.Add(person);
            }

            MessageComparer nc = new MessageComparer();

            list.Sort(1, n - 1, nc);

            int us = 1;
            list[0].used = true;
            List <Pair> ans = new List <Pair>();
            int         cnt = 0;

            for (int i = 0; i < n; i++)
            {
                if (list[i].used)
                {
                    for (; us < n && list[i].a > 0; list[i].a--, us++)
                    {
                        Pair forAnswer = new Pair();
                        list[us].used = true;
                        forAnswer.a   = list[i].n;
                        forAnswer.b   = list[us].n;
                        ans.Add(forAnswer);
                    }
                }
                else
                {
                    Console.WriteLine("-1");
                    return;
                }
            }
            Console.WriteLine(n - 1);
            for (int i = 0; i < n - 1; i++)
            {
                Console.WriteLine(ans[i].a + " " + ans[i].b);
            }
            Console.ReadKey();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            Console.ReadKey();
        }
    }