示例#1
0
        } // END METHOD

        /// <summary>
        /// Asynchonous Soap Call to get the ECGridOS SessionInfo
        /// Uses private variable for APIKey - must be set prior to calling
        /// Converts EAP pattern into TAP pattern to use async/await from ECGridAPIAsync Class
        /// </summary>
        /// <param name="APIKey">String APIKey/SessionID in GUID Format for ECGridOS</param>
        /// <returns>net.ecgridos.SessionInfo Class: User Session information</returns>
        public async Task <ECGridOS_API.SessionInfo> SessionInfoAsync(string APIKey)
        {
            try
            {
                using (ECGridOS_API.ECGridOSAPIv3 ECGridOS = new ECGridOS_API.ECGridOSAPIv3())
                {
                    // Check to make sure it is in valid Guid Format
                    if (IsValidGUID(_apiKey))
                    {
                        // Make the call and return the results
                        var AsyncTask = await ECGridAPIAsync.SessionInfoAsync(ECGridOS, APIKey);

                        return(AsyncTask.Result);
                    }
                    else
                    {
                        throw new Exception("Invalid GUID API Key");
                    }
                }
            }
            catch (SoapException SoapEx)
            {
                // SOAP Exceptions
                Console.WriteLine(ECGridAPI.ShowSoapError(SoapEx));
                return(null);
            }
        } // END METHOD
示例#2
0
        } // END METHOD

        /// <summary>
        /// Synchonous Soap Call to get the ECGridOS SessionInfo
        /// </summary>
        /// <param name="APIKey">String APIKey/SessionID in GUID Format for ECGridOS</param>
        /// <returns>net.ecgridos.SessionInfo Class: User Session information</returns>
        public ECGridOS_API.SessionInfo SessionInfo(string APIKey)
        {
            try
            {
                using (ECGridOS_API.ECGridOSAPIv3 ECGridOS = new ECGridOS_API.ECGridOSAPIv3())
                {
                    // Check to make sure it is in valid Guid Format
                    if (IsValidGUID(APIKey))
                    {
                        // Make the call and return the results
                        return(ECGridOS.WhoAmI(APIKey));
                    }
                    else
                    {
                        throw new Exception("Invalid GUID API Key");
                    }
                }
            }
            catch (SoapException SoapEx)
            {
                // SOAP Exceptions
                Console.WriteLine(ECGridAPI.ShowSoapError(SoapEx));
                return(null);
            }
        } // END METHOD
示例#3
0
 /// <summary>
 /// Synchonous Soap Call to get the ECGridOS Version
 /// </summary>
 /// <returns>String: ECgridOS Version</returns>
 public string APIVersion()
 {
     try
     {
         using (ECGridOS_API.ECGridOSAPIv3 ECGridOS = new ECGridOS_API.ECGridOSAPIv3())
         {
             // Make the call and return the results
             return(ECGridOS.Version());
         }
     }
     catch (SoapException SoapEx)
     {
         // SOAP Exceptions
         return(ECGridAPI.ShowSoapError(SoapEx));
     }
 } // END METHOD
示例#4
0
        } // END METHOD

        /// <summary>
        /// Asynchonous Soap Call to get the ECGridOS Version
        /// Converts EAP pattern into TAP pattern to use async/await from ECGridAPIAsync Class
        /// </summary>
        /// <returns>Task string: ECGridOS Version</returns>
        public async Task <string> APIVersionAsync()
        {
            try
            {
                using (ECGridOS_API.ECGridOSAPIv3 ECGridOS = new ECGridOS_API.ECGridOSAPIv3())
                {
                    // Make the call and await the results to return
                    var AsyncTask = await ECGridAPIAsync.VersionAsync(ECGridOS);

                    return(AsyncTask.Result);
                }
            }
            catch (SoapException SoapEx)
            {
                // SOAP Exceptions
                return(ECGridAPI.ShowSoapError(SoapEx));
            }
        } // END METHOD
示例#5
0
        /// <summary>
        /// Asyncronous Call to get the ECGridOS Version
        /// Converts EAP pattern into TAP pattern to use async/await
        /// </summary>
        /// <param name="client">The ECGridOS Client calling this method</param>
        /// <returns>Task VersionCompletedArgs</returns>
        public static Task <ECGridOS_API.VersionCompletedEventArgs> VersionAsync(this ECGridOS_API.ECGridOSAPIv3 client)
        {
            // Create the Task Completion source and handler
            var tcs = CreateSource <ECGridOS_API.VersionCompletedEventArgs>(null);

            ECGridOS_API.VersionCompletedEventHandler handler = null;
            handler = (sender, e) => TransferCompletion(tcs, e, () => e, () => client.VersionCompleted -= handler);
            client.VersionCompleted += handler;

            try
            {
                // make the async call
                client.VersionAsync(tcs);
            }
            catch
            {
                client.VersionCompleted -= handler;
                tcs.TrySetCanceled();
                throw;
            }

            return(tcs.Task);
        } // END METHOD
示例#6
0
        static void Main(string[] args)
        {
            try
            {
                #region Setup Console Window

                SafeNativeMethods.SetWindowPos(MyConsole, 0, 10, 10, 0, 0, SWP_NOSIZE);
                Console.Title = "ECGridOS .NET Framework 4.6 Examples";
                Console.WindowHeight = Console.WindowHeight = 50;
                Console.WindowWidth = Console.WindowWidth = 100;

                #endregion

                // Diagnostic Tools
                Stopwatch stopW = new Stopwatch();

                // Replace this with your API Key GUID in the App.config file or somewhere Secure.
                string MyAPIKey = ConfigurationManager.AppSettings["APIKey"].ToString();

                // Instantiate ECGridOSAPI Class & Set Your APIKey in the Client
                ECGridAPI ECGrid = new ECGridAPI(MyAPIKey);
                ECGridOS_API.ECGridOSAPIv3 ECGridClient = new ECGridOS_API.ECGridOSAPIv3();

                /* 
                 * Example calls from the ECGridAPI Class
                 * Includes SOAP Calls with Web Reference above as well as WebRequest GET Sync and Async calls
                 */

                // Synchronous SOAP Version Call
                stopW.Start();
                var version = ECGrid.APIVersion();
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From SOAP Synchronous: {version}");
                Console.WriteLine($"Synchronous SOAP Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous SOAP Version Call
                stopW.Restart();
                var versionAsync = ECGrid.APIVersionAsync().Result;
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From SOAP Asynchronous: {versionAsync}");
                Console.WriteLine($"Asynchronous SOAP Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Synchronous Http GET Version Call
                stopW.Restart();
                var versionGet = ECGrid.APIVersionHttpGet();
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From Http GET Synchronous: {versionGet}");
                Console.WriteLine($"Syncronous Http GET Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET Version Call
                stopW.Restart();
                var versionAsyncGet = ECGrid.APIVersionHttpGetAsync().Result;
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From Http GET Asynchronous: {versionAsyncGet}");
                Console.WriteLine($"Asyncronous Http GET Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET to XML Version Call
                stopW.Restart();
                var versionAsyncGetXML = ECGrid.APIVersionHttpGetAsyncXML().Result;
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From Http GET To XML Asynchronous: {versionAsyncGetXML?.ToString()}");
                Console.WriteLine($"Asyncronous Http GET To XML Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET to JSON Version Call
                stopW.Restart();
                var versionAsyncGetJSON = ECGrid.APIVersionHttpGetAsyncJSON().Result;
                stopW.Stop();
                Console.WriteLine($"ECGridOS Version From Http GET To JSON Asynchronous: {versionAsyncGetJSON?.ToString()}");
                Console.WriteLine($"Asyncronous Http GET To JSON Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");


                Console.WriteLine($"{new String('-', 20)}{Environment.NewLine}");


                // Synchronous SOAP WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfo = ECGrid.SessionInfo();
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From SOAP Synchronous: {sessionInfo?.UserID}");
                Console.WriteLine($"Synchronous Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous SOAP WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfoAsync = ECGrid.SessionInfoAsync().Result;
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From SOAP Asynchronous: {sessionInfoAsync?.UserID}");
                Console.WriteLine($"Asynchronous Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Synchronous Http GET WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfoGet = ECGrid.SessionInfoHttpGet();
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From Http GET Sync to Sessioninfo Object: {sessionInfoGet?.UserID}");
                Console.WriteLine($"Synchronous Http GET to Object Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfoGetAsync = ECGrid.SessionInfoHttpGetAsync().Result;
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From Http GET Async to Sessioninfo Object: {sessionInfoGetAsync?.UserID}");
                Console.WriteLine($"Asyncronous Http GET to Object Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET to XML WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfoGetAsyncXML = ECGrid.SessionInfoHttpGetAsyncXML().Result;
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From Http GET Async to XML: {sessionInfoGetAsyncXML?.ToString()}");
                Console.WriteLine($"Asyncronous Http GET to XML Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                // Asynchronous Http GET to JSON WhoAmI/SessionInfo Call
                stopW.Restart();
                var sessionInfoGetAsyncJSON = ECGrid.SessionInfoHttpGetAsyncJSON().Result;
                stopW.Stop();
                Console.WriteLine($"ECGrid SessionInfo UserID From Http GET Async to JSON: {sessionInfoGetAsyncJSON?.ToString()}");
                Console.WriteLine($"Asyncronous Http GET to JSON Time in Seconds: {stopW.Elapsed.TotalSeconds}{Environment.NewLine}");

                Console.WriteLine($"{new String('-', 20)}{Environment.NewLine}");

            }
            catch (Exception ex)
            {
                // Everything Else
                Console.WriteLine("Unhandled Exception: " + ex.ToString());
            }

            // End Examples
            Console.WriteLine("Press any Key to quit...");
            Console.ReadKey();

        } // END MAIN