public void FieldWithSpacesReturningNullIssue() { /* * This test is in response to issue 53 raised on the Glass.Sitecore.Mapper * project. When two interfaces have similar names are created as proxies * the method GetTypeConfiguration returns the wrong config. */ //Assign string path = "/sitecore/content/Tests/Misc/FieldWithSpace"; string expected = "Hello space"; string imageValue = "<image mediaid=\"{C2CE5623-1E36-4535-9A01-669E1541DDAF}\" mediapath=\"/Tests/Dayonta\" src=\"~/media/C2CE56231E3645359A01669E1541DDAF.ashx\" />"; var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var item = db.GetItem(path); using (new ItemEditing(item, true)) { item["Field With Space"] = expected; item["Image Field"] = imageValue; } var scContext = new SitecoreContext(db); var glassHtml = new GlassHtml(scContext); //Act var instance = scContext.GetItem<FieldWithSpaceIssue>(path); //Assert Assert.AreEqual(expected, instance.FieldWithSpace); Assert.IsNotNull(instance.ImageSpace); }
public void QueryRelative_RetrievesSiblings() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var path = "/sitecore/content/Tests/SitecoreContext/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = db.GetItem(path); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target1"); var target2 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target2"); //Act var results = scContext.QueryRelative <StubClass>("../*"); //Assert Assert.AreEqual(3, results.Count()); Assert.IsTrue(results.Any(x => x.Id == target1.ID)); Assert.IsTrue(results.Any(x => x.Id == target1.ID)); Assert.IsTrue(results.Any(x => x.Id == Sitecore.Context.Item.ID)); }
public ActionResult GetAttraction() { var context = new SitecoreContext(); Attraction model = GetDataSourceItem <Attraction>(); return(View("~/Views/Museum/Main/_ThemesAndAttractions.cshtml", model)); }
public T GetItem(Item item) { using (var context = new SitecoreContext()) { return(context.Cast <T>(item)); } }
public ISitecoreContext GetSitecoreContext(Context context) { if (context == null) { Context providerContext = GlassContextProvider.GetContext(); if (providerContext == null) { throw new NotSupportedException("Sitecore Context Requires a Glass Context"); } context = providerContext; } string cacheKey = String.Format("GlassContext_{0}_{1}", context.Name, CachedContextsKey); SitecoreContext sitecoreContext = Sitecore.Context.Items[cacheKey] as SitecoreContext; if (sitecoreContext == null) { string contextName = context.Name; sitecoreContext = new SitecoreContext(contextName); Sitecore.Context.Items[cacheKey] = sitecoreContext; } return(sitecoreContext); }
public void QuerySingleRelative_RetrievesSibling() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("QueryRelative") { new Sitecore.FakeDb.DbItem("Source"), new Sitecore.FakeDb.DbItem("Target1"), new Sitecore.FakeDb.DbItem("Target2") } }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubClass))); var path = "/sitecore/content/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); var target1 = database.GetItem("/sitecore/content/QueryRelative/Target1"); //Act var result = scContext.QuerySingleRelative <StubClass>("../*[@@name='Target1']"); //Assert Assert.AreEqual(target1.ID, result.Id); } }
public override void Initialize(Rendering rendering) { base.Initialize(rendering); var glassService = new SitecoreContext(); // Set Current Site's Home Page Item HomePage = glassService.Cast <CoreInferred>(DatabaseContext.GetItem(Sitecore.Context.Site.StartPath), true, true) as CoreHome; if (HomePage == null || !HomePage.Children.Any()) { return; } // Fill First level of content pages ContentPages = HomePage.Children.OfType <CoreFolder>().ToList(); // Fill the Micro Sites var microSiteFolders = HomePage.Children.OfType <SiteFolder>().ToList(); if (!microSiteFolders.Any()) { return; } // Get home pages under Site Folder MicroSites = microSiteFolders.SelectMany( f => f.Children.OfType <CoreHome>(), (f, c) => c ).ToList(); }
protected T GetItem <T>(Item item) where T : class { using (var context = new SitecoreContext()) { return(context.Cast <T>(item)); } }
public override void Process(GetModelArgs args) { if (args.Result == null) { try { Type type = GetFromField(args.Rendering, args); if (Context.StaticContext.Classes.ContainsKey(type)) { ISitecoreContext context = new SitecoreContext(); var result = context.GetCurrentItem(type); args.Result = result; } } catch (MapperException ex) { //do nothing } catch (System.TypeLoadException ex) { //do nothing } } }
public void RenderingParameters_StringPassedInWithParametersUsingIdOnType_ReturnsModelWithValues() { //Arrange var expectedNumber = 234; var expectedId1 = new Guid("{032B690F-5113-44C4-AEC7-A16B44382D4C}"); var expectedId2 = new Guid("{6CF01319-0234-42C8-AEC1-FE757169F7A0}"); var expectedFieldValue = "hello world"; var parameters = "StringField={0}&Number={1}&Items={2}" .Formatted( WebUtil.UrlEncode(expectedFieldValue), WebUtil.UrlEncode(expectedNumber.ToString()), WebUtil.UrlEncode("{0}|{1}".Formatted(expectedId1, expectedId2))); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var service = new SitecoreContext(db); var html = new GlassHtml(service); //Act var result = html.GetRenderingParameters <RenderingTestWithAttribute>(parameters); //Assert Assert.AreEqual(expectedNumber, result.Number); Assert.AreEqual(expectedFieldValue, result.StringField); Assert.IsTrue(result.Items.Any(x => x.Id == expectedId1)); Assert.IsTrue(result.Items.Any(x => x.Id == expectedId2)); Assert.AreEqual(2, result.Items.Count()); }
private void AddCssClassToNavItem(Models.NavigationItem item) { var currentitem = SitecoreContext.GetCurrentItem <Models.NavigationItem>(); item.CssClass = ""; if (currentitem.Parent != null && currentitem.Parent.Id == item.Id) { item.CssClass += " is-open"; } else if (currentitem.Parent != null && currentitem.Parent.Parent != null && currentitem.Parent.Parent.Id == item.Id) { item.CssClass += " is-open"; } if (item.Id == currentitem.Id) { item.CssClass += " is-current is-open"; } else { if (item.NavigationItems != null) { foreach (var i in item.NavigationItems) { AddCssClassToNavItem(i); } } } }
public ISitecoreContext GetSitecoreContext(Context context) { if (context == null) { Context providerContext = GlassContextProvider.GetContext(); if (providerContext == null) { throw new NotSupportedException("Sitecore Context Requires a Glass Context"); } context = providerContext; } string cacheKey = String.Format("GlassContext_{0}_{1}", context.Name, CachedContextsKey); SitecoreContext sitecoreContext = Sitecore.Context.Items[cacheKey] as SitecoreContext; if (sitecoreContext == null) { string contextName = context.Name; sitecoreContext = new SitecoreContext(contextName); Sitecore.Context.Items[cacheKey] = sitecoreContext; } return sitecoreContext; }
public ActionResult Index() { ISitecoreContext context = new SitecoreContext(); var result = context.GetCurrentItem <IHeader>(); return(View(result)); }
void CommentSubmit_Click(object sender, EventArgs e) { var contextService = new SitecoreContext(); var masterService = new SitecoreService("master"); var page = contextService.GetCurrentItem <CommentPage>(); var comment = new Comment(); //This value will be used for the name of the item comment.Name = DateTime.Now.ToString("yy-MM-ddThh-mm-ss"); comment.Content = CommentContent.Text; comment.FullName = CommentName.Text; comment.Email = CommentEmail.Text; using (new SecurityDisabler()) { masterService.Create(page, comment); } CommentThankYou.Visible = true; comment.Content = string.Empty; comment.FullName = string.Empty; comment.Email = string.Empty; }
public virtual T GetControllerItem <T>(bool isLazy = false, bool inferType = false) where T : class { try { //The call to Sitecore.Mvc.Presentation.RenderingContext.Current cause the exception // attempt to retrieve context object of type 'Sitecore.Mvc.Presentation.RenderingContext' from empty stack. //when used in a controller that is targeted by a route and not a rendering. if (Sitecore.Mvc.Presentation.RenderingContext.Current == null || Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering == null || Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering.DataSource.IsNullOrEmpty()) { return(SitecoreContext.GetCurrentItem <T>()); } return(SitecoreContext.GetItem <T>( Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering.DataSource, isLazy, inferType )); } catch (InvalidOperationException ex) { return(SitecoreContext.GetCurrentItem <T>()); } }
/// <summary> /// return current item if the item path is null or empty else return item for the corresponding path /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path"></param> /// <returns></returns> protected T GetItem <T>(string path = "") where T : class { using (var context = new SitecoreContext()) { return(string.IsNullOrEmpty(path) ? context.GetCurrentItem <T>() : context.GetItem <T>(path)); } }
public void ItemPropertySave_SavesItemOnProperty_SetsField() { /* * Tests that we can save to an item property. */ //Assign var context = Context.Create(Utilities.CreateStandardResolver()); var db = Factory.GetDatabase("master"); var scContext = new SitecoreContext(db); string path = "/sitecore/content/Tests/Misc/ItemPropertySave"; var expected = "some expected value"; var item = db.GetItem(path); using (new ItemEditing(item, true)) { item["Field1"] = string.Empty; } var instance = scContext.GetItem<ItemPropertySaveStub>(path); //Act instance.Field1 = expected; using (new SecurityDisabler()) { scContext.Save(instance); } //Assert Assert.AreEqual(expected, instance.Item["Field1"]); }
public ActionResult AllSessions() { var context = new SitecoreContext(); var currentItem = context.GetCurrentItem <ISessionOverview>(); return(View(currentItem)); }
public new ActionResult Index() { var context = new SitecoreContext(); var result = context.GetCurrentItem <Article>(); return(View(result)); }
public void GetCurrentItem_OneParameters() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("Target") }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubClass))); string param1 = "1para"; var path = "/sitecore/content/Target"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); //Act var result = scContext.GetCurrentItem <StubClass, string>(param1); //Assert Assert.AreEqual(Sitecore.Context.Item.ID, result.Id); Assert.AreEqual(param1, result.Param1); } }
public ActionResult BodyText() { var vm = SitecoreContext.GetCurrentItem <IBasePage>(); return(!string.IsNullOrEmpty(vm.BodyText) || Sitecore.Context.PageMode.IsExperienceEditor ? PartialView(vm) : null); }
public void QueryRelative_NoResultsReturnsEmptyResult() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("QueryRelative") { new Sitecore.FakeDb.DbItem("Source"), new Sitecore.FakeDb.DbItem("Target1"), new Sitecore.FakeDb.DbItem("Target2") } }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader <SitecoreTypeConfiguration>(typeof(StubClass))); var path = "/sitecore/content/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); var target1 = database.GetItem("/sitecore/content/QueryRelative/Target1"); var target2 = database.GetItem("/sitecore/content/QueryRelative/Target2"); using (new SecurityDisabler()) { //Act var results = scContext.QueryRelative <StubClass>("/*[@@templatename='notthere']"); //Assert Assert.AreEqual(0, results.Count()); } } }
///// <summary> ///// Redirect to Knowledge Gateway Home Page ///// </summary> ///// <returns></returns> public ActionResult RedirectToHomePage() { PageBase homeItem = SitecoreContext.GetHomeItem <PageBase>(); string homePageUrl = homeItem.Url; return(Redirect(homePageUrl)); }
public T GetItem(string path = "") { using (var context = new SitecoreContext()) { return(string.IsNullOrEmpty(path) ? context.GetCurrentItem <T>() : context.GetItem <T>(path)); } }
public ActionResult MenuRender() { var context = new SitecoreContext(); var model = context.GetHomeItem <Item>(); return(View()); }
public object CreateElementInstance(Type baseType, IDictionary <string, object> fieldValues, IEnumerable <IExecutionContext> executionContexts) { var typeConfig = Context.Default.GetTypeConfiguration <SitecoreTypeConfiguration>(baseType); if (typeConfig == null || typeConfig.TemplateId == (ID)null) { return(_defaultDocumentMapper.CreateElementInstance(baseType, fieldValues, executionContexts)); } var sitecoreService = new SitecoreContext(); var typeCreationContext = new SitecoreTypeCreationContext { SitecoreService = sitecoreService, RequestedType = baseType, InferType = true, IsLazy = true, TemplateId = ID.Parse(fieldValues[BuiltinFields.Template]), }; using (new SearchSwitcher()) { var proxy = sitecoreService.InstantiateObject(typeCreationContext); SetupProxy(ID.Parse(fieldValues[BuiltinFields.Group]), fieldValues, proxy as IProxyTargetAccessor); return(proxy); } }
public ActionResult commentPage() { var context = new SitecoreContext(); var model = context.GetCurrentItem <Page_Site>(); return(View("~/Views/Detail/commentPage.cshtml", model)); }
public static IEnumerable <AgendaModel> GetPastAgendaItemsForPerson(PersonModel model) { ISitecoreContext context = new SitecoreContext(); var archiveItem = context.GetItem <AgendaOverviewModel>(new Guid("{BA01B6B5-BF68-46DE-900F-BCE1227E72B0}")); return(archiveItem.ChildrenAsAgendaItems.Where(agendaModel => agendaModel.Speakers.Any(personModel => personModel.Id.ToString() == model.Id.ToString())).ToList()); }
// GET: Session public ActionResult SessionDetails() { var context = new SitecoreContext(); var currentItem = context.GetCurrentItem <ISessionDetail>(); return(View(currentItem)); }
public void ItemPropertySave_SavesItemOnProperty_SetsField() { /* * Tests that we can save to an item property. */ //Assign var context = Context.Create(Utilities.CreateStandardResolver()); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var scContext = new SitecoreContext(db); string path = "/sitecore/content/Tests/Misc/ItemPropertySave"; var expected = "some expected value"; var item = db.GetItem(path); using (new ItemEditing(item, true)) { item["Field1"] = string.Empty; } var instance = scContext.GetItem <ItemPropertySaveStub>(path); //Act instance.Field1 = expected; using (new SecurityDisabler()) { scContext.Save(instance); } //Assert Assert.AreEqual(expected, instance.Item["Field1"]); }
public ActionResult GetShowsForToday() { var list = new List <PlanEvent>(); var sc = new SitecoreContext(); var itemBuckets = Sitecore.Configuration.Factory.GetDatabase("master").GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Path.Contains("Sections/PlanBuckets/AsiaPlan/") && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")); if (result != null) { foreach (var item in result) { list.Add(sc.Cast <PlanEvent>(item.GetItem())); } } } } if (list.Count > 0) { string today = DateTime.Now.ToString("dd/MM/yyyy");//9/1/2015" // today = "01/12/2017"; //get shows after today 12:00 AM IEnumerable <PlanEvent> elist = list.Where(x => DateTime.ParseExact(x.BroadcastDate, "dd/MM/yyyy", null).CompareTo(DateTime.ParseExact(today, "dd/MM/yyyy", null)) > 0); list = new List <PlanEvent>(elist); //sort them in ascending list.Sort((date1, date2) => DateTime.ParseExact(date1.BroadcastDate + " " + date1.PlanTime, "dd/MM/yyyy HH:mm", null).CompareTo(DateTime.ParseExact(date2.BroadcastDate + " " + date2.PlanTime, "dd/MM/yyyy HH:mm", null))); int a = list.Count; } return(View(list)); }
public void InterfaceIssueInPageEditorWhenInterfaceInheritsFromAnInterfaceWithSimilarName() { /* * This test is in response to issue 53 raised on the Glass.Sitecore.Mapper * project. When two interfaces have similar names are created as proxies * the method GetTypeConfiguration returns the wrong config. */ //Assign var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var scContext = new SitecoreContext(db); var glassHtml = new GlassHtml(scContext); var instance = scContext.GetItem<IBasePage>("/sitecore"); //Act glassHtml.Editable(instance, x => x.Title); //This method should execute without error }
public object GetObject(string model) { if (model.IsNullOrEmpty()) { return(null); } var type = Type.GetType(model, true); if (type == null) { return(null); } var context = Context.Contexts[ContextName]; if (context == null) { throw new MapperException("Failed to find context {0}".Formatted(ContextName)); } if (context.TypeConfigurations.ContainsKey(type)) { ISitecoreContext scContext = new SitecoreContext(context); var result = scContext.GetCurrentItem(type); return(result); } return(null); }
public ActionResult AllSpeakers() { var ctx = new SitecoreContext(); var currentItem = ctx.GetCurrentItem <ISpeakers>(); return(View(currentItem)); }
public void GetHomeItem_ReturnsHomeItem() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var doc = new XmlDocument(); doc.LoadXml("<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content/Tests/SitecoreContext/GetHomeItem' startItem='/Target1' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); Sitecore.Context.Site = new SiteContext( new SiteInfo( doc.FirstChild ) ); //Sitecore.Context.Site = Sitecore.Configuration.Factory.GetSite("GetHomeItem"); var scContext = new SitecoreContext(); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/GetHomeItem/Target1"); //Act var result = scContext.GetHomeItem <StubClass>(); //Assert Assert.AreEqual(target1.ID, result.Id); }
public void RenderImage_MatchesSitecoreOutput_Issue133() { //Assign string targetPath = "/sitecore/content/Tests/GlassHtml/RenderImage/Target"; var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var service = new SitecoreContext(db); var html = new GlassHtml(service); string fieldValue= "<image mediaid=\"{D897833C-1F53-4FAE-B54B-BB5B11B8F851}\" mediapath=\"/Files/20121222_001405\" src=\"~/media/D897833C1F534FAEB54BBB5B11B8F851.ashx\" hspace=\"15\" vspace=\"20\" />"; var item = db.GetItem(targetPath); var field = item.Fields["Image"]; using (new ItemEditing(item, true)) { field.Value = fieldValue; } var model = service.GetItem<StubClassWithImage>(targetPath); var scControl = new Sitecore.Web.UI.WebControls.Image(); scControl.Item = item; scControl.Field = "Image"; scControl.Parameters = "mw=200"; var doc = new XmlDocument(); doc.LoadXml("<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content/Tests/SitecoreContext/GetHomeItem' startItem='/Target1' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); var siteContext = new SiteContextStub( new SiteInfo( doc.FirstChild ) ); siteContext.SetDisplayMode(DisplayMode.Normal); Sitecore.Context.Site = siteContext; StringBuilder sb = new StringBuilder(); HtmlTextWriter writer = new HtmlTextWriter(new StringWriter(sb)); //Act scControl.RenderControl(writer); var scResult = sb.ToString(); var result = html.RenderImage(model, x => x.Image, new {mw=200}); //Assert Assert.AreEqual(result,scResult); }
public void DropRead() { ISitecoreContext context = new SitecoreContext(); DemoItem current = context.GetCurrentItem<DemoItem>(); if (current.Drop != null) { string otherName = current.Drop.Name; } }
protected void Page_Load(object sender, EventArgs e) { ISitecoreContext context = new SitecoreContext(); var home = context.GetCurrentItem<Home>(); Title.Text = home.Title; Text.Text = home.Text; CreateBy.Text = home.CreatedBy; CreatedOn.Text = home.Created.ToShortDateString(); Path.Text = home.Path; }
public void DropSave() { ISitecoreContext context = new SitecoreContext(); DemoItem current = context.GetCurrentItem<DemoItem>(); OtherItem other = context.GetItem<OtherItem>("/sitecore/content/home/someOtherItem"); current.Drop = other; context.Save(current); }
protected void Page_Load(object sender, EventArgs e) { ISitecoreContext context = new SitecoreContext(); Home item = context.GetCurrentItem<Home>(); title.Text = item.Title; body.Text = item.Body; date.Text = item.Date.ToString("dd MMM yyyy"); }
public void DoWork() { var context = new SitecoreContext(); using (new VersionCountDisabler()) { var current = context.GetCurrentItem<MyModel>(); //you will need to evaluate the query before you exit the VersionCountDisabler scope var results = current.Query.ToList(); } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void Page_Load(object sender, EventArgs e) { ISitecoreContext context = new SitecoreContext(); BasePageModel = context.GetCurrentItem<BasePageModel>(); HomeModel = context.GetHomeItem<HomeModel>(); LoadMetaData(); RegisterGoogleAnalyticsScript(); if (BasePageModel.Id == HomeModel.Id) { body.Attributes.Add("class", "homepage"); } }
public void Editable_InEditMode_StringFieldWithEditReturned() { //Assign string targetPath = "/sitecore/content/Tests/GlassHtml/MakeEditable/Target"; var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var service = new SitecoreContext(db); var html = new GlassHtml(service); var model = service.GetItem<StubClass>(targetPath); var fieldValue = "test content field"; model.StringField = fieldValue ; using (new SecurityDisabler()) { service.Save(model); } var doc = new XmlDocument(); doc.LoadXml("<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content/Tests/SitecoreContext/GetHomeItem' startItem='/Target1' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); var siteContext = new SiteContextStub( new SiteInfo( doc.FirstChild ) ); siteContext.SetDisplayMode(DisplayMode.Edit); Sitecore.Context.Site = siteContext; //Act string result; using (new SecurityDisabler()) { result = html.Editable(model, x => x.StringField); } //Assert Assert.IsTrue(result.Contains(fieldValue)); //this is the webedit class Assert.IsTrue(result.Contains("scWebEditInput")); Console.WriteLine("result "+result); }
public void MultiTreeRead() { ISitecoreContext context = new SitecoreContext(); DemoItem current = context.GetCurrentItem<DemoItem>(); foreach (OtherItem other in current.Multi) { string title = other.Title; } foreach (OtherItem other in current.Tree) { string title = other.Title; } }
public void MultiTreeRead() { ISitecoreContext context = new SitecoreContext(); DemoItem current = context.GetCurrentItem<DemoItem>(); OtherItem forRemoval = current.Multi.First(); current.Multi.Remove(forRemoval); OtherItem toAdd = context.GetItem<OtherItem>("/sitecore/content/home/someOtherItem"); current.Multi.Add(toAdd); context.Save(current); }
public void RenderLink_LinkContainsAnchor_Issue155() { //Assign string targetPath = "/sitecore/content/Tests/GlassHtml/MakeEditable/Target"; var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var service = new SitecoreContext(db); var html = new GlassHtml(service); string fieldValue = "<link text='text' linktype='anchor' anchor='footer' title='' class='' />"; string expected = "<a href='#footer' >text</a>"; var item = db.GetItem(targetPath); var field = item.Fields["StringField"]; using (new ItemEditing(item, true)) { field.Value = fieldValue; } var model = service.GetItem<IStubLinkClass>(targetPath); var doc = new XmlDocument(); doc.LoadXml("<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content/Tests/SitecoreContext/GetHomeItem' startItem='/Target1' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); var siteContext = new SiteContextStub( new SiteInfo( doc.FirstChild ) ); siteContext.SetDisplayMode(DisplayMode.Normal); Sitecore.Context.Site = siteContext; StringBuilder sb = new StringBuilder(); //Act var result = html.RenderLink(model, x => x.Link); //Assert Assert.AreEqual(expected, result); }
public void GetCurrentItem_NoParameters() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var path = "/sitecore/content/Tests/SitecoreContext/GetCurrentItem/Target"; var scContext = new SitecoreContext(); Sitecore.Context.Item = db.GetItem(path); //Act var result = scContext.GetCurrentItem<StubClass>(); //Assert Assert.AreEqual(Sitecore.Context.Item.ID, result.Id); }
/// <summary> /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering. /// </summary> protected override void CreateChildControls() { Type type = Type.GetType(TypeName); Type razorControlType = typeof(AbstractRazorControl<>); Type finalControlType = razorControlType.MakeGenericType(type); WebControl finalControl =Activator.CreateInstance(finalControlType) as WebControl; ISitecoreContext _context = new SitecoreContext(Context); var model = _context.GetCurrentItem(type); TypeDescriptor.GetProperties(finalControlType).Find("Model", false).SetValue(finalControl, model); this.Controls.Add(finalControl); base.CreateChildControls(); }
public void GetCurrentItem_NoParameters() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("Target") }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader<SitecoreTypeConfiguration>(typeof(StubClass))); var path = "/sitecore/content/Target"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); //Act var result = scContext.GetCurrentItem<StubClass>(); //Assert Assert.AreEqual(Sitecore.Context.Item.ID, result.Id); } }
public void QuerySingleRelative_RetrievesSibling() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("QueryRelative") { new Sitecore.FakeDb.DbItem("Source"), new Sitecore.FakeDb.DbItem("Target1"), new Sitecore.FakeDb.DbItem("Target2") } }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader<SitecoreTypeConfiguration>(typeof(StubClass))); var path = "/sitecore/content/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); var target1 = database.GetItem("/sitecore/content/QueryRelative/Target1"); //Act var result = scContext.QuerySingleRelative<StubClass>("../*[@@name='Target1']"); //Assert Assert.AreEqual(target1.ID, result.Id); } }
public void OrderOfIgnoreIssue2_ConfiguredShouldBeSet_TitleShouldBeIgnored() { //Assign string path = "/sitecore/content/Tests/Misc/FieldConfigOrder"; string expected = "Hello space"; var fluentConfig = new SitecoreFluentConfigurationLoader(); var typeConfig = fluentConfig.Add<FieldOrderOnIgnore>(); typeConfig.AutoMap(); typeConfig.Field(x => x.ConfiguredTitle).FieldName("Title"); typeConfig.Ignore(x => x.Title); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(fluentConfig); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var item = db.GetItem(path); using (new ItemEditing(item, true)) { item["Title"] = expected; } var scContext = new SitecoreContext(db); //Act var instance = scContext.GetItem<FieldOrderOnIgnore>(path); //Assert Assert.AreEqual(expected, instance.ConfiguredTitle); Assert.IsNullOrEmpty(instance.Title); }
public void QueryRelative_RetrievesSiblings() { //Assign var db = Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var path = "/sitecore/content/Tests/SitecoreContext/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = db.GetItem(path); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target1"); var target2 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target2"); //Act var results = scContext.QueryRelative<StubClass>("../*"); //Assert Assert.AreEqual(3, results.Count()); Assert.IsTrue(results.Any(x => x.Id == target1.ID)); Assert.IsTrue(results.Any(x => x.Id == target1.ID)); Assert.IsTrue(results.Any(x => x.Id == Sitecore.Context.Item.ID)); }
public void QueryRelative_NoResultsReturnsEmptyResult() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var path = "/sitecore/content/Tests/SitecoreContext/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = db.GetItem(path); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target1"); var target2 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target2"); using (new SecurityDisabler()) { //Act var results = scContext.QueryRelative<StubClass>("/*[@@templatename='notthere']"); //Assert Assert.AreEqual(0, results.Count()); } }
public void GetCurrentItem_FourParameters() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("Target") }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader<SitecoreTypeConfiguration>(typeof(StubClass))); string param1 = "1para"; string param2 = "2para"; string param3 = "3para"; string param4 = "4para"; var path = "/sitecore/content/Target"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); //Act var result = scContext.GetCurrentItem<StubClass, string, string, string, string>(param1, param2, param3, param4); //Assert Assert.AreEqual(Sitecore.Context.Item.ID, result.Id); Assert.AreEqual(param1, result.Param1); Assert.AreEqual(param2, result.Param2); Assert.AreEqual(param3, result.Param3); Assert.AreEqual(param4, result.Param4); } }
public void GetHomeItem_ReturnsHomeItem() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("Target") }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader<SitecoreTypeConfiguration>(typeof(StubClass))); var doc = new XmlDocument(); doc.LoadXml( "<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content' startItem='/Target' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); Sitecore.Context.Site = new SiteContext( new SiteInfo( doc.FirstChild ) ); //Sitecore.Context.Site = Sitecore.Configuration.Factory.GetSite("GetHomeItem"); using (new SiteContextSwitcher(new SiteContext(new SiteInfo( doc.FirstChild )))) { var scContext = new SitecoreContext(); var target1 = database.GetItem("/sitecore/content/Target"); //Act var result = scContext.GetHomeItem<StubClass>(); //Assert Assert.AreEqual(target1.ID, result.Id); } } }
/// <summary> /// Gets the object. /// </summary> /// <param name="model">The model.</param> /// <param name="db">The db.</param> /// <returns></returns> /// <exception cref="Glass.Mapper.MapperException">Failed to find context {0}.Formatted(ContextName)</exception> public object GetObject(string model, Database db, Rendering renderingItem) { if (model.IsNullOrEmpty()) return null; //must be a path to a Model item if (model.StartsWith("/sitecore")) { var target = db.GetItem(model); if (target == null) return null; string newModel = target[ModelTypeField]; return GetObject(newModel, db, renderingItem); } //if guid must be that to Model item Guid targetId; if (Guid.TryParse(model, out targetId)) { var target = db.GetItem(new ID(targetId)); if (target == null) return null; string newModel = target[ModelTypeField]; return GetObject(newModel, db, renderingItem); } var type = Type.GetType(model, false); if (type == null) return null; var context = Context.Contexts.ContainsKey(ContextName) ? Context.Contexts[ContextName] : null; if (context == null) throw new MapperException("Failed to find context {0}".Formatted(ContextName)); //this is really aggressive if (!context.TypeConfigurations.ContainsKey(type)) { //if the config is null then it is probably an ondemand mapping so we have to load the ondemand part IConfigurationLoader loader = new OnDemandLoader<SitecoreTypeConfiguration>(type); context.Load(loader); } ISitecoreContext scContext = new SitecoreContext(context); if (renderingItem.DataSource.IsNotNullOrEmpty()) { var item = scContext.Database.GetItem(renderingItem.DataSource); return scContext.CreateType(type, item, false, false, null); } return scContext.GetCurrentItem(type); }
public void RenderingParameters_StringPassedInWithParametersUsingIdOnType_ReturnsModelWithValues() { //Arrange var expectedNumber = 234; var expectedId1 = new Guid("{032B690F-5113-44C4-AEC7-A16B44382D4C}"); var expectedId2 = new Guid("{6CF01319-0234-42C8-AEC1-FE757169F7A0}"); var expectedFieldValue = "hello world"; var parameters = "StringField={0}&Number={1}&Items={2}" .Formatted( WebUtil.UrlEncode(expectedFieldValue), WebUtil.UrlEncode(expectedNumber.ToString()), WebUtil.UrlEncode("{0}|{1}".Formatted(expectedId1, expectedId2))); var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var service = new SitecoreContext(db); var html = new GlassHtml(service); //Act var result = html.GetRenderingParameters<RenderingTestWithAttribute>(parameters); //Assert Assert.AreEqual(expectedNumber, result.Number); Assert.AreEqual(expectedFieldValue, result.StringField); Assert.IsTrue(result.Items.Any(x => x.Id == expectedId1)); Assert.IsTrue(result.Items.Any(x => x.Id == expectedId2)); Assert.AreEqual(2, result.Items.Count()); }
public void GetHomeItem_ReturnsHomeItem() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var doc = new XmlDocument(); doc.LoadXml("<site name='GetHomeItem' virtualFolder='/' physicalFolder='/' rootPath='/sitecore/content/Tests/SitecoreContext/GetHomeItem' startItem='/Target1' database='master' domain='extranet' allowDebug='true' cacheHtml='true' htmlCacheSize='10MB' registryCacheSize='0' viewStateCacheSize='0' xslCacheSize='5MB' filteredItemsCacheSize='2MB' enablePreview='true' enableWebEdit='true' enableDebugger='true' disableClientData='false' />"); Sitecore.Context.Site = new SiteContext( new SiteInfo( doc.FirstChild ) ); //Sitecore.Context.Site = Sitecore.Configuration.Factory.GetSite("GetHomeItem"); var scContext = new SitecoreContext(); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/GetHomeItem/Target1"); //Act var result = scContext.GetHomeItem<StubClass>(); //Assert Assert.AreEqual(target1.ID, result.Id); }
public void QuerySingleRelative_RetrievesSibling() { //Assign var db = Sitecore.Configuration.Factory.GetDatabase("master"); var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new SitecoreAttributeConfigurationLoader("Glass.Mapper.Sc.Integration")); var path = "/sitecore/content/Tests/SitecoreContext/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = db.GetItem(path); var target1 = db.GetItem("/sitecore/content/Tests/SitecoreContext/QueryRelative/Target1"); //Act var result = scContext.QuerySingleRelative<StubClass>("../*[@@name='Target1']"); //Assert Assert.AreEqual(target1.ID, result.Id); }
public void QueryRelative_NoResultsReturnsEmptyResult() { //Assign using (Db database = new Db { new Sitecore.FakeDb.DbItem("QueryRelative") { new Sitecore.FakeDb.DbItem("Source"), new Sitecore.FakeDb.DbItem("Target1"), new Sitecore.FakeDb.DbItem("Target2") } }) { var context = Context.Create(Utilities.CreateStandardResolver()); context.Load(new OnDemandLoader<SitecoreTypeConfiguration>(typeof(StubClass))); var path = "/sitecore/content/QueryRelative/Source"; var scContext = new SitecoreContext(); Sitecore.Context.Item = database.GetItem(path); var target1 = database.GetItem("/sitecore/content/QueryRelative/Target1"); var target2 = database.GetItem("/sitecore/content/QueryRelative/Target2"); using (new SecurityDisabler()) { //Act var results = scContext.QueryRelative<StubClass>("/*[@@templatename='notthere']"); //Assert Assert.AreEqual(0, results.Count()); } } }