public void WhenInstantiatingClassWithDefaultConstructor_Succeeds()
        {
            // Arrange
            WebFrameworkViewModel model;

            // Act
            model = new WebFrameworkViewModel();

            // Assert
            Assert.NotNull(model);
        }
        public void WhenValidatingWebFrameworkWithoutData_ThenValidationFails()
        {
            // Arrange
            var viewModel = new WebFrameworkViewModel { PageId = 1 };

            // Act
            List<ValidationResult> validationResults = ValidateModel(viewModel);

            // Assert
            Assert.Equal(validationResults.Count, 1);
        }
        /// <summary>
        /// The validate model.
        /// </summary>
        /// <param name="viewModel">
        /// The view model.
        /// </param>
        private static List<ValidationResult> ValidateModel(WebFrameworkViewModel viewModel)
        {
            var context = new ValidationContext(viewModel, null, null);

            //// Validator.ValidateObject(viewModel, context, true);
            var validationResults = new List<ValidationResult>();

            Validator.TryValidateObject(viewModel, context, validationResults);

            return validationResults;
        }
        public WebFrameworkViewModel WebFrameworkViewModelBind(int pageId)
        {
            var viewModel = new WebFrameworkViewModel();

            Page page = this.GetPage(pageId);
            Domain domain = this.GetDomain(page.PortalId);
            SeoDecorator seo = this.GetSeo(pageId);
            PageTemplate pageTemplate = this.GetPageTemplate(page.PageTemplateId);

            viewModel.HostHeader = domain.HostHeader;

            viewModel.LayoutTemplateSrc = pageTemplate.LayoutTemplateSrc;
            viewModel.PageActionName = page.ActionName;
            viewModel.PageControllerName = page.ControllerName;
            viewModel.PageId = pageId;
            viewModel.PageTemplateId = page.PageTemplateId;
            viewModel.PageTitle = page.Title;

            viewModel.PageTemplateZoneIdList = this.GetPageTemplateZoneIdList(page.PageTemplateId);
            viewModel.PartViewModelList = this.GetPartViewModelList(pageId);
            viewModel.PartViewModelDictionary = this.GetPartViewModelListDictionary(viewModel.PartViewModelList);

            viewModel.PortalId = page.PortalId;
            viewModel.PrimaryDomainId = domain.DomainId;

            viewModel.SeoCanonical = string.Format("http://{0}/{1}", domain.HostHeader, seo.LookFor);
            viewModel.SeoDescription = seo.Description;
            viewModel.SeoKeywords = seo.Keywords;
            viewModel.SeoLookFor = seo.LookFor;
            viewModel.SeoRobots = GetRobotsMetaContent(seo.RobotsFollow, seo.RobotsIndex);

            viewModel.CssAssets = this.GetCssAssets(pageId);
            viewModel.JavaScriptAssets = this.GetJavascriptAssets(pageId);

            viewModel.UserId = -1;

            viewModel.EditModeActivated = false;

            return viewModel;
        }