Beispiel #1
0
        static void Main(string[] args)
        {
            Console.Write("Please enter 1 or more service ticket ids: ");
            var invnumText = Console.ReadLine();

            var invnums = invnumText.Split(new [] { ',', ' ', ';' }, StringSplitOptions.RemoveEmptyEntries);

            var limit = invnums.Length;

            var request = new FindInvoiceRequest();
            request.Limit = limit;

            foreach(var ticket in invnums) {
                request.Filters.Add(new FilterCriteria<InvoiceProperties> { TargetField = InvoiceProperties.InvoiceNumber, Value = ticket, Operation = FilterOperation.Equal });
            }

            var svc = new InvoicesApi();
            var result = svc.FindInvoices(request);
            //foreach (var group in result.GroupBy(q => q.BoardName))
            //{
            //    Console.WriteLine(group.Key);
            //    foreach (var item in group)
            //    {
            //        Console.WriteLine("\t\tSummary: {0}, {1}, {2}", item.Summary, item.ContactName, item.CompanyName);
            //    }
            //}

            Console.WriteLine("\n\n\nDone!");
            Console.ReadLine();
        }
Beispiel #2
0
        public IEnumerable<InvoiceInfo> FindInvoices(FindInvoiceRequest request)
        {
            var filterExpression = string.Join(" OR ", request.Filters.Select(q => q.ToString()).ToArray());
            var message = string.Format(MessageConstants.Invoices_FindInvoices, filterExpression);

            var doc = new XmlDocument();
            var resultXml = ProcessAction(message);
            doc.LoadXml(resultXml);

            return doc.DocumentElement.ChildNodes.Cast<XmlNode>()
                    .First(q => "Tickets".Equals(q.Name))
                    .ChildNodes.Cast<XmlNode>()
                    .Select(q => InvoiceInfo.Create(q));
        }