public UpdateServiceApplication(ServiceApplicationType serviceApplicationType)
        {
            // 30 Minutes
            this.Timeout = 1800000;

            this.ServiceApplicationType = serviceApplicationType;
            switch (this.ServiceApplicationType)
            {
            case Entities.Flags.ServiceApplicationType.Innovation:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseInnovation;
                break;

            case Entities.Flags.ServiceApplicationType.InterComm:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseInterComm;
                break;

            case Entities.Flags.ServiceApplicationType.Learning:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseEnrich;
                break;

            case Entities.Flags.ServiceApplicationType.NewsStream:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseNewsManager;
                break;

            case Entities.Flags.ServiceApplicationType.SocialPlatform:
                this.ServiceApplicationTypeName = UserDisplay.DatabasePlatform;
                break;

            case Entities.Flags.ServiceApplicationType.VideoStream:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseVideo;
                break;
            }
        }
        public ProvisionServiceApplication(ServiceApplicationType serviceApplicationType,
                                           string databaseName                 = null,
                                           string databaseServer               = null,
                                           string databaseFailoverServer       = null,
                                           string reportDatabaseName           = null,
                                           string reportDatabaseServer         = null,
                                           string reportDatabaseFailoverServer = null,
                                           string applicationPoolName          = null,
                                           string applicationPoolUsername      = null,
                                           string applicationPoolPassword      = null,
                                           string licenseKey                          = null,
                                           string emailListLocation                   = null,
                                           string videoEncodingInputFolder            = null,
                                           string videoEncodingOutputFolder           = null,
                                           string videoStreamingServerFolder          = null,
                                           string videoUploadFolder                   = null,
                                           string videoStreamingServerUrlDefaultZone  = null,
                                           string videoStreamingServerUrlIntranetZone = null,
                                           string videoStreamingServerUrlInternetZone = null,
                                           string videoStreamingServerUrlCustomZone   = null,
                                           string videoStreamingServerUrlExtranetZone = null,
                                           string learningGlobalKnowledgeBase         = null,
                                           bool useTimerJob = false)
        {
            // 30 Minutes
            this.Timeout = 1800000;

            this.DatabaseName                 = databaseName;
            this.DatabaseServer               = databaseServer;
            this.DatabaseFailoverServer       = databaseFailoverServer;
            this.ReportDatabaseName           = reportDatabaseName;
            this.ReportDatabaseServer         = reportDatabaseServer;
            this.ReportDatabaseFailoverServer = reportDatabaseFailoverServer;
            this.ApplicationPoolName          = applicationPoolName;
            this.ApplicationPoolPassword      = applicationPoolPassword;
            this.ApplicationPoolUsername      = applicationPoolUsername;
            this.LicenseKey                          = licenseKey;
            this.EmailListLocation                   = emailListLocation;
            this.VideoEncodingInputFolder            = videoEncodingInputFolder;
            this.VideoEncodingOutputFolder           = videoEncodingOutputFolder;
            this.VideoStreamingServerFolder          = videoStreamingServerFolder;
            this.VideoStreamingServerUrlCustomZone   = videoStreamingServerUrlCustomZone;
            this.VideoStreamingServerUrlDefaultZone  = videoStreamingServerUrlDefaultZone;
            this.VideoStreamingServerUrlExtranetZone = videoStreamingServerUrlExtranetZone;
            this.VideoStreamingServerUrlInternetZone = videoStreamingServerUrlInternetZone;
            this.VideoStreamingServerUrlIntranetZone = videoStreamingServerUrlIntranetZone;
            this.VideoUploadFolder                   = videoUploadFolder;
            this.LearningGlobalKnowledgeBase         = learningGlobalKnowledgeBase;
            this.UseTimerJob                         = useTimerJob;

            this.ServiceApplicationType = serviceApplicationType;
            switch (this.ServiceApplicationType)
            {
            case Entities.Flags.ServiceApplicationType.Innovation:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseInnovation;
                break;

            case Entities.Flags.ServiceApplicationType.InterComm:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseInterComm;
                break;

            case Entities.Flags.ServiceApplicationType.Learning:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseEnrich;
                break;

            case Entities.Flags.ServiceApplicationType.NewsStream:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseNewsManager;
                break;

            case Entities.Flags.ServiceApplicationType.SocialPlatform:
                this.ServiceApplicationTypeName = UserDisplay.DatabasePlatform;
                break;

            case Entities.Flags.ServiceApplicationType.VideoStream:
                this.ServiceApplicationTypeName = UserDisplay.DatabaseVideo;
                break;
            }
        }