Beispiel #1
0
        public static ITemplateController GetTemplateController()
        {
            var ctl = ComponentFactory.GetComponent<ITemplateController>();

            if (ctl == null)
            {
                ctl = new TemplateController();
                ComponentFactory.RegisterComponentInstance<ITemplateController>(ctl);
            }
            return ctl;
        }
Beispiel #2
0
		public string TemplatesOptions(Templates.TemplateTypes templateType)
		{
			StringBuilder sb = new StringBuilder();
			TemplateController tc = new TemplateController();
			sb.Append("<option value=\"0\">[RESX:Default]</option>");
			List<TemplateInfo> lc = tc.Template_List(PortalId, ModuleId, templateType);
			foreach (TemplateInfo l in lc)
			{
				sb.Append("<option value=\"" + l.TemplateId + "\">" + l.Subject + "</option>");
			}
			return sb.ToString();
		}
    public static void DeleteTemplate(Model_Template parameters)
    {
        bool   ret     = TemplateController.Delete(parameters);
        bool   success = false;
        string msg     = "no";

        if (ret)
        {
            success = true;
            msg     = "Delete Completed!!";
        }


        string res = (new BaseWebMethodAJax
        {
            success = success,
            msg = msg
        }).ObjectToJSON();

        AppTools.SendResponse(HttpContext.Current.Response, res);
    }
        public void Test_Task_GetPolly_Positive()
        {
            var eventBus     = new Mock <IEventBus>();
            var httpClient   = new HttpClient();
            var logger       = new Mock <ILogger <TemplateController> >();
            var saveresponse = new Mock <IKafkaResponseRepository>();

            httpClient.BaseAddress = new Uri("http://localhost");
            // var identityService = new Mock<IdentityService>(MockBehavior.Default, httpClient);
            var identityService           = new Mock <HttpClientFactory>();
            TemplateController controller = new TemplateController(eventBus.Object, identityService.Object, saveresponse.Object, logger.Object);

            try
            {
                var result = controller.GetPolly().GetAwaiter().GetResult();
                Assert.Equal(200, ((ObjectResult)result).StatusCode);
            }
            catch (Exception)
            {
            }
        }
Beispiel #5
0
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            GetDte();
            GetStatusbar();
            GetCodeModelProvider();
            RegisterLanguageService();
            RegisterIcons();
            ClearTempDirectory();


            this.solutionMonitor      = new SolutionMonitor();
            this.templateController   = new TemplateController(dte);
            this.eventQueue           = new EventQueue(statusBar);
            this.generationController = new GenerationController(dte, metadataProvider, templateController, eventQueue);
            RenderTemplate.Initialize(this);

            WireupEvents();
            ErrorList.Initialize(this);
        }
Beispiel #6
0
        private void LoadTemplates()
        {
            List <TemplateInfo> templates = TemplateController.GetTemplates(_templatePath);

            foreach (TemplateInfo templateInfo in templates)
            {
                lstTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstNPLContainerTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstNPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstFPLContainerTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstFPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstPPLContainerTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstPPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstCPLContainerTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstCPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstSPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstDetailTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstABPLContainerTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
                lstABPLTemplate.Items.Add(new ListItem(templateInfo.Name, templateInfo.Path));
            }
        }
Beispiel #7
0
        public TemplateControllerTests()
        {
            _manager = new Mock <ITemplateManager>();


            var appSettings = new AppSettings()
            {
                DefaultSqlConnection = ""
            };

            _options = new Mock <IOptions <AppSettings> >();
            _options.Setup(m => m.Value).Returns(appSettings);

            var connString = new ConnectionStrings {
                DefaultConnection = ""
            };

            _conStrings = new Mock <IOptions <ConnectionStrings> >();
            _conStrings.Setup(m => m.Value).Returns(connString);

            _controller = new TemplateController(_manager.Object, _options.Object, _conStrings.Object);
        }
Beispiel #8
0
        public void Expect_GenerateTemplate()
        {
            var eventQueue = Substitute.For <IEventQueue>();

            eventQueue.When(m => m.Enqueue(Arg.Any <Action>())).Do(c =>
            {
                Trace.WriteLine("Enqueue Called");
                c.Arg <Action>()();
            });

            var templateController = new TemplateController(dte, item => new TemplateSubstitute(item));

            var generationController = new GenerationController(dte, metadataProvider, templateController, eventQueue);

            var type    = typeof(WebApiController);
            var nsParts = type.FullName.Remove(0, 11).Split('.');

            var path = string.Join(@"\", nsParts);

            var templateFilename = Path.Combine(SolutionDirectory, path + ".tstemplate");

            generationController.OnTemplateChanged(templateFilename);
        }
Beispiel #9
0
        protected void cmdApply_Click(object sender, EventArgs e)
        {
            XmlDocument doc = null;

            foreach (var customizedValue in _customizations)
            {
                var parentNode = customizedValue.Node.ParentNode;
                // ReSharper disable PossibleNullReferenceException
                if (customizedValue.ValueSource != string.Empty)
                {
                    ((XmlElement)parentNode).SetAttribute(customizedValue.ValueSource, customizedValue.Value);
                    ((XmlElement)parentNode).SetAttribute("installmode", "force");
                }
                else
                {
                    parentNode.InnerText = customizedValue.Value;
                }
                // ReSharper restore PossibleNullReferenceException
                doc = customizedValue.Node.OwnerDocument;
            }

            TemplateController.LoadTemplate(doc, ModuleContext.PortalId, ModuleContext.TabId);
            DeleteMe();
        }
Beispiel #10
0
 protected void cmdConfirmOverwriteFile_Click(object sender, EventArgs e)
 {
     TemplateController.SaveTemplate(txtTitle.Text, txtDescription.Text, ModuleContext, true,
                                     MaxNumberOfRecords());
     Response.Redirect(Globals.NavigateURL(ModuleContext.TabId), true);
 }
Beispiel #11
0
#pragma warning disable IDE1006 // Naming Styles
        static async Task Main(string[] args)
#pragma warning restore IDE1006 // Naming Styles
        {
            #region Delegates.GetDirectory

            var getEmptyDirectoryDelegate = new GetRelativeDirectoryDelegate(string.Empty);

            var getTemplatesDirectoryDelegate = new GetRelativeDirectoryDelegate(Directories.Base[Entity.Templates]);

            var getDataDirectoryDelegate = new GetRelativeDirectoryDelegate(Directories.Base[Entity.Data], getEmptyDirectoryDelegate);

            var getRecycleBinDirectoryDelegate           = new GetRelativeDirectoryDelegate(Directories.Base[Entity.RecycleBin], getDataDirectoryDelegate);
            var getProductImagesDirectoryDelegate        = new GetRelativeDirectoryDelegate(Directories.Base[Entity.ProductImages], getDataDirectoryDelegate);
            var getAccountProductImagesDirectoryDelegate = new GetRelativeDirectoryDelegate(Directories.Base[Entity.AccountProductImages], getDataDirectoryDelegate);
            var getReportDirectoryDelegate           = new GetRelativeDirectoryDelegate(Directories.Base[Entity.Reports], getDataDirectoryDelegate);
            var getValidationDirectoryDelegate       = new GetRelativeDirectoryDelegate(Directories.Base[Entity.Md5], getDataDirectoryDelegate);
            var getProductFilesBaseDirectoryDelegate = new GetRelativeDirectoryDelegate(Directories.Base[Entity.ProductFiles], getDataDirectoryDelegate);
            var getScreenshotsDirectoryDelegate      = new GetRelativeDirectoryDelegate(Directories.Base[Entity.Screenshots], getDataDirectoryDelegate);

            var getProductFilesDirectoryDelegate = new GetUriDirectoryDelegate(getProductFilesBaseDirectoryDelegate);

            #endregion

            #region Delegates.GetFilename

            var getJsonFilenameDelegate = new GetJsonFilenameDelegate();
            var getBinFilenameDelegate  = new GetBinFilenameDelegate();

            var getStoredHashesFilenameDelegate = new GetFixedFilenameDelegate("hashes", getBinFilenameDelegate);

            var getAppTemplateFilenameDelegate    = new GetFixedFilenameDelegate("app", getJsonFilenameDelegate);
            var gerReportTemplateFilenameDelegate = new GetFixedFilenameDelegate("report", getJsonFilenameDelegate);
            var getCookiesFilenameDelegate        = new GetFixedFilenameDelegate("cookies", getJsonFilenameDelegate);
            var getSettingsFilenameDelegate       = new GetFixedFilenameDelegate("settings", getJsonFilenameDelegate);

            var getIndexFilenameDelegate = new GetFixedFilenameDelegate(Filenames.Base[Entity.Index], getJsonFilenameDelegate);

            var getWishlistedFilenameDelegate = new GetFixedFilenameDelegate("wishlisted", getJsonFilenameDelegate);
            var getUpdatedFilenameDelegate    = new GetFixedFilenameDelegate("updated", getJsonFilenameDelegate);

            var getUriFilenameDelegate        = new GetUriFilenameDelegate();
            var getReportFilenameDelegate     = new GetReportFilenameDelegate();
            var getValidationFilenameDelegate = new GetValidationFilenameDelegate();

            #endregion

            #region Delegates.GetPath

            var getStoredHashesPathDelegate = new GetPathDelegate(
                getEmptyDirectoryDelegate,
                getStoredHashesFilenameDelegate);

            var getAppTemplatePathDelegate = new GetPathDelegate(
                getTemplatesDirectoryDelegate,
                getAppTemplateFilenameDelegate);

            var getReportTemplatePathDelegate = new GetPathDelegate(
                getTemplatesDirectoryDelegate,
                gerReportTemplateFilenameDelegate);

            var getCookiePathDelegate = new GetPathDelegate(
                getEmptyDirectoryDelegate,
                getCookiesFilenameDelegate);

            var getSettingsPathDelegate = new GetPathDelegate(
                getEmptyDirectoryDelegate,
                getSettingsFilenameDelegate);

            var getGameDetailsFilesPathDelegate = new GetPathDelegate(
                getProductFilesDirectoryDelegate,
                getUriFilenameDelegate);

            var getValidationPathDelegate = new GetPathDelegate(
                getValidationDirectoryDelegate,
                getValidationFilenameDelegate);

            #endregion

            var statusController = new StatusController();

            var ioOperations    = new List <string>();
            var ioTraceDelegate = new IOTraceDelegate(ioOperations);

            var streamController    = new StreamController();
            var fileController      = new FileController();
            var directoryController = new DirectoryController();

            var storageController = new StorageController(
                streamController,
                fileController,
                ioTraceDelegate);

            var serializationController = new JSONStringController();

            var convertBytesToStringDelegate  = new ConvertBytesToStringDelegate();
            var getBytesMd5HashAsyncDelegate  = new GetBytesMd5HashAsyncDelegate(convertBytesToStringDelegate);
            var convertStringToBytesDelegate  = new ConvertStringToBytesDelegate();
            var getStringMd5HashAsyncDelegate = new GetStringMd5HashAsyncDelegate(
                convertStringToBytesDelegate,
                getBytesMd5HashAsyncDelegate);

            var protoBufSerializedStorageController = new ProtoBufSerializedStorageController(
                fileController,
                streamController,
                statusController,
                ioTraceDelegate);

            #region Controllers.Stash

            var storedHashesStashController = new StashController <Dictionary <string, string> >(
                getStoredHashesPathDelegate,
                protoBufSerializedStorageController,
                statusController);

            #endregion

            var precomputedHashController = new StoredHashController(storedHashesStashController);

            var serializedStorageController = new SerializedStorageController(
                precomputedHashController,
                storageController,
                getStringMd5HashAsyncDelegate,
                serializationController,
                statusController);

            #region User editable files stashControllers

            // Settings.json

            var settingsStashController = new StashController <Settings>(
                getSettingsPathDelegate,
                serializedStorageController,
                statusController);

            // templates/app.json

            var appTemplateStashController = new StashController <List <Template> >(
                getAppTemplatePathDelegate,
                serializedStorageController,
                statusController);

            // templates/report.json

            var reportTemplateStashController = new StashController <List <Template> >(
                getReportTemplatePathDelegate,
                serializedStorageController,
                statusController);

            // cookies.json - this is required to be editable to allow user paste browser cookies

            var cookieStashController = new StashController <Dictionary <string, string> >(
                getCookiePathDelegate,
                serializedStorageController,
                statusController);

            #endregion

            var consoleController = new ConsoleController();
            var formatTextToFitConsoleWindowDelegate = new FormatTextToFitConsoleWindowDelegate(consoleController);

            var consoleInputOutputController = new ConsoleInputOutputController(
                formatTextToFitConsoleWindowDelegate,
                consoleController);

            var formatBytesDelegate   = new FormatBytesDelegate();
            var formatSecondsDelegate = new FormatSecondsDelegate();

            var collectionController = new CollectionController();

            var itemizeStatusChildrenDelegate = new ItemizeStatusChildrenDelegate();

            var statusTreeToEnumerableController = new ConvertTreeToEnumerableDelegate <IStatus>(itemizeStatusChildrenDelegate);

            var applicationStatus = new Status {
                Title = "This ghost is a kind one."
            };

            var appTemplateController = new TemplateController(
                "status",
                appTemplateStashController,
                collectionController);


            var reportTemplateController = new TemplateController(
                "status",
                reportTemplateStashController,
                collectionController);

            var formatRemainingTimeAtSpeedDelegate = new FormatRemainingTimeAtSpeedDelegate();

            var statusAppViewModelDelegate = new StatusAppViewModelDelegate(
                formatRemainingTimeAtSpeedDelegate,
                formatBytesDelegate,
                formatSecondsDelegate);

            var statusReportViewModelDelegate = new StatusReportViewModelDelegate(
                formatBytesDelegate,
                formatSecondsDelegate);

            var getStatusViewUpdateDelegate = new GetStatusViewUpdateDelegate(
                applicationStatus,
                appTemplateController,
                statusAppViewModelDelegate,
                statusTreeToEnumerableController);

            var consoleNotifyStatusViewUpdateController = new NotifyStatusViewUpdateController(
                getStatusViewUpdateDelegate,
                consoleInputOutputController);

            // TODO: Implement a better way
            // add notification handler to drive console view updates
            statusController.NotifyStatusChangedAsync += consoleNotifyStatusViewUpdateController.NotifyViewUpdateOutputOnRefreshAsync;

            var constrainExecutionAsyncDelegate = new ConstrainExecutionAsyncDelegate(
                statusController,
                formatSecondsDelegate);

            var constrainRequestRateAsyncDelegate = new ConstrainRequestRateAsyncDelegate(
                constrainExecutionAsyncDelegate,
                collectionController,
                statusController,
                new string[] {
                Models.Uris.Uris.Paths.Account.GameDetails,             // gameDetails requests
                Models.Uris.Uris.Paths.ProductFiles.ManualUrlDownlink,  // manualUrls from gameDetails requests
                Models.Uris.Uris.Paths.ProductFiles.ManualUrlCDNSecure, // resolved manualUrls and validation files requests
                Models.Uris.Uris.Roots.Api                              // API entries
            });

            var uriController = new UriController();

            var cookieSerializationController = new CookieSerializationController();

            var cookiesController = new CookiesController(
                cookieStashController,
                cookieSerializationController,
                statusController);

            var networkController = new NetworkController(
                cookiesController,
                uriController,
                constrainRequestRateAsyncDelegate);

            var downloadFromResponseAsyncDelegate = new DownloadFromResponseAsyncDelegate(
                networkController,
                streamController,
                fileController,
                statusController);

            var downloadFromUriAsyncDelegate = new DownloadFromUriAsyncDelegate(
                networkController,
                downloadFromResponseAsyncDelegate,
                statusController);

            var requestPageAsyncDelegate = new RequestPageAsyncDelegate(
                networkController);

            var languageController = new LanguageController();

            var itemizeLoginIdDelegate = new ItemizeAttributeValuesDelegate(
                AttributeValuesPatterns.LoginId);
            var itemizeLoginUsernameDelegate = new ItemizeAttributeValuesDelegate(
                AttributeValuesPatterns.LoginUsername);
            var itemizeLoginTokenDelegate = new ItemizeAttributeValuesDelegate(
                AttributeValuesPatterns.LoginToken);
            var itemizeSecondStepAuthenticationTokenDelegate = new ItemizeAttributeValuesDelegate(
                AttributeValuesPatterns.SecondStepAuthenticationToken);

            var itemizeGOGDataDelegate     = new ItemizeGOGDataDelegate();
            var itemizeScreenshotsDelegate = new ItemizeScreenshotsDelegate();

            var formatImagesUriDelegate      = new FormatImagesUriDelegate();
            var formatScreenshotsUriDelegate = new FormatScreenshotsUriDelegate();

            var recycleDelegate = new RecycleDelegate(
                getRecycleBinDirectoryDelegate,
                fileController,
                directoryController);

            #region Correct settings

            var correctSettingsCollectionsAsyncDelegate               = new CorrectSettingsCollectionsAsyncDelegate(statusController);
            var correctSettingsDownloadsLanguagesAsyncDelegate        = new CorrectSettingsDownloadsLanguagesAsyncDelegate(languageController);
            var correctSettingsDownloadsOperatingSystemsAsyncDelegate = new CorrectSettingsDownloadsOperatingSystemsAsyncDelegate();
            var correctSettingsDirectoriesAsyncDelegate               = new CorrectSettingsDirectoriesAsyncDelegate();

            var correctSettingsActivity = new CorrectSettingsActivity(
                settingsStashController,
                statusController,
                correctSettingsCollectionsAsyncDelegate,
                correctSettingsDownloadsLanguagesAsyncDelegate,
                correctSettingsDownloadsOperatingSystemsAsyncDelegate,
                correctSettingsDirectoriesAsyncDelegate);

            #endregion

            #region Data Controllers

            var dataControllerFactory = new DataControllerFactory(
                protoBufSerializedStorageController,
                precomputedHashController,
                getDataDirectoryDelegate,
                getBinFilenameDelegate,
                statusController);

            // TODO: Remove the stub
            Interfaces.Controllers.Index.IIndexController <long> wishlistedIndexController = null;
            //  dataControllerFactory.CreateIndexController(
            //     Entity.Wishlist,
            //     getWishlistedFilenameDelegate);

            // TODO: Remove the stub
            Interfaces.Controllers.Index.IIndexController <long> updatedIndexController = null;
            // dataControllerFactory.CreateIndexController(
            //     Entity.Updated,
            //     getUpdatedFilenameDelegate);

            var activityRecordsController = dataControllerFactory.CreateStringRecordsController(Entity.Activity);

            var productsDataController           = dataControllerFactory.CreateDataControllerEx <Product>(Entity.Products);
            var accountProductsDataController    = dataControllerFactory.CreateDataControllerEx <AccountProduct>(Entity.AccountProducts);
            var gameDetailsDataController        = dataControllerFactory.CreateDataControllerEx <GameDetails>(Entity.GameDetails);
            var gameProductDataDataController    = dataControllerFactory.CreateDataControllerEx <GameProductData>(Entity.GameProductData);
            var apiProductsDataController        = dataControllerFactory.CreateDataControllerEx <ApiProduct>(Entity.ApiProducts);
            var productScreenshotsDataController = dataControllerFactory.CreateDataControllerEx <ProductScreenshots>(Entity.ProductScreenshots);
            var productDownloadsDataController   = dataControllerFactory.CreateDataControllerEx <ProductDownloads>(Entity.ProductDownloads);
            var productRoutesDataController      = dataControllerFactory.CreateDataControllerEx <ProductRoutes>(Entity.ProductRoutes);
            var validationResultsDataController  = dataControllerFactory.CreateDataControllerEx <ValidationResult>(Entity.ValidationResults);

            #endregion

            var aliasController         = new AliasController(ActivityContext.Aliases);
            var whitelistController     = new WhitelistController(ActivityContext.Whitelist);
            var prerequisitesController = new PrerequisiteController(ActivityContext.Prerequisites);
            var supplementaryController = new SupplementaryController(ActivityContext.Supplementary);

            var activityContextController = new ActivityContextController(
                aliasController,
                whitelistController,
                prerequisitesController,
                supplementaryController);

            #region Activity Controllers

            #region Authorize

            var correctUsernamePasswordAsyncDelegate = new CorrectUsernamePasswordAsyncDelegate(
                consoleInputOutputController);
            var correctSecurityCodeAsyncDelegate = new CorrectSecurityCodeAsyncDelegate(
                consoleInputOutputController);

            var attributeValuesItemizeDelegates = new Dictionary <string, IItemizeDelegate <string, string> >
            {
                { QueryParameters.LoginId,
                  itemizeLoginIdDelegate },
                { QueryParameters.LoginUsername,
                  itemizeLoginUsernameDelegate },
                { QueryParameters.LoginToken,
                  itemizeLoginTokenDelegate },
                { QueryParameters.SecondStepAuthenticationToken,
                  itemizeSecondStepAuthenticationTokenDelegate }
            };

            var authorizationController = new AuthorizationController(
                correctUsernamePasswordAsyncDelegate,
                correctSecurityCodeAsyncDelegate,
                uriController,
                networkController,
                serializationController,
                attributeValuesItemizeDelegates,
                statusController);

            var authorizeActivity = new AuthorizeActivity(
                settingsStashController,
                authorizationController,
                statusController);

            #endregion

            #region Update.PageResults

            var getProductUpdateUriByContextDelegate        = new GetProductUpdateUriByContextDelegate();
            var getQueryParametersForProductContextDelegate = new GetQueryParametersForProductContextDelegate();

            var getProductsPageResultsAsyncDelegate = new GetPageResultsAsyncDelegate <ProductsPageResult>(
                Entity.Products,
                getProductUpdateUriByContextDelegate,
                getQueryParametersForProductContextDelegate,
                requestPageAsyncDelegate,
                getStringMd5HashAsyncDelegate,
                precomputedHashController,
                serializationController,
                statusController);

            var itemizeProductsPageResultProductsDelegate = new ItemizeProductsPageResultProductsDelegate();

            var productsUpdateActivity = new PageResultUpdateActivity <ProductsPageResult, Product>(
                (Activity.UpdateData, Entity.Products),
                activityContextController,
                getProductsPageResultsAsyncDelegate,
                itemizeProductsPageResultProductsDelegate,
                productsDataController,
                activityRecordsController,
                statusController);

            var getAccountProductsPageResultsAsyncDelegate = new GetPageResultsAsyncDelegate <AccountProductsPageResult>(
                Entity.AccountProducts,
                getProductUpdateUriByContextDelegate,
                getQueryParametersForProductContextDelegate,
                requestPageAsyncDelegate,
                getStringMd5HashAsyncDelegate,
                precomputedHashController,
                serializationController,
                statusController);

            var itemizeAccountProductsPageResultProductsDelegate = new ItemizeAccountProductsPageResultProductsDelegate();

            var accountProductsUpdateActivity = new PageResultUpdateActivity <AccountProductsPageResult, AccountProduct>(
                (Activity.UpdateData, Entity.AccountProducts),
                activityContextController,
                getAccountProductsPageResultsAsyncDelegate,
                itemizeAccountProductsPageResultProductsDelegate,
                accountProductsDataController,
                activityRecordsController,
                statusController);

            var confirmAccountProductUpdatedDelegate = new ConfirmAccountProductUpdatedDelegate();

            var updatedUpdateActivity = new UpdatedUpdateActivity(
                activityContextController,
                accountProductsDataController,
                confirmAccountProductUpdatedDelegate,
                updatedIndexController,
                statusController);

            #endregion

            #region Update.Wishlisted

            var getDeserializedPageResultAsyncDelegate = new GetDeserializedGOGDataAsyncDelegate <ProductsPageResult>(networkController,
                                                                                                                      itemizeGOGDataDelegate,
                                                                                                                      serializationController);

            var wishlistedUpdateActivity = new WishlistedUpdateActivity(
                getDeserializedPageResultAsyncDelegate,
                wishlistedIndexController,
                statusController);

            #endregion

            #region Update.Products

            // dependencies for update controllers

            var getDeserializedGOGDataAsyncDelegate = new GetDeserializedGOGDataAsyncDelegate <GOGData>(networkController,
                                                                                                        itemizeGOGDataDelegate,
                                                                                                        serializationController);

            var getDeserializedGameProductDataAsyncDelegate = new GetDeserializedGameProductDataAsyncDelegate(
                getDeserializedGOGDataAsyncDelegate);

            var getProductUpdateIdentityDelegate         = new GetProductUpdateIdentityDelegate();
            var getGameProductDataUpdateIdentityDelegate = new GetGameProductDataUpdateIdentityDelegate();
            var getAccountProductUpdateIdentityDelegate  = new GetAccountProductUpdateIdentityDelegate();

            var fillGameDetailsGapsDelegate = new FillGameDetailsGapsDelegate();

            var itemizeAllUserRequestedIdsAsyncDelegate = new ItemizeAllUserRequestedIdsAsyncDelegate(args);

            // product update controllers

            var itemizeAllGameProductDataGapsAsyncDelegatepsDelegate = new ItemizeAllMasterDetailsGapsAsyncDelegate <Product, GameProductData>(
                productsDataController,
                gameProductDataDataController);

            var itemizeAllUserRequestedIdsOrDefaultAsyncDelegate = new ItemizeAllUserRequestedIdsOrDefaultAsyncDelegate(
                itemizeAllUserRequestedIdsAsyncDelegate,
                itemizeAllGameProductDataGapsAsyncDelegatepsDelegate,
                updatedIndexController);

            var gameProductDataUpdateActivity = new MasterDetailProductUpdateActivity <Product, GameProductData>(
                Entity.GameProductData,
                getProductUpdateUriByContextDelegate,
                itemizeAllUserRequestedIdsOrDefaultAsyncDelegate,
                productsDataController,
                gameProductDataDataController,
                updatedIndexController,
                getDeserializedGameProductDataAsyncDelegate,
                getGameProductDataUpdateIdentityDelegate,
                statusController);

            var getApiProductDelegate = new GetDeserializedGOGModelAsyncDelegate <ApiProduct>(
                networkController,
                serializationController);

            var itemizeAllApiProductsGapsAsyncDelegate = new ItemizeAllMasterDetailsGapsAsyncDelegate <Product, ApiProduct>(
                productsDataController,
                apiProductsDataController);

            var itemizeAllUserRequestedOrApiProductGapsAndUpdatedDelegate = new ItemizeAllUserRequestedIdsOrDefaultAsyncDelegate(
                itemizeAllUserRequestedIdsAsyncDelegate,
                itemizeAllApiProductsGapsAsyncDelegate,
                updatedIndexController);

            var apiProductUpdateActivity = new MasterDetailProductUpdateActivity <Product, ApiProduct>(
                Entity.ApiProducts,
                getProductUpdateUriByContextDelegate,
                itemizeAllUserRequestedOrApiProductGapsAndUpdatedDelegate,
                productsDataController,
                apiProductsDataController,
                updatedIndexController,
                getApiProductDelegate,
                getProductUpdateIdentityDelegate,
                statusController);

            var getDeserializedGameDetailsDelegate = new GetDeserializedGOGModelAsyncDelegate <GameDetails>(
                networkController,
                serializationController);

            var confirmStringContainsLanguageDownloadsDelegate = new ConfirmStringMatchesAllDelegate(
                collectionController,
                Models.Separators.Separators.GameDetailsDownloadsStart,
                Models.Separators.Separators.GameDetailsDownloadsEnd);

            var replaceMultipleStringsDelegate = new ReplaceMultipleStringsDelegate();

            var itemizeDownloadLanguagesDelegate = new ItemizeDownloadLanguagesDelegate(
                languageController,
                replaceMultipleStringsDelegate);

            var itemizeGameDetailsDownloadsDelegate = new ItemizeGameDetailsDownloadsDelegate();

            var formatDownloadLanguagesDelegate = new FormatDownloadLanguageDelegate(
                replaceMultipleStringsDelegate);

            var convertOperatingSystemsDownloads2DArrayToArrayDelegate = new Convert2DArrayToArrayDelegate <OperatingSystemsDownloads>();

            var getDeserializedGameDetailsAsyncDelegate = new GetDeserializedGameDetailsAsyncDelegate(
                networkController,
                serializationController,
                languageController,
                formatDownloadLanguagesDelegate,
                confirmStringContainsLanguageDownloadsDelegate,
                itemizeDownloadLanguagesDelegate,
                itemizeGameDetailsDownloadsDelegate,
                replaceMultipleStringsDelegate,
                convertOperatingSystemsDownloads2DArrayToArrayDelegate,
                collectionController);

            var itemizeAllGameDetailsGapsAsyncDelegate = new ItemizeAllMasterDetailsGapsAsyncDelegate <AccountProduct, GameDetails>(
                accountProductsDataController,
                gameDetailsDataController);

            var itemizeAllUserRequestedOrDefaultAsyncDelegate = new ItemizeAllUserRequestedIdsOrDefaultAsyncDelegate(
                itemizeAllUserRequestedIdsAsyncDelegate,
                itemizeAllGameDetailsGapsAsyncDelegate,
                updatedIndexController);

            var gameDetailsUpdateActivity = new MasterDetailProductUpdateActivity <AccountProduct, GameDetails>(
                Entity.GameDetails,
                getProductUpdateUriByContextDelegate,
                itemizeAllUserRequestedOrDefaultAsyncDelegate,
                accountProductsDataController,
                gameDetailsDataController,
                updatedIndexController,
                getDeserializedGameDetailsAsyncDelegate,
                getAccountProductUpdateIdentityDelegate,
                statusController,
                fillGameDetailsGapsDelegate);

            #endregion

            #region Update.Screenshots

            var updateScreenshotsAsyncDelegate = new UpdateScreenshotsAsyncDelegate(
                getProductUpdateUriByContextDelegate,
                productScreenshotsDataController,
                networkController,
                itemizeScreenshotsDelegate,
                statusController);

            var updateScreenshotsActivity = new UpdateScreenshotsActivity(
                productsDataController,
                productScreenshotsDataController,
                updateScreenshotsAsyncDelegate,
                statusController);

            #endregion

            // dependencies for download controllers

            var getProductImageUriDelegate        = new GetProductImageUriDelegate();
            var getAccountProductImageUriDelegate = new GetAccountProductImageUriDelegate();

            var itemizeAllUserRequestedIdsOrUpdatedAsyncDelegate = new ItemizeAllUserRequestedIdsOrDefaultAsyncDelegate(
                itemizeAllUserRequestedIdsAsyncDelegate,
                updatedIndexController);

            var getProductsImagesDownloadSourcesAsyncDelegate = new GetProductCoreImagesDownloadSourcesAsyncDelegate <Product>(
                itemizeAllUserRequestedIdsOrUpdatedAsyncDelegate,
                productsDataController,
                formatImagesUriDelegate,
                getProductImageUriDelegate,
                statusController);

            var getAccountProductsImagesDownloadSourcesAsyncDelegate = new GetProductCoreImagesDownloadSourcesAsyncDelegate <AccountProduct>(
                itemizeAllUserRequestedIdsOrUpdatedAsyncDelegate,
                accountProductsDataController,
                formatImagesUriDelegate,
                getAccountProductImageUriDelegate,
                statusController);

            var getScreenshotsDownloadSourcesAsyncDelegate = new GetScreenshotsDownloadSourcesAsyncDelegate(
                productScreenshotsDataController,
                formatScreenshotsUriDelegate,
                getScreenshotsDirectoryDelegate,
                fileController,
                statusController);

            var routingController = new RoutingController(
                productRoutesDataController,
                statusController);

            var itemizeGameDetailsManualUrlsAsyncDelegate = new ItemizeGameDetailsManualUrlsAsyncDelegate(
                settingsStashController,
                gameDetailsDataController);

            var itemizeGameDetailsDirectoriesAsyncDelegate = new ItemizeGameDetailsDirectoriesAsyncDelegate(
                itemizeGameDetailsManualUrlsAsyncDelegate,
                getProductFilesDirectoryDelegate);

            var itemizeGameDetailsFilesAsyncDelegate = new ItemizeGameDetailsFilesAsyncDelegate(
                itemizeGameDetailsManualUrlsAsyncDelegate,
                routingController,
                getGameDetailsFilesPathDelegate,
                statusController);

            // product files are driven through gameDetails manual urls
            // so this sources enumerates all manual urls for all updated game details
            var getManualUrlDownloadSourcesAsyncDelegate = new GetManualUrlDownloadSourcesAsyncDelegate(
                updatedIndexController,
                gameDetailsDataController,
                itemizeGameDetailsManualUrlsAsyncDelegate,
                statusController);

            // schedule download controllers

            var updateProductsImagesDownloadsActivity = new UpdateDownloadsActivity(
                Entity.ProductImages,
                getProductsImagesDownloadSourcesAsyncDelegate,
                getProductImagesDirectoryDelegate,
                fileController,
                productDownloadsDataController,
                accountProductsDataController,
                productsDataController,
                statusController);

            var updateAccountProductsImagesDownloadsActivity = new UpdateDownloadsActivity(
                Entity.AccountProductImages,
                getAccountProductsImagesDownloadSourcesAsyncDelegate,
                getAccountProductImagesDirectoryDelegate,
                fileController,
                productDownloadsDataController,
                accountProductsDataController,
                productsDataController,
                statusController);

            var updateScreenshotsDownloadsActivity = new UpdateDownloadsActivity(
                Entity.Screenshots,
                getScreenshotsDownloadSourcesAsyncDelegate,
                getScreenshotsDirectoryDelegate,
                fileController,
                productDownloadsDataController,
                accountProductsDataController,
                productsDataController,
                statusController);

            var updateProductFilesDownloadsActivity = new UpdateDownloadsActivity(
                Entity.ProductFiles,
                getManualUrlDownloadSourcesAsyncDelegate,
                getProductFilesDirectoryDelegate,
                fileController,
                productDownloadsDataController,
                accountProductsDataController,
                productsDataController,
                statusController);

            // downloads processing

            var formatUriRemoveSessionDelegate = new FormatUriRemoveSessionDelegate();

            var confirmValidationExpectedDelegate = new ConfirmValidationExpectedDelegate();

            var formatValidationUriDelegate = new FormatValidationUriDelegate(
                getValidationFilenameDelegate,
                formatUriRemoveSessionDelegate);

            var formatValidationFileDelegate = new FormatValidationFileDelegate(
                getValidationPathDelegate);

            var downloadValidationFileAsyncDelegate = new DownloadValidationFileAsyncDelegate(
                formatUriRemoveSessionDelegate,
                confirmValidationExpectedDelegate,
                formatValidationFileDelegate,
                getValidationDirectoryDelegate,
                formatValidationUriDelegate,
                fileController,
                downloadFromUriAsyncDelegate,
                statusController);

            var downloadManualUrlFileAsyncDelegate = new DownloadManualUrlFileAsyncDelegate(
                networkController,
                formatUriRemoveSessionDelegate,
                routingController,
                downloadFromResponseAsyncDelegate,
                downloadValidationFileAsyncDelegate,
                statusController);

            var downloadProductImageAsyncDelegate = new DownloadProductImageAsyncDelegate(downloadFromUriAsyncDelegate);

            var productsImagesDownloadActivity = new DownloadFilesActivity(
                Entity.ProductImages,
                productDownloadsDataController,
                downloadProductImageAsyncDelegate,
                statusController);

            var accountProductsImagesDownloadActivity = new DownloadFilesActivity(
                Entity.AccountProductImages,
                productDownloadsDataController,
                downloadProductImageAsyncDelegate,
                statusController);

            var screenshotsDownloadActivity = new DownloadFilesActivity(
                Entity.Screenshots,
                productDownloadsDataController,
                downloadProductImageAsyncDelegate,
                statusController);

            var productFilesDownloadActivity = new DownloadFilesActivity(
                Entity.ProductFiles,
                productDownloadsDataController,
                downloadManualUrlFileAsyncDelegate,
                statusController);

            // validation controllers

            var validationResultController = new ValidationResultController();

            var fileMd5Controller = new GetFileMd5HashAsyncDelegate(
                storageController,
                getStringMd5HashAsyncDelegate);

            var dataFileValidateDelegate = new DataFileValidateDelegate(
                fileMd5Controller,
                statusController);

            var productFileValidationController = new FileValidationController(
                confirmValidationExpectedDelegate,
                fileController,
                streamController,
                getBytesMd5HashAsyncDelegate,
                validationResultController,
                statusController);

            var validateProductFilesActivity = new ValidateProductFilesActivity(
                getProductFilesDirectoryDelegate,
                getUriFilenameDelegate,
                formatValidationFileDelegate,
                productFileValidationController,
                validationResultsDataController,
                gameDetailsDataController,
                itemizeGameDetailsManualUrlsAsyncDelegate,
                itemizeAllUserRequestedIdsOrUpdatedAsyncDelegate,
                routingController,
                statusController);

            var validateDataActivity = new ValidateDataActivity(
                precomputedHashController,
                fileController,
                dataFileValidateDelegate,
                statusController);

            #region Repair

            var repairActivity = new RepairActivity(
                validationResultsDataController,
                validationResultController,
                statusController);

            #endregion

            #region Cleanup

            var itemizeAllGameDetailsDirectoriesAsyncDelegate = new ItemizeAllGameDetailsDirectoriesAsyncDelegate(
                gameDetailsDataController,
                itemizeGameDetailsDirectoriesAsyncDelegate,
                statusController);

            var itemizeAllProductFilesDirectoriesAsyncDelegate = new ItemizeAllProductFilesDirectoriesAsyncDelegate(
                getProductFilesBaseDirectoryDelegate,
                directoryController,
                statusController);

            var itemizeDirectoryFilesDelegate = new ItemizeDirectoryFilesDelegate(directoryController);

            var directoryCleanupActivity = new CleanupActivity(
                Entity.Directories,
                itemizeAllGameDetailsDirectoriesAsyncDelegate,  // expected items (directories for gameDetails)
                itemizeAllProductFilesDirectoriesAsyncDelegate, // actual items (directories in productFiles)
                itemizeDirectoryFilesDelegate,                  // detailed items (files in directory)
                formatValidationFileDelegate,                   // supplementary items (validation files)
                recycleDelegate,
                directoryController,
                statusController);

            var itemizeAllUpdatedGameDetailsManualUrlFilesAsyncDelegate =
                new ItemizeAllUpdatedGameDetailsManualUrlFilesAsyncDelegate(
                    updatedIndexController,
                    gameDetailsDataController,
                    itemizeGameDetailsFilesAsyncDelegate,
                    statusController);

            var itemizeAllUpdatedProductFilesAsyncDelegate =
                new ItemizeAllUpdatedProductFilesAsyncDelegate(
                    updatedIndexController,
                    gameDetailsDataController,
                    itemizeGameDetailsDirectoriesAsyncDelegate,
                    directoryController,
                    statusController);

            var itemizePassthroughDelegate = new ItemizePassthroughDelegate();

            var fileCleanupActivity = new CleanupActivity(
                Entity.Files,
                itemizeAllUpdatedGameDetailsManualUrlFilesAsyncDelegate, // expected items (files for updated gameDetails)
                itemizeAllUpdatedProductFilesAsyncDelegate,              // actual items (updated product files)
                itemizePassthroughDelegate,                              // detailed items (passthrough)
                formatValidationFileDelegate,                            // supplementary items (validation files)
                recycleDelegate,
                directoryController,
                statusController);

            var cleanupUpdatedActivity = new CleanupUpdatedActivity(
                updatedIndexController,
                statusController);

            #endregion

            #region Help

            var helpActivity = new HelpActivity(
                activityContextController,
                statusController);

            #endregion

            #region Report Task Status

            var reportFilePresentationController = new FilePresentationController(
                getReportDirectoryDelegate,
                getReportFilenameDelegate,
                streamController);

            var fileNotifyStatusViewUpdateController = new NotifyStatusViewUpdateController(
                getStatusViewUpdateDelegate,
                reportFilePresentationController);

            var reportActivity = new ReportActivity(
                fileNotifyStatusViewUpdateController,
                statusController);

            #endregion

            #region List

            var listUpdatedActivity = new ListUpdatedActivity(
                updatedIndexController,
                accountProductsDataController,
                statusController);

            #endregion

            #endregion

            #region Activity Context To Activity Controllers Mapping

            var activityContextToActivityControllerMap = new Dictionary <(Activity, Entity), IActivity>
            {
                { (Activity.Correct, Entity.Settings), correctSettingsActivity },
        public void Initialize()
        {
            Bootstrapper.SetupAutoMapper();

            _serviceDesk = UnitTestHelper.GenerateRandomData <ServiceDesk>();

            _domainTypeRefDatas = new List <DomainTypeRefData>
            {
                UnitTestHelper.GenerateRandomData <DomainTypeRefData>(x =>
                {
                    x.Id      = 1;
                    x.Visible = true;
                }),
                UnitTestHelper.GenerateRandomData <DomainTypeRefData>(x =>
                {
                    x.Id      = 2;
                    x.Visible = false;
                }),
                UnitTestHelper.GenerateRandomData <DomainTypeRefData>(x =>
                {
                    x.Id      = 3;
                    x.Visible = false;
                }),
                UnitTestHelper.GenerateRandomData <DomainTypeRefData>(x =>
                {
                    x.Id      = 4;
                    x.Visible = true;
                }),
                UnitTestHelper.GenerateRandomData <DomainTypeRefData>(x =>
                {
                    x.Id      = 5;
                    x.Visible = true;
                })
            };

            _mockDomainTypeRefDataService = new Mock <IDomainTypeRefDataService>();
            _mockDomainTypeRefDataService.Setup(s => s.GetById(1)).Returns(_domainTypeRefDatas[0]);
            _mockDomainTypeRefDataService.Setup(s => s.GetById(2)).Returns(_domainTypeRefDatas[1]);
            _mockDomainTypeRefDataService.Setup(s => s.GetById(3)).Returns(_domainTypeRefDatas[2]);
            _mockDomainTypeRefDataService.Setup(s => s.GetById(4)).Returns(_domainTypeRefDatas[3]);
            _mockDomainTypeRefDataService.Setup(s => s.GetById(5)).Returns(_domainTypeRefDatas[4]);
            _mockDomainTypeRefDataService.Setup(s => s.GetAllAndNotVisibleForCustomer(CustomerId))
            .Returns(_domainTypeRefDatas);

            _serviceDomain = UnitTestHelper.GenerateRandomData <ServiceDomain>();
            _serviceDomain.ServiceFunctions = new List <ServiceFunction>();

            _serviceDomainListItems = new List <ServiceDomainListItem>
            {
                UnitTestHelper.GenerateRandomData <ServiceDomainListItem>(),
                UnitTestHelper.GenerateRandomData <ServiceDomainListItem>(),
                UnitTestHelper.GenerateRandomData <ServiceDomainListItem>(),
                UnitTestHelper.GenerateRandomData <ServiceDomainListItem>(),
                UnitTestHelper.GenerateRandomData <ServiceDomainListItem>(),
            };

            _templateListItems = new List <TemplateListItem>
            {
                UnitTestHelper.GenerateRandomData <TemplateListItem>(x =>
                {
                    x.Id           = TemplateId;
                    x.TemplateType = TemplateTypeNames.SORT;
                }),
                UnitTestHelper.GenerateRandomData <TemplateListItem>(),
                UnitTestHelper.GenerateRandomData <TemplateListItem>(),
                UnitTestHelper.GenerateRandomData <TemplateListItem>()
            };

            _mockServiceDomainService = new Mock <IServiceDomainService>();
            _mockServiceDomainService.Setup(s => s.GetByCustomerAndId(CustomerId, ServiceDomainId))
            .Returns(_serviceDomain);
            _mockServiceDomainService.Setup(s => s.GetById(ServiceDomainId)).Returns(_serviceDomain);
            _mockServiceDomainService.Setup(s => s.ServiceDeskDomains(ServiceDeskId))
            .Returns(_serviceDomainListItems.AsQueryable());
            _mockServiceDomainService.Setup(s => s.CustomerServiceDomains(CustomerId))
            .Returns(_serviceDomainListItems.AsQueryable());

            _mockResponseManager = new Mock <IResponseManager>();
            _mockRequestManager  = new Mock <IRequestManager>();

            _mockUserManager = new Mock <IUserManager>();
            _mockUserManager.Setup(s => s.Name).Returns(UserName);

            _mockNameValueCollection = new Mock <NameValueCollection>();

            _mockContextManager = new Mock <IContextManager>();
            _mockContextManager.Setup(s => s.UserManager).Returns(_mockUserManager.Object);
            _mockContextManager.Setup(s => s.ResponseManager).Returns(_mockResponseManager.Object);
            _mockContextManager.Setup(s => s.RequestManager).Returns(_mockRequestManager.Object);
            _mockRequestManager.Setup(s => s.Form).Returns(_mockNameValueCollection.Object);

            _serviceDesks = new List <ServiceDesk>
            {
                UnitTestHelper.GenerateRandomData <ServiceDesk>(),
                UnitTestHelper.GenerateRandomData <ServiceDesk>(),
                UnitTestHelper.GenerateRandomData <ServiceDesk>(x =>
                {
                    x.Id = ServiceDeskId;
                }),
                UnitTestHelper.GenerateRandomData <ServiceDesk>(),
                UnitTestHelper.GenerateRandomData <ServiceDesk>()
            };

            _mockServiceDeskService = new Mock <IServiceDeskService>();
            _mockServiceDeskService.Setup(s => s.GetByCustomer(CustomerId)).Returns(_serviceDesks.AsQueryable());
            _mockServiceDeskService.Setup(s => s.GetByCustomerAndId(CustomerId, ServiceDeskId)).Returns(_serviceDesk);

            _mockAppUserContext = new Mock <IAppUserContext>();
            _mockAppUserContext.Setup(s => s.Current).Returns(new AppContext
            {
                CurrentCustomer = new CurrentCustomerViewModel
                {
                    Id = CustomerId
                }
            });

            _mockTemplateService = new Mock <ITemplateService>();
            _mockTemplateService.Setup(s => s.GetById(TemplateId))
            .Returns(new Template {
                Id = TemplateId, Filename = "example.xlxs"
            });
            _mockTemplateService.Setup(s => s.AllTemplates())
            .Returns(_templateListItems);

            _mockServiceDecompositionTemplateDataImportProcessor = new Mock <IServiceDecompositionTemplateDataImportProcessor>();
            _mockServiceDecompositionDesignDataImportProcessor   = new Mock <IServiceDecompositionDesignDataImportProcessor>();
            _mockTemplateProcessor = new Mock <ITemplateProcessor>();


            _target = new TemplateController(_mockTemplateService.Object,
                                             _mockServiceDeskService.Object,
                                             _mockServiceDecompositionTemplateDataImportProcessor.Object,
                                             _mockServiceDecompositionDesignDataImportProcessor.Object,
                                             _mockTemplateProcessor.Object,
                                             _mockContextManager.Object,
                                             _mockAppUserContext.Object);

            _controllerContextMocks   = new ControllerContextMocks();
            _target.ControllerContext = new ControllerContext(_controllerContextMocks.MockHttpContextBase.Object,
                                                              new RouteData(),
                                                              _target);
            if (RouteTable.Routes.Count == 0)
            {
                RouteConfig.RegisterRoutes(RouteTable.Routes);
            }
            _target.Url =
                new UrlHelper(new RequestContext(_controllerContextMocks.MockHttpContextBase.Object, new RouteData()));
        }
Beispiel #13
0
        public virtual void ProcessRequest(HttpContext context)
        {
            // ensure the latest content has been processed & imported
            ImporterController.TryDocRevImporting();

            TemplateFileInfo _TemplateFileInfo = TemplateController.ParseTemplateFileInfo(context);

            if (!string.IsNullOrWhiteSpace(_TemplateFileInfo.DocTypeName)
                &&
                !string.IsNullOrWhiteSpace(_TemplateFileInfo.solutionVersion)
                &&
                !string.IsNullOrWhiteSpace(_TemplateFileInfo.FileName))
            {
                // serve a supporting template file up (the the target Interpreter may need to alter it in some way, qazi-dynamic)
                InstanceLocatorByName <DocBaseInterpreter>(_TemplateFileInfo.DocTypeName, _TemplateFileInfo.solutionVersion)
                .ProcessRequest(context);
            }
            else
            {
                // serve a filled & stored document rendered previously
                context.Response.DisableKernelCache();
                context.Response.Clear();
                context.Response.ClearContent();
                context.Response.ClearHeaders();

                object docData;

                if (context.Request.Params.AllKeys.Any(m => m == Parm.DocId.ToString()))
                {
                    docData = DocExchange.LuceneController.GetDocData(
                        context.Request.Params[Parm.DocTypeName],
                        context.Request.Params[Parm.DocId],
                        HttpUtility.UrlDecode(context.Request.Params[Parm.RelayUrl]),
                        long.Parse(context.Request.Params[Parm.LogSequenceNumber] ?? "0"));
                }
                else
                {
                    docData = ((BaseDoc)(context.Request.Params.AllKeys.Any(m => m == Parm.DocCache)
                                              ? HttpRuntime.Cache[context.Request.Params[Parm.DocCache]]
                                              : Compressor.DecompressFromBase64String(HttpUtility.UrlDecode(context.Request.Params[Parm.DocBin]))
                                         .FromBytes <BaseDoc>()));
                }

                DocBaseInterpreter        _DocBaseInterpreter = null;
                DocProcessingInstructions _DocProcessingInstructions;

                //TODO:need to tidy up this code block as its really hard to follow.. In the end, that docData may be a POCO, raw bytes or text... Need to rewrites it's PI here before it's shoved over the repsonse.stream
                if (docData is BaseDoc)
                {
                    // get the interpreter & convert docData from poco to its raw form
                    _DocBaseInterpreter = InstanceLocatorByName <DocBaseInterpreter>(((BaseDoc)docData).DocTypeName, ((BaseDoc)docData).solutionVersion);
                    if (_DocBaseInterpreter is DocByteInterpreter)
                    {
                        docData = ((DocByteInterpreter)_DocBaseInterpreter).WriteByte((BaseDoc)docData);
                    }
                    else
                    {
                        docData = ((DocTextInterpreter)_DocBaseInterpreter).WriteText((BaseDoc)docData);
                    }
                }

                if (docData is byte[])
                {
                    _DocBaseInterpreter        = _DocBaseInterpreter ?? LocateInstance((byte[])docData);
                    _DocProcessingInstructions = Instance.ReadDocPI((byte[])docData);
                    docData = Instance.ModPI((byte[])docData, href: DocBaseInterpreter.BuildHref(context, _DocProcessingInstructions.DocTypeName, _DocProcessingInstructions.solutionVersion));
                    context.Response.BinaryWrite((byte[])docData);
                }
                else
                {
                    _DocBaseInterpreter        = _DocBaseInterpreter ?? LocateInstance((string)docData);
                    _DocProcessingInstructions = Instance.ReadDocPI((string)docData);
                    docData = Instance.ModPI((string)docData, href: DocBaseInterpreter.BuildHref(context, _DocProcessingInstructions.DocTypeName, _DocProcessingInstructions.solutionVersion));
                    context.Response.Write((string)docData);
                }

                context.Response.ContentType = _DocBaseInterpreter.ContentInfo.ContentType;
                context.Response.AddHeader(
                    "content-disposition",
                    string.Format(
                        "attachment; filename=\"{0}\";",
                        DocBaseInterpreter.GetFilename(_DocProcessingInstructions, context.Request.Params["ContentFileExtension"])));
            }
        }
Beispiel #14
0
        public static string GetRelatedCats(int portalId, string parentItemId, string cultureCode, string templatePrefix, string controlMapPath, Boolean AllowCache = true)
        {
            var strOut = "";

            if (Utils.IsNumeric(parentItemId))
            {
                if (!AllowCache)
                {
                    //Remove any cache for the module -1, we don't want any cache in BO
                    //All xref records are portal wide, hence -1 in cahce key.
                    NBrightBuyUtils.RemoveModCache(-1);
                }

                var objCtrl = new NBrightBuyController();

                var templCtrl = new TemplateController(controlMapPath);

                var hTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedheader + ".html", Utils.GetCurrentCulture());
                var bTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedbody + ".html", Utils.GetCurrentCulture());
                var fTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedfooter + ".html", Utils.GetCurrentCulture());

                // replace Settings tags for ajax to work.
                hTempl = Utils.ReplaceUrlTokens(hTempl);
                bTempl = Utils.ReplaceUrlTokens(bTempl);
                fTempl = Utils.ReplaceUrlTokens(fTempl);

                var strFilter  = " and parentitemid = " + parentItemId;
                var strOrderBy = GenXmlFunctions.GetSqlOrderBy(hTempl);
                if (strOrderBy == "")
                {
                    strOrderBy = GenXmlFunctions.GetSqlOrderBy(bTempl);
                }

                var l       = objCtrl.GetList(portalId, -1, "CATXREF", strFilter, strOrderBy);
                var objList = new List <NBrightInfo>();

                foreach (var objXref in l)
                {
                    var o = objCtrl.Get(objXref.XrefItemId, "CATEGORYLANG", cultureCode);
                    if (o != null)
                    {
                        if (objXref.GetXmlProperty("genxml/hidden/defaultcat") != "")
                        {
                            // set the default flag in the category, for display in the entry only.
                            o.SetXmlProperty("genxml/hidden/defaultcat", "True");
                        }
                        o.GUIDKey  = objXref.ItemID.ToString();                              // overwrite with xref itemid for delete ajax action.
                        o.TextData = o.GetXmlProperty("genxml/lang/genxml/textbox/txtname"); // set for sort
                        o.Lang     = cultureCode;                                            // set lang so the GenXmlTemplateExt can pickup the edit langauge.
                        objList.Add(o);
                        objList.Sort(delegate(NBrightInfo p1, NBrightInfo p2) { return(p1.TextData.CompareTo(p2.TextData)); });
                    }
                }

                var obj = new NBrightInfo();
                strOut += GenXmlFunctions.RenderRepeater(obj, hTempl);
                strOut += GenXmlFunctions.RenderRepeater(objList, bTempl);
                strOut += GenXmlFunctions.RenderRepeater(obj, fTempl);
            }

            return(strOut);
        }
Beispiel #15
0
 private void CmbTpl_SelectedIndexChanged(object sender, EventArgs e)
 {
     txtTemplate.Text = TemplateController.GetTemplateText(cmbTpl.SelectedItem.ToString());
 }
Beispiel #16
0
    protected void imgInstall_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            if (fileTemplateZip.HasFile && fileTemplateZip.PostedFile.FileName != string.Empty)
            {
                string fileName = fileTemplateZip.PostedFile.FileName;
                string cntType  = fileTemplateZip.PostedFile.ContentType;
                if (fileName.Substring(fileName.Length - 3, 3).ToLower() == "zip")
                {
                    string path               = HttpContext.Current.Server.MapPath("~/");
                    string temPath            = SageFrame.Core.RegisterModule.Common.TemporaryFolder;
                    string destPath           = Path.Combine(path, temPath);
                    string downloadPath       = SageFrame.Core.RegisterModule.Common.TemporaryTemplateFolder;
                    string downloadDestPath   = Path.Combine(path, downloadPath);
                    string templateName       = ParseFileNameWithoutPath(fileName.Substring(0, fileName.Length - 4));
                    string templateFolderPath = path + "Templates\\" + templateName;
                    if (!Directory.Exists(templateFolderPath))
                    {
                        if (!Directory.Exists(destPath))
                        {
                            Directory.CreateDirectory(destPath);
                        }

                        string filePath = destPath + "\\" + fileTemplateZip.FileName;
                        fileTemplateZip.SaveAs(filePath);
                        string ExtractedPath = string.Empty;
                        ZipUtil.UnZipFiles(filePath, destPath, ref ExtractedPath, SageFrame.Core.RegisterModule.Common.Password, SageFrame.Core.RegisterModule.Common.RemoveZipFile);
                        string[] dirs              = Directory.GetDirectories(ExtractedPath);
                        bool     foundCSSFolder    = false;
                        bool     foundImagesFolder = false;
                        bool     foundTemplateCss  = false;
                        bool     foundLayoutCss    = false;
                        foreach (string dir in dirs)
                        {
                            string folderName = ParseFileNameWithoutPath(dir);
                            if (folderName.ToLower() == "css")
                            {
                                foundCSSFolder = true;
                                string[] files = Directory.GetFiles(dir);
                                foreach (string file in files)
                                {
                                    if (file.Contains("template.css"))
                                    {
                                        foundTemplateCss = true;
                                    }
                                    if (file.Contains("layout.css"))
                                    {
                                        foundLayoutCss = true;
                                    }
                                }
                            }
                            if (folderName.ToLower() == "images")
                            {
                                foundImagesFolder = true;
                            }
                        }
                        if (foundCSSFolder && foundImagesFolder && foundTemplateCss && foundLayoutCss)
                        {
                            if (!Directory.Exists(downloadDestPath))
                            {
                                Directory.CreateDirectory(downloadDestPath);
                            }
                            fileTemplateZip.SaveAs(downloadDestPath + "\\" + fileTemplateZip.FileName);

                            Directory.Move(ExtractedPath, templateFolderPath);
                            TemplateController.AddTemplate(new TemplateInfo(templateName, txtAuthor.Text, txtTemplateDesc.Text, txtAuthorURL.Text, GetPortalID, GetUsername));
                            ShowMessage(SageMessageTitle.Notification.ToString(), GetSageMessage("TemplateManagement", "TemplateInstallSuccessfully"), "", SageMessageType.Success);
                            BindTemplate();
                            //PanelVisibility(false, true);
                            Response.Redirect(Request.Url.OriginalString);
                        }
                        else
                        {
                            Directory.Delete(destPath, true);
                            ShowMessage(SageMessageTitle.Notification.ToString(), GetSageMessage("TemplateManagement", "InvalidTemplate"), "", SageMessageType.Alert);
                        }
                    }
                    else
                    {
                        ShowMessage(SageMessageTitle.Notification.ToString(), GetSageMessage("TemplateManagement", "TemplateAlreadyInstall"), "", SageMessageType.Error);
                    }
                }
                else
                {
                    ShowMessage(SageMessageTitle.Notification.ToString(), GetSageMessage("TemplateManagement", "InvalidTemplateZip"), "", SageMessageType.Alert);
                }
            }
        }
        catch (Exception ex)
        {
            if (ex.Message.Equals(UnexpectedEOF, StringComparison.OrdinalIgnoreCase))
            {
                ShowMessage(SageMessageTitle.Notification.ToString(), GetSageMessage("TemplateManagement", "ZipFileIsCorrupt"), "", SageMessageType.Alert);
            }
            else
            {
                ProcessException(ex);
            }
        }
    }
    public static void ResetThemeOptions(string TemplateName)
    {
        TemplateController obj = new TemplateController();

        obj.ResetThemeOptions(TemplateName);
    }
    public static string GetThemeOptions(string TemplateName)
    {
        TemplateController obj = new TemplateController();

        return(obj.GetThemeOptions(TemplateName));
    }
    public static void SaveThemeOptions(string TemplateName, string ThemeOptions)
    {
        TemplateController obj = new TemplateController();

        obj.SaveThemeOptions(TemplateName, ThemeOptions);
    }
Beispiel #20
0
 public TemplateControllerTests()
 {
     _mockOrderService = new Mock <IOrderService>();
     _mockWorkContext  = new Mock <IWorkContext>();
     _controller       = new TemplateController(_mockWorkContext.Object, _mockOrderService.Object);
 }
		private void BindTemplates()
		{
			var tc = new TemplateController();
		    var tl = tc.Template_List(PortalId, ModuleId, Templates.TemplateTypes.ForumView);
			drpTemplates.DataTextField = "Title";
			drpTemplates.DataValueField = "TemplateId";
			drpTemplates.DataSource = tl;
			drpTemplates.DataBind();
			drpTemplates.Items.Insert(0, new ListItem(LocalizeString("Default"), "0"));
		}
Beispiel #22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _catalogNav = new CatalogNavigation(Request.QueryString);
            _imagesPath = _templatePath + "Images/";

            if (!string.IsNullOrEmpty(StoreSettings.CurrencySymbol))
            {
                _localFormat.CurrencySymbol = StoreSettings.CurrencySymbol;
            }

            ITaxProvider taxProvider = StoreController.GetTaxProvider(StoreSettings.TaxName);
            ITaxInfo     taxInfo     = taxProvider.GetDefautTaxRates(PortalId);

            _defaultTaxRate = taxInfo.DefaultTaxRate;
            _showTax        = taxInfo.ShowTax;

            _product = (DataSource as ProductInfo);
            if (_product != null)
            {
                _category = _categoryControler.GetCategory(PortalId, _product.CategoryID);
                if (StoreSettings.SEOFeature)
                {
                    _catalogNav.Category = _category.SEOName;
                    if (InList == false)
                    {
                        BasePage.Title       = SEO(Localization.GetString("DetailsSEOTitle", LocalResourceFile), MetaTags.Title);
                        BasePage.Description = SEO(Localization.GetString("DetailsSEODescription", LocalResourceFile), MetaTags.Description);
                        BasePage.KeyWords    = SEO(Localization.GetString("DetailsSEOKeywords", LocalResourceFile), MetaTags.Keywords);
                        CatalogNavigation canonical = new CatalogNavigation
                        {
                            CategoryID = _product.CategoryID,
                            ProductID  = _product.ProductID
                        };
                        string domain = Request.Url.GetLeftPart(UriPartial.Authority);
                        string url    = canonical.GetNavigationUrl();
                        if (url.StartsWith(domain, true, CultureInfo.CurrentCulture) == false)
                        {
                            url = domain + url;
                        }
                        HeaderHelper.AddCanonicalLink(Page, url);
                    }
                }
                plhDetails.Controls.Add(TemplateController.ParseTemplate(MapPath(_templatePath), _template, Localization.GetString("TemplateError", LocalSharedResourceFile), IsLogged, new ProcessTokenDelegate(ProcessToken)));
            }

            // Clear error message
            divError.Visible = false;

            // Show review panel ?
            if (ShowReviews && !InList)
            {
                int reviewID = _catalogNav.ReviewID;
                // Show review list or edit?
                if (reviewID != Null.NullInteger)
                {
                    if (reviewID > 0 && !CanManageReviews())
                    {
                        _catalogNav.ReviewID = Null.NullInteger;
                        Response.Redirect(_catalogNav.GetNavigationUrl());
                    }
                    else
                    {
                        LoadReviewEditControl();
                    }
                }
                else
                {
                    LoadReviewListControl();
                }
                pnlReviews.Visible = true;
            }
            else
            {
                pnlReviews.Visible = false;
            }

            // Show Return link?
            if (InList == false)
            {
                if (_catalogNav.SearchID == Null.NullInteger)
                {
                    if (_catalogNav.CategoryID == Null.NullInteger)
                    {
                        lnkReturn.Text = Localization.GetString("lnkReturnToCatalog", LocalResourceFile);
                    }
                    else
                    {
                        lnkReturn.Text = Localization.GetString("lnkReturn", LocalResourceFile);
                    }
                }
                else
                {
                    lnkReturn.Text = Localization.GetString("lnkReturnToSearch", LocalResourceFile);
                }
                lnkReturn.NavigateUrl = GetReturnUrl(ReturnPage);
                pnlReturn.Visible     = true;
            }
            else
            {
                pnlReturn.Visible = false;
            }
        }
Beispiel #23
0
        public static string GetRelatedCats(int portalId, string parentItemId, string cultureCode, string templatePrefix, string controlMapPath, Boolean AllowCache = true)
        {
            var strOut = "";
            if (Utils.IsNumeric(parentItemId))
            {
                if (!AllowCache)
                {
                    //Remove any cache for the module -1, we don't want any cache in BO
                    //All xref records are portal wide, hence -1 in cahce key.
                    NBrightBuyUtils.RemoveModCache(-1);
                }

                var objCtrl = new NBrightBuyController();

                var templCtrl = new TemplateController(controlMapPath);

                var hTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedheader + ".html", Utils.GetCurrentCulture());
                var bTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedbody + ".html", Utils.GetCurrentCulture());
                var fTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedfooter + ".html", Utils.GetCurrentCulture());

                // replace Settings tags for ajax to work.
                hTempl = Utils.ReplaceUrlTokens(hTempl);
                bTempl = Utils.ReplaceUrlTokens(bTempl);
                fTempl = Utils.ReplaceUrlTokens(fTempl);

                var strFilter = " and parentitemid = " + parentItemId;
                var strOrderBy = GenXmlFunctions.GetSqlOrderBy(hTempl);
                if (strOrderBy == "")
                {
                    strOrderBy = GenXmlFunctions.GetSqlOrderBy(bTempl);
                }

                var l = objCtrl.GetList(portalId, -1, "CATXREF", strFilter, strOrderBy);
                var objList = new List<NBrightInfo>();

                foreach (var objXref in l)
                {
                    var o = objCtrl.Get(objXref.XrefItemId, "CATEGORYLANG", cultureCode);
                    if (o != null)
                    {
                        if (objXref.GetXmlProperty("genxml/hidden/defaultcat") != "")
                        {
                            // set the default flag in the category, for display in the entry only.
                            o.SetXmlProperty("genxml/hidden/defaultcat", "True");
                        }
                        o.GUIDKey = objXref.ItemID.ToString(); // overwrite with xref itemid for delete ajax action.
                        o.TextData = o.GetXmlProperty("genxml/lang/genxml/textbox/txtname"); // set for sort
                        o.Lang = cultureCode; // set lang so the GenXmlTemplateExt can pickup the edit langauge.
                        objList.Add(o);
                        objList.Sort(delegate(NBrightInfo p1, NBrightInfo p2) { return p1.TextData.CompareTo(p2.TextData); });
                    }
                }

                var obj = new NBrightInfo();
                strOut += GenXmlFunctions.RenderRepeater(obj, hTempl);
                strOut += GenXmlFunctions.RenderRepeater(objList, bTempl);
                strOut += GenXmlFunctions.RenderRepeater(obj, fTempl);

            }

            return strOut;
        }
        private void SetPortalCofig()
        {
            Hashtable       hstPortals = GetPortals();
            SageUserControl suc        = new SageUserControl();
            int             portalID   = 1;

            #region "Get Portal SEO Name and PortalID"
            if (string.IsNullOrEmpty(Request.QueryString["ptSEO"]))
            {
                if (string.IsNullOrEmpty(PortalSEOName))
                {
                    PortalSEOName = GetDefaultPortalName(hstPortals, 1);// 1 is for Default Portal
                }
                else if (!hstPortals.ContainsKey(PortalSEOName.ToLower().Trim()))
                {
                    PortalSEOName = GetDefaultPortalName(hstPortals, 1);// 1 is for Default Portal
                }
                else
                {
                    portalID = int.Parse(hstPortals[PortalSEOName.ToLower().Trim()].ToString());
                }
            }
            else
            {
                PortalSEOName = Request.QueryString["ptSEO"].ToString().ToLower().Trim();
                portalID      = Int32.Parse(Request.QueryString["ptlid"].ToString());
            }
            #endregion

            suc.SetPortalSEOName(PortalSEOName.ToLower().Trim());
            Session[SessionKeys.SageFrame_PortalSEOName] = PortalSEOName.ToLower().Trim();
            Session[SessionKeys.SageFrame_PortalID]      = portalID;
            string tempName = /*activeTemplate;// */ TemplateController.GetActiveTemplate(currentportalID).TemplateSeoName;
            string tempPath = Decide.IsTemplateDefault(tempName) ? Utils.GetTemplatePath_Default(tempName) : Utils.GetTemplatePath(tempName);
            if (!Directory.Exists(tempPath))
            {
                tempName = "default";
            }
            Globals.sysHst[ApplicationKeys.ActiveTemplate + "_" + currentportalID] = tempName;
            //Globals.sysHst[ApplicationKeys.ActivePagePreset + "_" + currentportalID] = LoadActivePagePreset() || PresetHelper.LoadActivePagePreset(tempName, GetPageSEOName(Request.Url.ToString()));
            LoadActivePagePreset();
            suc.SetPortalID(portalID);
            SetPortalID(portalID);
            #region "Set user credentials for modules"
            if (SecurityPolicy.GetUser(GetPortalID) != string.Empty)
            {
                SettingProvider objSP    = new SettingProvider();
                SageFrameConfig sfConfig = new SageFrameConfig();
                if (SecurityPolicy.GetUser(GetPortalID) != string.Empty)
                {
                    string strRoles = string.Empty;

                    List <SageUserRole> sageUserRolles = objSP.RoleListGetByUsername(SecurityPolicy.GetUser(GetPortalID), currentportalID);
                    if (sageUserRolles != null)
                    {
                        foreach (SageUserRole userRole in sageUserRolles)
                        {
                            strRoles += userRole.RoleId + ",";
                        }
                    }
                    if (strRoles.Length > 1)
                    {
                        strRoles = strRoles.Substring(0, strRoles.Length - 1);
                    }
                    if (strRoles.Length > 0)
                    {
                        SetUserRoles(strRoles);
                    }
                }
            }
            #endregion
        }
Beispiel #25
0
        public static string GetRelatedXref(int portalId, string parentItemId, string lang, string templatePrefix, string nodeName, string entityTypeCodeLang, string controlMapPath)
        {
            var strOut = "";
            if (Utils.IsNumeric(parentItemId))
            {

                var objCtrl = new NBrightBuyController();

                var templCtrl = new TemplateController(controlMapPath);

                var hTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedheader + ".html", Utils.GetCurrentCulture());
                var bTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedbody + ".html", Utils.GetCurrentCulture());
                var fTempl = templCtrl.GetTemplateData(templatePrefix + "_" + ModuleEventCodes.selectedfooter + ".html", Utils.GetCurrentCulture());

                // replace tags for ajax to work.
                hTempl = Utils.ReplaceUrlTokens(hTempl);
                bTempl = Utils.ReplaceUrlTokens(bTempl);
                fTempl = Utils.ReplaceUrlTokens(fTempl);

                var objPInfo = objCtrl.Get(Convert.ToInt32(parentItemId));
                if (objPInfo != null)
                {
                    var nodList = objPInfo.XMLDoc.SelectNodes("genxml/" + nodeName + "/id");
                    var objList = new List<NBrightInfo>();

                    foreach (XmlNode xNod in nodList)
                    {
                        if (xNod != null && Utils.IsNumeric(xNod.InnerText))
                        {
                            var o = objCtrl.Get(Convert.ToInt32(xNod.InnerText), lang, entityTypeCodeLang);
                            if (o != null)
                            {
                                objList.Add(o);
                            }
                        }
                    }

                    var obj = new NBrightInfo();
                    strOut += GenXmlFunctions.RenderRepeater(obj, hTempl);
                    strOut += GenXmlFunctions.RenderRepeater(objList, bTempl);
                    strOut += GenXmlFunctions.RenderRepeater(obj, fTempl);
                }
            }

            return strOut;
        }
Beispiel #26
0
 public void UpdateTemplate()
 {
     TemplateController.UpdActivateTemplate(ViewState["ActiveTemplate"].ToString(), hdnConnectionStringForAll.Value.ToString());
 }
    public void GetTemplateList(int PortalID)
    {
        string              templates      = Utils.GetAbsolutePath(TemplateConstants.TemplateDirectory);
        DirectoryInfo       dir            = new DirectoryInfo(templates);
        List <TemplateInfo> lstTemplates   = new List <TemplateInfo>();
        string              activeTemplate = TemplateController.GetActiveTemplate(PortalID).TemplateName;

        if (activeTemplate.Length < 1)
        {
            activeTemplate = "Default";
        }
        foreach (DirectoryInfo temp in dir.GetDirectories())
        {
            TemplateInfo tempObj = new TemplateInfo(temp.Name, temp.FullName, GetThumbPath(temp.FullName, temp.Name, TemplateConstants.TemplateDirectory), false, false);
            if (temp.Name.ToLower().Replace(' ', '_').Equals(activeTemplate.ToLower()))
            {
                tempObj.IsActive = true;
            }
            lstTemplates.Add(tempObj);
        }
        //bool IsDefaultActive = activeTemplate.ToLower().Equals("default") ? true : false;
        //lstTemplates.Insert(0, new TemplateInfo("Default", "/Core/Template/", GetThumbPath(HttpContext.Current.Server.MapPath("~/Core/Template/"), "Template", "Core/"), IsDefaultActive, true));
        List <TemplateInfo> lstFinalTemplates   = new List <TemplateInfo>();
        List <TemplateInfo> lstAppliedTemplates = new List <TemplateInfo>();

        try
        {
            lstAppliedTemplates = TemplateController.GetPortalTemplates();
        }
        catch (Exception)
        {
            throw;
        }
        foreach (TemplateInfo template in lstTemplates)
        {
            bool status = false;
            foreach (TemplateInfo templt in lstAppliedTemplates)
            {
                if (template.TemplateName.ToLower() == templt.TemplateName.ToLower() && templt.PortalID != PortalID)
                {
                    status = true;
                    break;
                }
            }
            if (!status)
            {
                template.IsApplied = false;
            }
            else
            {
                template.IsApplied = true;
            }
        }
        StringBuilder html = new StringBuilder();

        foreach (TemplateInfo template in lstTemplates)
        {
            string tempMarkup    = string.Empty;
            string isActiveClass = template.IsActive ? "class='sfTemplateholder sfCurve sfActivetemplate'" : "class='sfTemplateholder  sfCurve '";
            html.Append("<div ");
            html.Append(isActiveClass);
            html.Append(" data-templateName='");
            html.Append(template.TemplateName);
            html.Append("' >");
            //html.Append("<a href='#' rel='");
            //html.Append(template.TemplateName);
            //html.Append("' class='sfTemplatethumb'>");
            html.Append("<div class='ImageWrapper'>");
            html.Append("<img alt='Default' src='");
            html.Append(template.ThumbImage);
            html.Append("'>");
            html.Append("</div>");
            //html.Append("</a>");
            html.Append("<div class='sfTemplatedetail'>");
            html.Append("<ul><li class='title'><span>");
            html.Append(template.TemplateName);
            html.Append("</span> </li> <li class='author'><span>By:<a href='#'>Contentder</a></span> </li>");
            html.Append("</ul></div>");
            string activateId = "lnkActivate#" + template.TemplateSeoName;
            string previewId  = "lnkPreview#" + template.TemplateSeoName;
            if (!template.IsDefault)
            {
                if (!template.IsActive)
                {
                    html.Append("<i class='icon-close sfDelete' href='#' rel=");
                    html.Append(template.TemplateSeoName);
                    html.Append("></i>");
                }
            }
            string isActivated = "<i class='fa fa-check-square-o' aria-hidden='true'></i>";
            if (template.IsActive)
            {
                isActivated = "Activated";
            }
            //html.Append("<div class='sfButtonwrapper'>");
            //html.Append("<ul class='sfTemplateSetting'><li class='sfViewDemo'><a href='#' ><i class="fa fa-eye"></i></a></li><li class="activate"><a href="#" id=' + activateId + '>' + isActivated + '</a></li>';
            //html.Append(" <li class="sfTemplateCustomize"><a href="#"><i class="fa fa-cog"></i></a><ul  class="sfTemplateEdit">';
            //html.Append("<li class="sfPages"><a href="' + SageFrameHostURL + '/Admin/Pages' + p.Extension + '" target="_blank" >Pages</a></li>';
            //html.Append("<li class="templatePreset" data="' + template.TemplateName + '">Preset</li><li class="templateLayout" data="' + template.TemplateName + '">Layout Manager</li><li class="lnkThemes" data="' + template.TemplateName + '">Theme Options</li></ul></li>';
            //var editFileLink = p.EditFilePath + '/Admin/Template-File-Editor' + p.Extension + '?tname=' + template.TemplateSeoName;
            //// if (!item.IsDefault) {
            //tempMarkup += '<li class="sfEditfiles"><a href=' + editFileLink + ' id="lnkEditFiles"><i class="fa fa-pencil-square-o"></i></a></li>';
            ////                        if (!item.IsActive)
            ////                            tempMarkup += ' <li class="sfDelete"><a href="#" id="lnkDelete" rel=' + template.TemplateSeoName + '>Delete</a></li>';
            ////}
            //html.Append("</ul></div><div class='clear'></div></div>");
            html.Append("<div class='templateoverlay'><span class='checked'></span></div>");
            html.Append("<div class='clear'></div></div>");
            //  if (SageFramePortalID == 1) {
            //     html += tempMarkup;
            //}
            //else {
            //if (!template.IsApplied)
            //{
            //    html += tempMarkup;
            //}

            //}
        }
        //lstTemplates;
        ltrTemplateList.Text = html.ToString();
    }
        //private string GetUpgraderUrl()
        //{
        //    string upgradeLink = string.Empty;
        //    if (GetPortalID > 1)
        //    {
        //        upgradeLink = "~/portal/" + GetPortalSEOName + "/Admin/sfUpgrader" + Extension;
        //    }
        //    else
        //    {
        //        upgradeLink = "~/Admin/sfUpgrader" + Extension;
        //    }
        //    return upgradeLink;
        //}

        private void SetPortalCofig()
        {
            Hashtable       hstPortals = GetPortals();
            SageUserControl suc        = new SageUserControl();

            suc.PagePath = PagePath;
            int portalID = 1;

            #region "Get Portal SEO Name and PortalID"
            if (string.IsNullOrEmpty(Request.QueryString["ptSEO"]))
            {
                if (string.IsNullOrEmpty(PortalSEOName))
                {
                    PortalSEOName = GetDefaultPortalName(hstPortals, 1);
                }
                else if (!hstPortals.ContainsKey(PortalSEOName.ToLower().Trim()))
                {
                    PortalSEOName = GetDefaultPortalName(hstPortals, 1);
                }
                else
                {
                    portalID = int.Parse(hstPortals[PortalSEOName.ToLower().Trim()].ToString());
                }
            }
            else
            {
                PortalSEOName = Request.QueryString["ptSEO"].ToString().ToLower().Trim();
                portalID      = Int32.Parse(Request.QueryString["ptlid"].ToString());
            }
            #endregion
            suc.SetPortalSEOName(PortalSEOName.ToLower().Trim());
            Session[SessionKeys.SageFrame_PortalSEOName]               = PortalSEOName.ToLower().Trim();
            Session[SessionKeys.SageFrame_PortalID]                    = 1;
            Session[SessionKeys.SageFrame_AdminTheme]                  = ThemeHelper.GetAdminTheme(1, GetUsername);
            Globals.sysHst[ApplicationKeys.ActiveTemplate + "_" + 1]   = TemplateController.GetActiveTemplate(1).TemplateSeoName;
            Globals.sysHst[ApplicationKeys.ActivePagePreset + "_" + 1] = PresetHelper.LoadActivePagePreset(GetActiveTemplate, GetPageSEOName(Request.Url.ToString()));
            suc.SetPortalID(1);
            SetPortalID(1);
            #region "Set user credentials for modules"
            //SecurityPolicy objSecurity = new SecurityPolicy();
            //if (objSecurity.GetUser(1) != string.Empty)
            //{
            //    SettingProvider objSP = new SettingProvider();
            //    SageFrameConfig sfConfig = new SageFrameConfig();
            //    string strRoles = string.Empty;
            //    List<SageUserRole> sageUserRolles = objSP.RoleListGetByUsername(objSecurity.GetUser(1), 1);
            //    if (sageUserRolles != null)
            //    {
            //        foreach (SageUserRole userRole in sageUserRolles)
            //        {
            //            strRoles += userRole.RoleId + ",";
            //        }
            //    }
            //    if (strRoles.Length > 1)
            //    {
            //        strRoles = strRoles.Substring(0, strRoles.Length - 1);
            //    }
            //    if (strRoles.Length > 0)
            //    {
            //        SetUserRoles(strRoles);
            //    }
            //}
            #endregion
        }
    public static void GetAll(object parameters)
    {
        IList <Model_Template> ret = TemplateController.GetTemplate(parameters);

        AppTools.SendResponse(HttpContext.Current.Response, ret.ObjectToJSON());
    }