public WebStoreResultMessage UpdateScriptingApplicationToWebStore(WebStoreRequestMessage message)
        {
            UsernameToken token = SecurityHelper.GetLicenseToken(RequestSoapContext.Current);

            WebStoreResultMessage result = new WebStoreResultMessage();

            // Validate license (application limit)
            if ( userDatabaseManager.ValidateApplicationLicenseLimit(token.Username) )
            {
                bool exists = userDatabaseManager.RegisteredApplicationExists(token.Username, message.ApplicationID);
                if ( exists )
                {
                    // Update to web store db
                    userDatabaseManager.UpdateApplicationToWebStore(token.Username, message);

                    result.Message = "Application registered and saved into web store.";
                    result.IsApplicationRegistered = true;
                }
                else
                {
                    #region Add Application
                    // Register application in database.
                    bool inserted = userDatabaseManager.RegisterApplication(token.Username, message.ApplicationID);

                    if ( inserted )
                    {
                        // Registered succesfully, continue adding the application to web store.
                        // Add to web store db
                        userDatabaseManager.AddApplicationToWebStore(token.Username, message);

                        result.Message = "Application registered and saved into web store.";
                        result.IsApplicationRegistered = true;
                    }
                    else
                    {
                        // Send message warning.
                        result.IsApplicationRegistered = false;
                        result.Message = "Either the application id is invalid or the application already exists on web store.";
                    }
                    #endregion
                }
            }
            else
            {
                // Send message warning.
                result.IsApplicationRegistered = false;
                result.Message = "Your application license limit doesn't allow more applications to be registered. Please purchase additional licenses.";
            }

            return result;
        }
        public WebStoreResultMessage RateApplication(WebStoreRequestMessage message)
        {
            UsernameToken token = SecurityHelper.GetLicenseToken(RequestSoapContext.Current);

            WebStoreResultMessage result = new WebStoreResultMessage();
            result.Message = "Rating complete";
            userDatabaseManager.RateApplication(message);

            return result;
        }
        public WebStoreResultMessage RemoveScriptingApplication(WebStoreRequestMessage message)
        {
            UsernameToken token = SecurityHelper.GetLicenseToken(RequestSoapContext.Current);
            WebStoreResultMessage result = new WebStoreResultMessage();

            bool exists = userDatabaseManager.RegisteredApplicationExists(token.Username, message.ApplicationID);
            if ( exists )
            {
                userDatabaseManager.RemoveScriptingApplication(token.Username, message);
                result.Message = "Scripting application removed.";
            }
            else
            {
                result.Message = "Scripting application not found.";
            }

            return result;
        }
        public WebStoreResultMessage DownloadApplication(WebStoreRequestMessage message)
        {
            UsernameToken token = SecurityHelper.GetLicenseToken(RequestSoapContext.Current);

            WebStoreResultMessage result = new WebStoreResultMessage();

            bool exists = userDatabaseManager.RegisteredApplicationExists(token.Username, message.ApplicationID);

            if ( exists )
            {
                // Update to web store db
                string applicationData = userDatabaseManager.GetApplication(message);

                result.Message = "Application downloaded.";
                result.IsApplicationRegistered = true;
                result.ApplicationData = applicationData;
            }
            else
            {
                // Send message warning.
                result.IsApplicationRegistered = false;
                result.Message = "This application cannot be found in the system.";
            }

            return result;
        }