using System; using System.ServiceModel; class client { public static void Main(String [] args) { Console.WriteLine("starting indigo/sforce demo"); if ( args.Length != 2 ) { Console.WriteLine("uasage is client.exe username password"); return; } // should work but doesn't SoapProxy proxy = new SoapProxy("Soap"); SoapProxy proxy = new SoapProxy(new EndpointAddress("https://www.salesforce.com/services/Soap/c/5.0"), new BasicProfileBinding(BasicProfileSecurityMode.Https)); login_RequestMessage loginMsg = new login_RequestMessage(); loginMsg.username = args[0]; loginMsg.password = args[1]; LoginResult res = proxy.login(loginMsg).result; Console.WriteLine("new Server Url " + res.serverUrl); Console.WriteLine("Session Id " + res.sessionId); proxy = new SoapProxy(new EndpointAddress(res.serverUrl), proxy.Endpoint.Binding); Account [] a = new Account[5]; for (int i = 0; i < a.Length; i++) { a[i] = new Account(); a[i].Name = "Indigo Test Account " + i; } create_RequestMessage crm = new create_RequestMessage(); crm.SessionHeader = new SessionHeader(); crm.SessionHeader.sessionId = res.sessionId; crm.sObjects = a; SaveResult [] sr = proxy.create(crm).result; for(int i =0; i < sr.Length; i++) { if (sr[i].success) Console.WriteLine("new id is " + sr[i].id); else Console.WriteLine("failed " + sr[i].errors[0].message); } query_RequestMessage qrm = new query_RequestMessage(); qrm.SessionHeader = crm.SessionHeader; qrm.queryString = "Select Id, Name from Account where SystemModStamp > " + System.Xml.XmlConvert.ToString(DateTime.Now.AddHours(-12)); qrm.QueryOptions = new QueryOptions(); qrm.QueryOptions.batchSize = 10; qrm.QueryOptions.batchSizeSpecified = true; query_ResponseMessage rm = proxy.query(qrm); Console.WriteLine("{0} total records", rm.result.size); foreach (Account o in rm.result.records) { Console.WriteLine("{0} {1}", o.Id, o.Name); } Console.WriteLine("finishing indigo/sforce demo"); } }