public override SiteProvisionerStepResponse Execute() { var response = new SiteProvisionerStepResponse(); var fileService = new FileService(); var logFileName = GetErrorLogFileName(); try { var siteService = new SiteService { AssetDirectory = Properties.AssetDirectory }; var siteTitle = GetProperty("Title"); var siteUrl = GetProperty("URL"); if (string.IsNullOrEmpty(siteTitle) || string.IsNullOrEmpty(siteUrl)) { throw new Exception("The Title and URL values are required."); } var siteInfo = siteService.CreateSubsite(siteTitle, siteUrl); var siteId = siteInfo.Id; SetSiteId(siteId); SetProperty("SiteUrl", siteInfo.Url); response.Success = true; } catch (Exception ex) { fileService.SaveSiteProvisionerErrorLogs(logFileName, ex.StackTrace, null, StepName, StepType.ToString(), Properties.AssetDirectory); response.Message = ex.Message; response.Success = false; } return(response); }