protected void lnk_Delete_Click(object sender, System.EventArgs e) { if (!base.IsAuthorizedOp(ActionType.Delete.ToString())) { base.ShowAjaxMsg(this.UpdatePanel1, "Không có thẩm quyền"); } else { int @int = WebUtils.GetInt((sender as LinkButton).CommandArgument); UserFieldInfo dataById = SinGooCMS.BLL.UserField.GetDataById(@int); if (dataById == null) { base.ShowAjaxMsg(this.UpdatePanel1, "没有找到此字段,字段不存在或者已删除"); } else if (dataById.IsSystem) { base.ShowAjaxMsg(this.UpdatePanel1, "系统字段不能删除"); } else if (SinGooCMS.BLL.UserField.Delete(@int)) { this.BindData(); PageBase.log.AddEvent(base.LoginAccount.AccountName, "Xóa trường [" + dataById.FieldName + "] thành công"); base.ShowAjaxMsg(this.UpdatePanel1, "Thao tác thành công"); } else { base.ShowAjaxMsg(this.UpdatePanel1, "Thao tác thất bại"); } } }
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) { UserFieldInfo userFieldInfo = e.Item.DataItem as UserFieldInfo; FieldControl fieldControl = e.Item.FindControl("field") as FieldControl; if (fieldControl != null) { fieldControl.ControlType = (FieldType)userFieldInfo.FieldType; fieldControl.ControlPath = "~/Platform/h5/FieldControls/"; fieldControl.LoadControlId = ((FieldType)userFieldInfo.FieldType).ToString(); fieldControl.FieldName = userFieldInfo.FieldName; fieldControl.FieldAlias = userFieldInfo.Alias; fieldControl.FieldId = userFieldInfo.AutoID; fieldControl.Settings = XmlSerializerUtils.Deserialize <SinGooCMS.Control.FieldSetting>(userFieldInfo.Setting); fieldControl.DataLength = userFieldInfo.DataLength; fieldControl.EnableNull = userFieldInfo.EnableNull; if (!string.IsNullOrEmpty(userFieldInfo.Value)) { fieldControl.Value = userFieldInfo.Value.Trim(); } else { fieldControl.Value = (userFieldInfo.DefaultValue ?? string.Empty); } } } }
public void WriteValueToListItem_GivenUserFieldFieldInfo_ShouldUseUserValueWriter() { using (ShimsContext.Create()) { // Arrange var correctWriterWasUsed = false; var fieldInfo = new UserFieldInfo("InternalName", Guid.NewGuid(), string.Empty, string.Empty, string.Empty); ShimUserValueWriter.AllInstances.WriteValueToListItemSPListItemFieldValueInfo = (inst, listItem, fieldValueInfo) => { correctWriterWasUsed = true; }; var fakeListItem = new ShimSPListItem().Instance; IFieldValueWriter writer; using (var scope = UnitTestServiceLocator.BeginLifetimeScope()) { writer = scope.Resolve <IFieldValueWriter>(); } // Act writer.WriteValueToListItem(fakeListItem, new FieldValueInfo(fieldInfo, null)); // Assert Assert.IsTrue(correctWriterWasUsed, "The UserValueWriter should have been used for the UserFieldFieldInfo type."); } }
public virtual bool RemoveItem(UserFieldInfo item) { if (item == null) { return(false); } int num = -1; object @lock; Monitor.Enter(@lock = this.m_lock); try { for (int i = 0; i < this.m_capalility; i++) { if (this.m_fields[i] == item) { num = i; this.m_fields[i] = null; break; } } } finally { Monitor.Exit(@lock); } return(num != -1); }
public virtual bool AddFieldTo(UserFieldInfo item, int place) { if (item == null || place >= this.m_capalility || place < 0) { return(false); } object @lock; Monitor.Enter(@lock = this.m_lock); try { this.m_fields[place] = item; if (this.m_fields[place] != null) { place = -1; } else { this.m_fields[place] = item; item.FieldID = place; } } finally { Monitor.Exit(@lock); } return(place != -1); }
public bool AddFieldTo(UserFieldInfo item, int place, int farmId) { if (base.AddFieldTo(item, place)) { item.FarmID = farmId; return(true); } return(false); }
public bool AddField(UserFieldInfo item, int minSlot) { if (item == null) { return(false); } int place = this.FindFirstEmptySlot(minSlot); return(this.AddFieldTo(item, place)); }
public static FieldAddState Add(UserFieldInfo field) { UserGroupInfo dataById = UserGroup.GetDataById(field.UserGroupID); FieldAddState result; if (dataById == null) { result = FieldAddState.ModelNotExists; } else { int value = BizBase.dbo.GetValue <int>(string.Concat(new object[] { "SELECT COUNT(*) FROM cms_UserField WHERE UserGroupID=", field.UserGroupID, " AND FieldName='", field.FieldName, "'" })); if (value > 0) { result = FieldAddState.FieldNameExists; } else { if (BizBase.dbo.InsertModel <UserFieldInfo>(field) > 0) { try { string text = field.DataType; if (string.Compare(text, "nvarchar", true) == 0) { object obj = text; text = string.Concat(new object[] { obj, "(", field.DataLength, ")" }); } TableManager.AddTableColumn(dataById.TableName, field.FieldName, text, true, field.DefaultValue); } catch { result = FieldAddState.CreateColumnError; return(result); } } CacheUtils.Del("JsonLeeCMS_CacheForGetUserGroup"); result = FieldAddState.Success; } } return(result); }
public static bool Delete(int fieldID) { UserFieldInfo dataById = UserField.GetDataById(fieldID); UserGroupInfo dataById2 = UserGroup.GetDataById(dataById.UserGroupID); if (BizBase.dbo.DeleteModel <UserFieldInfo>(dataById)) { TableManager.DropTableColumn(dataById2.TableName, dataById.FieldName); } CacheUtils.Del("JsonLeeCMS_CacheForGetUserGroup"); return(true); }
public virtual void SaveToDatabase() { if (this.m_saveToDb) { using (PlayerBussiness playerBussiness = new PlayerBussiness()) { object @lock; Monitor.Enter(@lock = this.m_lock); try { if (this.m_farm != null && this.m_farm.IsDirty) { if (this.m_farm.ID > 0) { playerBussiness.UpdateFarm(this.m_farm); } else { this.m_farm.ID = 0; playerBussiness.AddFarm(this.m_farm); } } for (int i = 0; i < this.m_fields.Length; i++) { UserFieldInfo userFieldInfo = this.m_fields[i]; if (userFieldInfo != null && userFieldInfo.IsDirty) { if (userFieldInfo.ID > 0) { playerBussiness.UpdateFields(userFieldInfo); } else { playerBussiness.AddFields(userFieldInfo); } } } } finally { Monitor.Exit(@lock); } } } }
public virtual void LoadFromDatabase() { if (this.m_saveToDb) { using (PlayerBussiness playerBussiness = new PlayerBussiness()) { UserFarmInfo singleFarm = playerBussiness.GetSingleFarm(this.m_player.PlayerCharacter.ID); UserFieldInfo[] singleFields = playerBussiness.GetSingleFields(this.m_player.PlayerCharacter.ID); this.loadFarm(singleFarm); UserFieldInfo[] array = singleFields; for (int i = 0; i < array.Length; i++) { UserFieldInfo userFieldInfo = array[i]; this.AddFieldTo(userFieldInfo, userFieldInfo.FieldID, singleFarm.FarmID); } } } }
private System.Collections.Generic.Dictionary <string, UserFieldInfo> GetFieldDicWithValues() { System.Collections.Generic.Dictionary <string, UserFieldInfo> dictionary = new System.Collections.Generic.Dictionary <string, UserFieldInfo>(); foreach (RepeaterItem repeaterItem in this.Repeater1.Items) { FieldControl fieldControl = repeaterItem.FindControl("field") as FieldControl; if (fieldControl != null) { UserFieldInfo dataById = SinGooCMS.BLL.UserField.GetDataById(fieldControl.FieldId); if (dataById != null) { dataById.Value = fieldControl.Value; dictionary.Add(dataById.FieldName, dataById); } } } return(dictionary); }
public static bool Update(UserFieldInfo field) { UserGroupInfo dataById = UserGroup.GetDataById(field.UserGroupID); UserFieldInfo dataById2 = UserField.GetDataById(field.AutoID); bool result; if (BizBase.dbo.UpdateModel <UserFieldInfo>(field)) { if (!dataById2.IsSystem) { try { string text = field.DataType; if (string.Compare(text, "nvarchar", true) == 0) { object obj = text; text = string.Concat(new object[] { obj, "(", field.DataLength, ")" }); } TableManager.AlterTableColumn(dataById.TableName, dataById2.FieldName, field.FieldName, text, true, field.DefaultValue); } catch (Exception ex) { throw ex; } } CacheUtils.Del("JsonLeeCMS_CacheForGetUserGroup"); result = true; } else { result = false; } return(result); }
public virtual void EnterFriendFarm(int userId) { this.ClearFarm(); base.ClearFields(); GamePlayer playerById = WorldMgr.GetPlayerById(userId); UserFarmInfo userFarmInfo; UserFieldInfo[] array; if (playerById == null) { using (PlayerBussiness playerBussiness = new PlayerBussiness()) { userFarmInfo = playerBussiness.GetSingleFarm(userId); array = playerBussiness.GetSingleFields(userId); goto IL_66; } } userFarmInfo = playerById.Farm.CurrentFarm; array = playerById.Farm.CurrentFields; playerById.ViFarmsAdd(this.m_player.PlayerCharacter.ID); IL_66: if (userFarmInfo == null) { userFarmInfo = this.CreateFarmForNulll(userId); array = this.CreateFieldsForNull(userId); } this.m_farmstatus = this.m_player.PlayerCharacter.ID; this.loadFarm(userFarmInfo); UserFieldInfo[] array2 = array; for (int i = 0; i < array2.Length; i++) { UserFieldInfo userFieldInfo = array2[i]; this.AddFieldTo(userFieldInfo, userFieldInfo.FieldID, userFarmInfo.FarmID); } if (this.AccelerateTimeFields()) { this.m_player.Out.SendEnterFarm(this.m_player.PlayerCharacter, this.GetFarm(), this.GetFields()); } }
public void FromEntityToEntityRoundTrip_ShouldEndUpWithIdenticalEntities() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange IntegerFieldInfo integerFieldInfo = new IntegerFieldInfo( "TestInternalNameInteger", new Guid("{12E262D0-C7C4-4671-A266-064CDBD3905A}"), "NameKeyInt", "DescriptionKeyInt", "GroupKey"); NumberFieldInfo numberFieldInfo = new NumberFieldInfo( "TestInternalNameNumber", new Guid("{5DD4EE0F-8498-4033-97D0-317A24988786}"), "NameKeyNumber", "DescriptionKeyNumber", "GroupKey"); CurrencyFieldInfo currencyFieldInfo = new CurrencyFieldInfo( "TestInternalNameCurrency", new Guid("{9E9963F6-1EE6-46FB-9599-783BBF4D6249}"), "NameKeyCurrency", "DescriptionKeyCurrency", "GroupKey"); BooleanFieldInfo boolFieldInfoBasic = new BooleanFieldInfo( "TestInternalNameBool", new Guid("{F556AB6B-9E51-43E2-99C9-4A4E551A4BEF}"), "NameKeyBool", "DescriptionKeyBool", "GroupKey"); BooleanFieldInfo boolFieldInfoDefaultTrue = new BooleanFieldInfo( "TestInternalNameBoolTrue", new Guid("{0D0289AD-C5FB-495B-96C6-48CC46737D08}"), "NameKeyBoolTrue", "DescriptionKeyBoolTrue", "GroupKey") { DefaultValue = true }; BooleanFieldInfo boolFieldInfoDefaultFalse = new BooleanFieldInfo( "TestInternalNameBoolFalse", new Guid("{628181BD-9B0B-4B7E-934F-1CF1796EA4E4}"), "NameKeyBoolFalse", "DescriptionKeyBoolFalse", "GroupKey") { DefaultValue = false }; DateTimeFieldInfo dateTimeFieldInfoFormula = new DateTimeFieldInfo( "TestInternalNameDateFormula", new Guid("{D23EAD73-9E18-46DB-A426-41B2D47F696C}"), "NameKeyDateTimeFormula", "DescriptionKeyDateTimeFormula", "GroupKey") { DefaultFormula = "=[Today]" }; DateTimeFieldInfo dateTimeFieldInfo = new DateTimeFieldInfo( "TestInternalNameDateDefault", new Guid("{016BF8D9-CEDC-4BF4-BA21-AC6A8F174AD5}"), "NameKeyDateTimeDefault", "DescriptionKeyDateTimeDefault", "GroupKey"); TextFieldInfo textFieldInfo = new TextFieldInfo( "TestInternalNameText", new Guid("{0C58B4A1-B360-47FE-84F7-4D8F58AE80F6}"), "NameKey", "DescriptionKey", "GroupKey"); NoteFieldInfo noteFieldInfo = new NoteFieldInfo( "TestInternalNameNote", new Guid("{E315BB24-19C3-4F2E-AABC-9DE5EFC3D5C2}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey"); HtmlFieldInfo htmlFieldInfo = new HtmlFieldInfo( "TestInternalNameHtml", new Guid("{D16958E7-CF9A-4C38-A8BB-99FC03BFD913}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey"); ImageFieldInfo imageFieldInfo = new ImageFieldInfo( "TestInternalNameImage", new Guid("{6C5B9E77-B621-43AA-BFBF-B333093EFCAE}"), "NameKeyImage", "DescriptionKeyImage", "GroupKey"); UrlFieldInfo urlFieldInfo = new UrlFieldInfo( "TestInternalNameUrl", new Guid("{208F904C-5A1C-4E22-9A79-70B294FABFDA}"), "NameKeyUrl", "DescriptionKeyUrl", "GroupKey"); UrlFieldInfo urlFieldInfoImage = new UrlFieldInfo( "TestInternalNameUrlImg", new Guid("{96D22CFF-5B40-4675-B632-28567792E11B}"), "NameKeyUrlImg", "DescriptionKeyUrlImg", "GroupKey") { Format = UrlFieldFormat.Image }; LookupFieldInfo lookupFieldInfo = new LookupFieldInfo( "TestInternalNameLookup", new Guid("{62F8127C-4A8C-4217-8BD8-C6712753AFCE}"), "NameKey", "DescriptionKey", "GroupKey"); LookupFieldInfo lookupFieldInfoAlt = new LookupFieldInfo( "TestInternalNameLookupAlt", new Guid("{1F05DFFA-6396-4AEF-AD23-72217206D35E}"), "NameKey", "DescriptionKey", "GroupKey") { ShowField = "ID" }; LookupMultiFieldInfo lookupMultiFieldInfo = new LookupMultiFieldInfo( "TestInternalNameLookupM", new Guid("{2C9D4C0E-21EB-4742-8C6C-4C30DCD08A05}"), "NameKeyMulti", "DescriptionKeyMulti", "GroupKey"); var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserDomainName + "\\" + Environment.UserName); var ensuredUser2 = testScope.SiteCollection.RootWeb.EnsureUser("OFFICE\\maxime.boissonneault"); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{5B74DD50-0D2D-4D24-95AF-0C4B8AA3F68A}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey"); UserMultiFieldInfo userMultiFieldInfo = new UserMultiFieldInfo( "TestInternalNameUserMulti", new Guid("{8C662588-D54E-4905-B232-856C2239B036}"), "NameKeyUserMulti", "DescriptionKeyUserMulti", "GroupKey"); MediaFieldInfo mediaFieldInfo = new MediaFieldInfo( "TestInternalNameMedia", new Guid("{A2F070FE-FE33-44FC-9FDF-D18E74ED4D67}"), "NameKeyMedia", "DescriptionKeyMEdia", "GroupKey"); var testTermSet = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); // keep Ids random because, if this test fails midway, the term // set will not be cleaned up and upon next test run we will // run into a term set and term ID conflicts. var levelOneTermA = new TermInfo(Guid.NewGuid(), "Term A", testTermSet); var levelOneTermB = new TermInfo(Guid.NewGuid(), "Term B", testTermSet); var levelTwoTermAA = new TermInfo(Guid.NewGuid(), "Term A-A", testTermSet); var levelTwoTermAB = new TermInfo(Guid.NewGuid(), "Term A-B", testTermSet); TaxonomySession session = new TaxonomySession(testScope.SiteCollection); TermStore defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; Group defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); TermSet newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSet.Label, testTermSet.Id); Term createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); Term createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); Term createdTermAA = createdTermA.CreateTerm(levelTwoTermAA.Label, Language.English.Culture.LCID, levelTwoTermAA.Id); Term createdTermAB = createdTermA.CreateTerm(levelTwoTermAB.Label, Language.English.Culture.LCID, levelTwoTermAB.Id); defaultSiteCollectionTermStore.CommitAll(); TaxonomyFieldInfo taxoFieldInfo = new TaxonomyFieldInfo( "TestInternalNameTaxo", new Guid("{18CC105F-16C9-43E2-9933-37F98452C038}"), "NameKey", "DescriptionKey", "GroupKey") { TermStoreMapping = new TaxonomyContext(testTermSet) // choices limited to all terms in test term set }; TaxonomyMultiFieldInfo taxoMultiFieldInfo = new TaxonomyMultiFieldInfo( "TestInternalNameTaxoMulti", new Guid("{2F49D362-B014-41BB-9959-1000C9A7FFA0}"), "NameKeyMulti", "DescriptionKey", "GroupKey") { TermStoreMapping = new TaxonomyContext(levelOneTermA) // choices limited to children of a specific term, instead of having full term set choices }; var fieldsToEnsure = new List<BaseFieldInfo>() { integerFieldInfo, numberFieldInfo, currencyFieldInfo, boolFieldInfoBasic, boolFieldInfoDefaultTrue, boolFieldInfoDefaultFalse, dateTimeFieldInfoFormula, dateTimeFieldInfo, textFieldInfo, noteFieldInfo, htmlFieldInfo, imageFieldInfo, urlFieldInfo, urlFieldInfoImage, lookupFieldInfo, lookupFieldInfoAlt, lookupMultiFieldInfo, userFieldInfo, userMultiFieldInfo, mediaFieldInfo, taxoFieldInfo, taxoMultiFieldInfo }; ListInfo lookupListInfo = new ListInfo("sometestlistpathlookup", "DynamiteTestListNameKeyLookup", "DynamiteTestListDescriptionKeyLookup"); ListInfo listInfo = new ListInfo("sometestlistpath", "DynamiteTestListNameKey", "DynamiteTestListDescriptionKey") { FieldDefinitions = fieldsToEnsure }; // Note how we need to specify SPSite for injection context - ISharePointEntityBinder's implementation // is lifetime-scoped to InstancePerSite. using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope(testScope.SiteCollection)) { var listHelper = injectionScope.Resolve<IListHelper>(); // Lookup field ListId setup SPList lookupList = listHelper.EnsureList(testScope.SiteCollection.RootWeb, lookupListInfo); lookupFieldInfo.ListId = lookupList.ID; lookupFieldInfoAlt.ListId = lookupList.ID; lookupMultiFieldInfo.ListId = lookupList.ID; // Create the looked-up items var lookupItem1 = lookupList.Items.Add(); lookupItem1["Title"] = "Test Item 1"; lookupItem1.Update(); var lookupItem2 = lookupList.Items.Add(); lookupItem2["Title"] = "Test Item 2"; lookupItem2.Update(); // Create the first test list SPList list = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo); // Initialize the entity object with all the property values we want to apply on the new list item var entityBinder = injectionScope.Resolve<ISharePointEntityBinder>(); var entity = new TestItemEntityWithLookups() { Title = "Test entity", IntegerProperty = 555, DoubleProperty = 5.5, CurrencyProperty = 500.95, BoolProperty = true, BoolDefaultTrueProperty = false, BoolDefaultFalseProperty = true, DateTimeFormulaProperty = new DateTime(2005, 10, 21), DateTimeProperty = new DateTime(2005, 10, 21), TextProperty = "Text value", NoteProperty = "Note value", HtmlProperty = "<p class=\"some-css-class\">HTML value</p>", ImageProperty = new ImageValue() { Hyperlink = "http://github.com/GSoft-SharePoint/", ImageUrl = "/_layouts/15/MyFolder/MyImage.png" }, UrlProperty = new UrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" }, UrlImageProperty = new UrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" }, LookupProperty = new LookupValue(1, "Test Item 1"), LookupAltProperty = new LookupValue(2, "2"), LookupMultiProperty = new LookupValueCollection() { new LookupValue(1, "Test Item 1"), new LookupValue(2, "Test Item 2") }, UserProperty = new UserValue(ensuredUser1), UserMultiProperty = new UserValueCollection() { new UserValue(ensuredUser1), new UserValue(ensuredUser2) }, MediaProperty = new MediaValue() { Title = "Some media file title", Url = "/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf", IsAutoPlay = true, IsLoop = true, PreviewImageUrl = "/_layouts/15/Images/logo.png" }, TaxonomyProperty = new TaxonomyValue(createdTermB), TaxonomyMultiProperty = new TaxonomyValueCollection( new List<TaxonomyValue>() { new TaxonomyValue(createdTermAA), new TaxonomyValue(createdTermAB) }) }; // Act // Create the list item and bind the Entity's values to it var itemOnList = list.AddItem(); entityBinder.FromEntity<TestItemEntityWithLookups>(entity, itemOnList); itemOnList.Update(); // Then use the list item as data source for a brand new entity var copyEntity = entityBinder.Get<TestItemEntityWithLookups>(itemOnList); // Assert // #1: validate ListItem field values on the mapped item object Assert.AreEqual(entity.Title, copyEntity.Title); Assert.AreEqual(entity.IntegerProperty, copyEntity.IntegerProperty); Assert.AreEqual(entity.DoubleProperty, copyEntity.DoubleProperty); Assert.AreEqual(entity.CurrencyProperty, copyEntity.CurrencyProperty); Assert.AreEqual(entity.BoolProperty, copyEntity.BoolProperty); Assert.AreEqual(entity.BoolDefaultTrueProperty, copyEntity.BoolDefaultTrueProperty); Assert.AreEqual(entity.BoolDefaultFalseProperty, copyEntity.BoolDefaultFalseProperty); Assert.AreEqual(entity.DateTimeFormulaProperty, copyEntity.DateTimeFormulaProperty); Assert.AreEqual(entity.DateTimeProperty, copyEntity.DateTimeProperty); Assert.AreEqual(entity.TextProperty, copyEntity.TextProperty); Assert.AreEqual(entity.NoteProperty, copyEntity.NoteProperty); Assert.AreEqual(entity.HtmlProperty, copyEntity.HtmlProperty); Assert.AreEqual(entity.ImageProperty.ImageUrl, copyEntity.ImageProperty.ImageUrl); Assert.AreEqual(entity.ImageProperty.Hyperlink, copyEntity.ImageProperty.Hyperlink); Assert.AreEqual(entity.UrlProperty.Url, copyEntity.UrlProperty.Url); Assert.AreEqual(entity.UrlProperty.Description, copyEntity.UrlProperty.Description); Assert.AreEqual(entity.UrlImageProperty.Url, copyEntity.UrlImageProperty.Url); Assert.AreEqual(entity.UrlImageProperty.Description, copyEntity.UrlImageProperty.Description); Assert.AreEqual(entity.LookupProperty.Id, copyEntity.LookupProperty.Id); Assert.AreEqual(entity.LookupProperty.Value, copyEntity.LookupProperty.Value); Assert.AreEqual(entity.LookupAltProperty.Id, copyEntity.LookupAltProperty.Id); Assert.AreEqual(entity.LookupAltProperty.Value, copyEntity.LookupAltProperty.Value); Assert.AreEqual(entity.LookupMultiProperty[0].Id, copyEntity.LookupMultiProperty[0].Id); Assert.AreEqual(entity.LookupMultiProperty[0].Value, copyEntity.LookupMultiProperty[0].Value); Assert.AreEqual(entity.LookupMultiProperty[1].Id, copyEntity.LookupMultiProperty[1].Id); Assert.AreEqual(entity.LookupMultiProperty[1].Value, copyEntity.LookupMultiProperty[1].Value); Assert.AreEqual(entity.UserProperty.Id, copyEntity.UserProperty.Id); Assert.AreEqual(entity.UserProperty.DisplayName, copyEntity.UserProperty.DisplayName); Assert.AreEqual(entity.UserMultiProperty[0].Id, copyEntity.UserMultiProperty[0].Id); Assert.AreEqual(entity.UserMultiProperty[0].DisplayName, copyEntity.UserMultiProperty[0].DisplayName); Assert.AreEqual(entity.UserMultiProperty[1].Id, copyEntity.UserMultiProperty[1].Id); Assert.AreEqual(entity.UserMultiProperty[1].DisplayName, copyEntity.UserMultiProperty[1].DisplayName); Assert.AreEqual(entity.MediaProperty.Title, copyEntity.MediaProperty.Title); Assert.AreEqual(entity.MediaProperty.Url, copyEntity.MediaProperty.Url); Assert.AreEqual(entity.TaxonomyProperty.Id, copyEntity.TaxonomyProperty.Id); Assert.AreEqual(entity.TaxonomyProperty.Label, copyEntity.TaxonomyProperty.Label); Assert.AreEqual(entity.TaxonomyMultiProperty[0].Id, copyEntity.TaxonomyMultiProperty[0].Id); Assert.AreEqual(entity.TaxonomyMultiProperty[0].Label, copyEntity.TaxonomyMultiProperty[0].Label); Assert.AreEqual(entity.TaxonomyMultiProperty[1].Id, copyEntity.TaxonomyMultiProperty[1].Id); Assert.AreEqual(entity.TaxonomyMultiProperty[1].Label, copyEntity.TaxonomyMultiProperty[1].Label); } } }
public GSPacketIn SendKillCropField(PlayerInfo Player, UserFieldInfo field) { throw new NotImplementedException(); }
public void WriteValueToListItem_GivenUserFieldFieldInfo_ShouldUseUserValueWriter() { using (ShimsContext.Create()) { // Arrange var correctWriterWasUsed = false; var fieldInfo = new UserFieldInfo("InternalName", Guid.NewGuid(), string.Empty, string.Empty, string.Empty); ShimUserValueWriter.AllInstances.WriteValueToListItemSPListItemFieldValueInfo = (inst, listItem, fieldValueInfo) => { correctWriterWasUsed = true; }; var fakeListItem = new ShimSPListItem().Instance; IFieldValueWriter writer; using (var scope = UnitTestServiceLocator.BeginLifetimeScope()) { writer = scope.Resolve<IFieldValueWriter>(); } // Act writer.WriteValueToListItem(fakeListItem, new FieldValueInfo(fieldInfo, null)); // Assert Assert.IsTrue(correctWriterWasUsed, "The UserValueWriter should have been used for the UserFieldFieldInfo type."); } }
public bool AddField(UserFieldInfo item) { return(this.AddField(item, this.m_beginSlot)); }
public void EnsureFolderHierarchy_WhenAttemptingToSetUserFolderDefaultValueInDocLib_ShouldFailWithNotSupportedException() { using (var testScope = SiteTestScope.BlankSite()) { var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserDomainName + "\\" + Environment.UserName); var ensuredUser2 = testScope.SiteCollection.RootWeb.EnsureUser("OFFICE\\maxime.boissonneault"); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{5B74DD50-0D2D-4D24-95AF-0C4B8AA3F68A}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey"); UserMultiFieldInfo userMultiFieldInfo = new UserMultiFieldInfo( "TestInternalNameUserMulti", new Guid("{8C662588-D54E-4905-B232-856C2239B036}"), "NameKeyUserMulti", "DescriptionKeyUserMulti", "GroupKey"); ListInfo listInfo = new ListInfo("sometestlistpath", "DynamiteTestListNameKey", "DynamiteTestListDescriptionKey") { ListTemplateInfo = BuiltInListTemplates.DocumentLibrary, FieldDefinitions = new List<BaseFieldInfo>() { userFieldInfo, userMultiFieldInfo } }; var folderInfoLvl2 = new FolderInfo("somelevel2path") { }; var rootFolderInfo = new FolderInfo("somepath") { Subfolders = new List<FolderInfo>() { folderInfoLvl2 } }; using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { var listHelper = injectionScope.Resolve<IListHelper>(); // Create the test doc lib SPList list = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo); var folderHelper = injectionScope.Resolve<IFolderHelper>(); // Act 1: User field - this should throw NotSupportedException folderInfoLvl2.FieldDefaultValues = new List<FieldValueInfo>() { new FieldValueInfo(userFieldInfo, new UserValue(ensuredUser1)) }; try { var ensuredRootFolder = folderHelper.EnsureFolderHierarchy(list, rootFolderInfo); Assert.Fail("Should've thrown NotSupportedException"); } catch (NotSupportedException) { } // Act 2: User Multi field - this should throw NotSupportedException folderInfoLvl2.FieldDefaultValues = new List<FieldValueInfo>() { new FieldValueInfo(userMultiFieldInfo, new UserValueCollection() { new UserValue(ensuredUser1), new UserValue(ensuredUser2) }) }; try { var ensuredRootFolder = folderHelper.EnsureFolderHierarchy(list, rootFolderInfo); Assert.Fail("Should've thrown NotSupportedException"); } catch (NotSupportedException) { } } } }
public bool UpdateFields(UserFieldInfo info) { bool flag = false; try { flag = this.db.RunProcedure("SP_Users_Fields_Update", new SqlParameter[17] { new SqlParameter("@ID", (object) info.ID), new SqlParameter("@FarmID", (object) info.FarmID), new SqlParameter("@FieldID", (object) info.FieldID), new SqlParameter("@SeedID", (object) info.SeedID), new SqlParameter("@PlantTime", (object) info.PlantTime.ToString()), new SqlParameter("@AccelerateTime", (object) info.AccelerateTime), new SqlParameter("@FieldValidDate", (object) info.FieldValidDate), new SqlParameter("@PayTime", (object) info.PayTime.ToString()), new SqlParameter("@GainCount", (object) info.GainCount), new SqlParameter("@AutoSeedID", (object) info.AutoSeedID), new SqlParameter("@AutoFertilizerID", (object) info.AutoFertilizerID), new SqlParameter("@AutoSeedIDCount", (object) info.AutoSeedIDCount), new SqlParameter("@AutoFertilizerCount", (object) info.AutoFertilizerCount), new SqlParameter("@isAutomatic", (object) (int) (info.isAutomatic ? 1 : 0)), new SqlParameter("@AutomaticTime", (object) info.AutomaticTime.ToString()), new SqlParameter("@IsExit", (object) (int) (info.IsExit ? 1 : 0)), new SqlParameter("@payFieldTime", (object) info.payFieldTime) }); } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"Init", ex); } return flag; }
public bool AddFields(UserFieldInfo item) { bool flag = false; try { SqlParameter[] SqlParameters = new SqlParameter[17] { new SqlParameter("@FarmID", (object) item.FarmID), new SqlParameter("@FieldID", (object) item.FieldID), new SqlParameter("@SeedID", (object) item.SeedID), new SqlParameter("@PlantTime", (object) item.PlantTime.ToString()), new SqlParameter("@AccelerateTime", (object) item.AccelerateTime), new SqlParameter("@FieldValidDate", (object) item.FieldValidDate), new SqlParameter("@PayTime", (object) item.PayTime.ToString()), new SqlParameter("@GainCount", (object) item.GainCount), new SqlParameter("@AutoSeedID", (object) item.AutoSeedID), new SqlParameter("@AutoFertilizerID", (object) item.AutoFertilizerID), new SqlParameter("@AutoSeedIDCount", (object) item.AutoSeedIDCount), new SqlParameter("@AutoFertilizerCount", (object) item.AutoFertilizerCount), new SqlParameter("@isAutomatic", (object) (int) (item.isAutomatic ? 1 : 0)), new SqlParameter("@AutomaticTime", (object) item.AutomaticTime.ToString()), new SqlParameter("@IsExit", (object) (int) (item.IsExit ? 1 : 0)), new SqlParameter("@payFieldTime", (object) item.payFieldTime), new SqlParameter("@ID", (object) item.ID) }; SqlParameters[16].Direction = ParameterDirection.Output; flag = this.db.RunProcedure("SP_Users_Fields_Add", SqlParameters); item.ID = (int)SqlParameters[16].Value; item.IsDirty = false; } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"Init", ex); } return flag; }
private void InitForModify() { UserFieldInfo dataById = SinGooCMS.BLL.UserField.GetDataById(base.OpID); if (dataById != null) { this.TextBox2.Text = dataById.FieldName; this.TextBox2.Enabled = false; this.TextBox3.Text = dataById.Alias; this.TextBox4.Text = dataById.Tip; ListItem listItem = this.DropDownList5.Items.FindByValue(((FieldType)dataById.FieldType).ToString()); if (listItem != null) { listItem.Selected = true; } if (dataById.IsSystem) { this.DropDownList5.Enabled = false; } switch (dataById.FieldType) { case 0: this.ShowGroup = "group1"; break; case 1: this.ShowGroup = "group2"; break; case 2: this.ShowGroup = "group7"; break; case 4: case 5: case 6: this.ShowGroup = "group3"; break; case 7: this.ShowGroup = "group6"; break; case 8: case 10: this.ShowGroup = "group4"; break; case 9: case 11: this.ShowGroup = "group5"; break; } this.TextBox6.Text = dataById.DefaultValue; this.CheckBox9.Checked = dataById.EnableNull; this.ExtTextBox5.Text = dataById.DataLength.ToString(); if (dataById.IsSystem) { this.ExtTextBox5.Enabled = false; } SinGooCMS.Control.FieldSetting fieldSetting = XmlSerializerUtils.Deserialize <SinGooCMS.Control.FieldSetting>(dataById.Setting); if (fieldSetting != null) { this.ExtTextBox1.Text = fieldSetting.ControlWidth.ToString(); this.ExtTextBox2.Text = fieldSetting.ControlHeight.ToString(); ListItem listItem2 = this.ExtRadioButtonList3.Items.FindByValue(fieldSetting.TextMode); if (listItem2 != null) { listItem2.Selected = true; } this.ExtTextBox4.Text = fieldSetting.DataFormat; ListItem listItem3 = this.ExtDropDownList6.Items.FindByValue(fieldSetting.DataFrom); if (listItem3 != null) { listItem3.Selected = true; } string dataFrom = fieldSetting.DataFrom; if (dataFrom != null) { if (!(dataFrom == "Text")) { if (!(dataFrom == "DataDictionary")) { if (!(dataFrom == "SQLQuery")) { if (dataFrom == "AjaxData") { this.ExtTextBox11.Text = fieldSetting.DataSource; this.DataSource = "AjaxData"; } } else { this.ExtTextBox9.Text = fieldSetting.DataSource; this.DataSource = "SQLQuery"; } } else { this.ExtTextBox8.Text = fieldSetting.DataSource; this.DataSource = "DataDictionary"; } } else { this.ExtTextBox7.Text = fieldSetting.DataSource; this.DataSource = "Text"; } } } } }
public void ToEntity_WhenMappingFromListItem_AndItemPropertiesAreFilledWithValues_ShouldMapEntityWithAllItemValues() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange IntegerFieldInfo integerFieldInfo = new IntegerFieldInfo( "TestInternalNameInteger", new Guid("{12E262D0-C7C4-4671-A266-064CDBD3905A}"), "NameKeyInt", "DescriptionKeyInt", "GroupKey"); NumberFieldInfo numberFieldInfo = new NumberFieldInfo( "TestInternalNameNumber", new Guid("{5DD4EE0F-8498-4033-97D0-317A24988786}"), "NameKeyNumber", "DescriptionKeyNumber", "GroupKey"); CurrencyFieldInfo currencyFieldInfo = new CurrencyFieldInfo( "TestInternalNameCurrency", new Guid("{9E9963F6-1EE6-46FB-9599-783BBF4D6249}"), "NameKeyCurrency", "DescriptionKeyCurrency", "GroupKey"); BooleanFieldInfo boolFieldInfoBasic = new BooleanFieldInfo( "TestInternalNameBool", new Guid("{F556AB6B-9E51-43E2-99C9-4A4E551A4BEF}"), "NameKeyBool", "DescriptionKeyBool", "GroupKey"); BooleanFieldInfo boolFieldInfoDefaultTrue = new BooleanFieldInfo( "TestInternalNameBoolTrue", new Guid("{0D0289AD-C5FB-495B-96C6-48CC46737D08}"), "NameKeyBoolTrue", "DescriptionKeyBoolTrue", "GroupKey") { DefaultValue = true }; BooleanFieldInfo boolFieldInfoDefaultFalse = new BooleanFieldInfo( "TestInternalNameBoolFalse", new Guid("{628181BD-9B0B-4B7E-934F-1CF1796EA4E4}"), "NameKeyBoolFalse", "DescriptionKeyBoolFalse", "GroupKey") { DefaultValue = false }; DateTimeFieldInfo dateTimeFieldInfoFormula = new DateTimeFieldInfo( "TestInternalNameDateFormula", new Guid("{D23EAD73-9E18-46DB-A426-41B2D47F696C}"), "NameKeyDateTimeFormula", "DescriptionKeyDateTimeFormula", "GroupKey") { DefaultFormula = "=[Today]" }; DateTimeFieldInfo dateTimeFieldInfoDefault = new DateTimeFieldInfo( "TestInternalNameDateDefault", new Guid("{016BF8D9-CEDC-4BF4-BA21-AC6A8F174AD5}"), "NameKeyDateTimeDefault", "DescriptionKeyDateTimeDefault", "GroupKey"); TextFieldInfo textFieldInfo = new TextFieldInfo( "TestInternalNameText", new Guid("{0C58B4A1-B360-47FE-84F7-4D8F58AE80F6}"), "NameKey", "DescriptionKey", "GroupKey"); NoteFieldInfo noteFieldInfo = new NoteFieldInfo( "TestInternalNameNote", new Guid("{E315BB24-19C3-4F2E-AABC-9DE5EFC3D5C2}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey"); HtmlFieldInfo htmlFieldInfo = new HtmlFieldInfo( "TestInternalNameHtml", new Guid("{D16958E7-CF9A-4C38-A8BB-99FC03BFD913}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey"); ImageFieldInfo imageFieldInfo = new ImageFieldInfo( "TestInternalNameImage", new Guid("{6C5B9E77-B621-43AA-BFBF-B333093EFCAE}"), "NameKeyImage", "DescriptionKeyImage", "GroupKey"); UrlFieldInfo urlFieldInfo = new UrlFieldInfo( "TestInternalNameUrl", new Guid("{208F904C-5A1C-4E22-9A79-70B294FABFDA}"), "NameKeyUrl", "DescriptionKeyUrl", "GroupKey"); UrlFieldInfo urlFieldInfoImage = new UrlFieldInfo( "TestInternalNameUrlImg", new Guid("{96D22CFF-5B40-4675-B632-28567792E11B}"), "NameKeyUrlImg", "DescriptionKeyUrlImg", "GroupKey") { Format = UrlFieldFormat.Image }; LookupFieldInfo lookupFieldInfo = new LookupFieldInfo( "TestInternalNameLookup", new Guid("{62F8127C-4A8C-4217-8BD8-C6712753AFCE}"), "NameKey", "DescriptionKey", "GroupKey"); LookupFieldInfo lookupFieldInfoAlt = new LookupFieldInfo( "TestInternalNameLookupAlt", new Guid("{1F05DFFA-6396-4AEF-AD23-72217206D35E}"), "NameKey", "DescriptionKey", "GroupKey") { ShowField = "ID" }; LookupMultiFieldInfo lookupMultiFieldInfo = new LookupMultiFieldInfo( "TestInternalNameLookupM", new Guid("{2C9D4C0E-21EB-4742-8C6C-4C30DCD08A05}"), "NameKeyMulti", "DescriptionKeyMulti", "GroupKey"); var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserDomainName + "\\" + Environment.UserName); var ensuredUser2 = testScope.SiteCollection.RootWeb.EnsureUser("OFFICE\\maxime.boissonneault"); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{5B74DD50-0D2D-4D24-95AF-0C4B8AA3F68A}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey"); UserMultiFieldInfo userMultiFieldInfo = new UserMultiFieldInfo( "TestInternalNameUserMulti", new Guid("{8C662588-D54E-4905-B232-856C2239B036}"), "NameKeyUserMulti", "DescriptionKeyUserMulti", "GroupKey"); MediaFieldInfo mediaFieldInfo = new MediaFieldInfo( "TestInternalNameMedia", new Guid("{A2F070FE-FE33-44FC-9FDF-D18E74ED4D67}"), "NameKeyMedia", "DescriptionKeyMEdia", "GroupKey"); var testTermSet = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); // keep Ids random because, if this test fails midway, the term // set will not be cleaned up and upon next test run we will // run into a term set and term ID conflicts. var levelOneTermA = new TermInfo(Guid.NewGuid(), "Term A", testTermSet); var levelOneTermB = new TermInfo(Guid.NewGuid(), "Term B", testTermSet); var levelTwoTermAA = new TermInfo(Guid.NewGuid(), "Term A-A", testTermSet); var levelTwoTermAB = new TermInfo(Guid.NewGuid(), "Term A-B", testTermSet); TaxonomySession session = new TaxonomySession(testScope.SiteCollection); TermStore defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; Group defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); TermSet newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSet.Label, testTermSet.Id); Term createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); Term createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); Term createdTermAA = createdTermA.CreateTerm(levelTwoTermAA.Label, Language.English.Culture.LCID, levelTwoTermAA.Id); Term createdTermAB = createdTermA.CreateTerm(levelTwoTermAB.Label, Language.English.Culture.LCID, levelTwoTermAB.Id); defaultSiteCollectionTermStore.CommitAll(); TaxonomyFieldInfo taxoFieldInfo = new TaxonomyFieldInfo( "TestInternalNameTaxo", new Guid("{18CC105F-16C9-43E2-9933-37F98452C038}"), "NameKey", "DescriptionKey", "GroupKey") { TermStoreMapping = new TaxonomyContext(testTermSet) // choices limited to all terms in test term set }; TaxonomyMultiFieldInfo taxoMultiFieldInfo = new TaxonomyMultiFieldInfo( "TestInternalNameTaxoMulti", new Guid("{2F49D362-B014-41BB-9959-1000C9A7FFA0}"), "NameKeyMulti", "DescriptionKey", "GroupKey") { TermStoreMapping = new TaxonomyContext(levelOneTermA) // choices limited to children of a specific term, instead of having full term set choices }; var fieldsToEnsure = new List<BaseFieldInfo>() { integerFieldInfo, numberFieldInfo, currencyFieldInfo, boolFieldInfoBasic, boolFieldInfoDefaultTrue, boolFieldInfoDefaultFalse, dateTimeFieldInfoFormula, dateTimeFieldInfoDefault, textFieldInfo, noteFieldInfo, htmlFieldInfo, imageFieldInfo, urlFieldInfo, urlFieldInfoImage, lookupFieldInfo, lookupFieldInfoAlt, lookupMultiFieldInfo, userFieldInfo, userMultiFieldInfo, mediaFieldInfo, taxoFieldInfo, taxoMultiFieldInfo }; ListInfo lookupListInfo = new ListInfo("sometestlistpathlookup", "DynamiteTestListNameKeyLookup", "DynamiteTestListDescriptionKeyLookup"); ListInfo listInfo = new ListInfo("sometestlistpath", "DynamiteTestListNameKey", "DynamiteTestListDescriptionKey") { FieldDefinitions = fieldsToEnsure }; // Note how we need to specify SPSite for injection context - ISharePointEntityBinder's implementation // is lifetime-scoped to InstancePerSite. using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope(testScope.SiteCollection)) { var listHelper = injectionScope.Resolve<IListHelper>(); // Lookup field ListId setup SPList lookupList = listHelper.EnsureList(testScope.SiteCollection.RootWeb, lookupListInfo); lookupFieldInfo.ListId = lookupList.ID; lookupFieldInfoAlt.ListId = lookupList.ID; lookupMultiFieldInfo.ListId = lookupList.ID; // Create the looked-up items var lookupItem1 = lookupList.Items.Add(); lookupItem1["Title"] = "Test Item 1"; lookupItem1.Update(); var lookupItem2 = lookupList.Items.Add(); lookupItem2["Title"] = "Test Item 2"; lookupItem2.Update(); // Create the first test list SPList list = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo); list.EnableVersioning = true; list.Update(); // Create item on list var itemOnList = list.AddItem(); // Update with the field values through the SharePoint API itemOnList["Title"] = "Item under test"; itemOnList["TestInternalNameInteger"] = 555; itemOnList["TestInternalNameNumber"] = 5.5; itemOnList["TestInternalNameCurrency"] = 500.95; itemOnList["TestInternalNameBool"] = true; itemOnList["TestInternalNameBoolTrue"] = false; itemOnList["TestInternalNameBoolFalse"] = true; itemOnList["TestInternalNameDateFormula"] = new DateTime(1977, 7, 7); itemOnList["TestInternalNameDateDefault"] = new DateTime(1977, 7, 7); itemOnList["TestInternalNameText"] = "Text value"; itemOnList["TestInternalNameNote"] = "Note value"; itemOnList["TestInternalNameHtml"] = "<p class=\"some-css-class\">HTML value</p>"; itemOnList["TestInternalNameImage"] = new ImageFieldValue() { Hyperlink = "http://github.com/GSoft-SharePoint/", ImageUrl = "/_layouts/15/MyFolder/MyImage.png" }; itemOnList["TestInternalNameUrl"] = new SPFieldUrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" }; itemOnList["TestInternalNameUrlImg"] = new SPFieldUrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" }; itemOnList["TestInternalNameLookup"] = new SPFieldLookupValue(1, "Test Item 1"); itemOnList["TestInternalNameLookupAlt"] = new SPFieldLookupValue(2, "2"); itemOnList["TestInternalNameLookupM"] = new SPFieldLookupValueCollection() { new SPFieldLookupValue(1, "Test Item 1"), new SPFieldLookupValue(2, "Test Item 2") }; itemOnList["TestInternalNameUser"] = new SPFieldUserValue(testScope.SiteCollection.RootWeb, ensuredUser1.ID, ensuredUser1.Name); itemOnList["TestInternalNameUserMulti"] = new SPFieldUserValueCollection() { new SPFieldUserValue(testScope.SiteCollection.RootWeb, ensuredUser1.ID, ensuredUser1.Name), new SPFieldUserValue(testScope.SiteCollection.RootWeb, ensuredUser2.ID, ensuredUser2.Name) }; itemOnList["TestInternalNameMedia"] = new MediaFieldValue() { Title = "Some media file title", MediaSource = "/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf", AutoPlay = true, Loop = true, PreviewImageSource = "/_layouts/15/Images/logo.png" }; var taxonomyField = (TaxonomyField)itemOnList.Fields.GetFieldByInternalName("TestInternalNameTaxo"); taxonomyField.SetFieldValue(itemOnList, createdTermB); var taxonomyMultiField = (TaxonomyField)itemOnList.Fields.GetFieldByInternalName("TestInternalNameTaxoMulti"); taxonomyMultiField.SetFieldValue(itemOnList, new[] { createdTermAA, createdTermAB }); itemOnList.Update(); var entityBinder = injectionScope.Resolve<ISharePointEntityBinder>(); var entityMappedFromSingleItem = new TestItemEntityWithLookups(); var entityMappedFromItemVersion = new TestItemEntityWithLookups(); // Act // Map from SPListItem entityBinder.ToEntity<TestItemEntityWithLookups>(entityMappedFromSingleItem, itemOnList); // Map from SPListItemVersion entityBinder.ToEntity<TestItemEntityWithLookups>(entityMappedFromItemVersion, itemOnList.Versions[0]); // Map from DataRow/SPListItemCollection var entitiesMappedFromItemCollection = entityBinder.Get<TestItemEntity>(list.Items); // Assert // #1 Validate straight single list item to entity mappings Assert.AreEqual(555, entityMappedFromSingleItem.IntegerProperty); Assert.AreEqual(5.5, entityMappedFromSingleItem.DoubleProperty); Assert.AreEqual(500.95, entityMappedFromSingleItem.CurrencyProperty); Assert.IsTrue(entityMappedFromSingleItem.BoolProperty.Value); Assert.IsFalse(entityMappedFromSingleItem.BoolDefaultTrueProperty); Assert.IsTrue(entityMappedFromSingleItem.BoolDefaultFalseProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entityMappedFromSingleItem.DateTimeFormulaProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entityMappedFromSingleItem.DateTimeProperty); Assert.AreEqual("Text value", entityMappedFromSingleItem.TextProperty); Assert.AreEqual("Note value", entityMappedFromSingleItem.NoteProperty); Assert.AreEqual("<p class=\"some-css-class\">HTML value</p>", entityMappedFromSingleItem.HtmlProperty); Assert.IsNotNull(entityMappedFromSingleItem.ImageProperty); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromSingleItem.ImageProperty.Hyperlink); Assert.AreEqual("/_layouts/15/MyFolder/MyImage.png", entityMappedFromSingleItem.ImageProperty.ImageUrl); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromSingleItem.UrlProperty.Url); Assert.AreEqual("patate!", entityMappedFromSingleItem.UrlProperty.Description); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromSingleItem.UrlImageProperty.Url); Assert.AreEqual("patate!", entityMappedFromSingleItem.UrlProperty.Description); Assert.AreEqual(1, entityMappedFromSingleItem.LookupProperty.Id); Assert.AreEqual("Test Item 1", entityMappedFromSingleItem.LookupProperty.Value); Assert.AreEqual(2, entityMappedFromSingleItem.LookupAltProperty.Id); Assert.AreEqual("2", entityMappedFromSingleItem.LookupAltProperty.Value); // ShowField/LookupField is ID Assert.AreEqual(1, entityMappedFromSingleItem.LookupMultiProperty[0].Id); Assert.AreEqual("Test Item 1", entityMappedFromSingleItem.LookupMultiProperty[0].Value); Assert.AreEqual(2, entityMappedFromSingleItem.LookupMultiProperty[1].Id); Assert.AreEqual("Test Item 2", entityMappedFromSingleItem.LookupMultiProperty[1].Value); Assert.AreEqual(ensuredUser1.Name, entityMappedFromSingleItem.UserProperty.DisplayName); Assert.AreEqual(ensuredUser1.Name, entityMappedFromSingleItem.UserMultiProperty[0].DisplayName); Assert.AreEqual("Maxime Boissonneault", entityMappedFromSingleItem.UserMultiProperty[1].DisplayName); Assert.AreEqual("Some media file title", entityMappedFromSingleItem.MediaProperty.Title); Assert.AreEqual(HttpUtility.UrlDecode("/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf"), entityMappedFromSingleItem.MediaProperty.Url); Assert.IsTrue(entityMappedFromSingleItem.MediaProperty.IsAutoPlay); Assert.IsTrue(entityMappedFromSingleItem.MediaProperty.IsLoop); Assert.AreEqual("/_layouts/15/Images/logo.png", entityMappedFromSingleItem.MediaProperty.PreviewImageUrl); Assert.AreEqual(levelOneTermB.Id, entityMappedFromSingleItem.TaxonomyProperty.Id); Assert.AreEqual(levelOneTermB.Label, entityMappedFromSingleItem.TaxonomyProperty.Label); Assert.AreEqual(levelTwoTermAA.Id, entityMappedFromSingleItem.TaxonomyMultiProperty[0].Id); Assert.AreEqual(levelTwoTermAA.Label, entityMappedFromSingleItem.TaxonomyMultiProperty[0].Label); Assert.AreEqual(levelTwoTermAB.Id, entityMappedFromSingleItem.TaxonomyMultiProperty[1].Id); Assert.AreEqual(levelTwoTermAB.Label, entityMappedFromSingleItem.TaxonomyMultiProperty[1].Label); // #2 Validate list item version mappings Assert.AreEqual(555, entityMappedFromItemVersion.IntegerProperty); Assert.AreEqual(5.5, entityMappedFromItemVersion.DoubleProperty); Assert.AreEqual(500.95, entityMappedFromItemVersion.CurrencyProperty); Assert.IsTrue(entityMappedFromItemVersion.BoolProperty.Value); Assert.IsFalse(entityMappedFromItemVersion.BoolDefaultTrueProperty); Assert.IsTrue(entityMappedFromItemVersion.BoolDefaultFalseProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entityMappedFromItemVersion.DateTimeFormulaProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entityMappedFromItemVersion.DateTimeProperty); Assert.AreEqual("Text value", entityMappedFromItemVersion.TextProperty); Assert.AreEqual("Note value", entityMappedFromItemVersion.NoteProperty); Assert.AreEqual("<p class=\"some-css-class\">HTML value</p>", entityMappedFromItemVersion.HtmlProperty); Assert.IsNotNull(entityMappedFromItemVersion.ImageProperty); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromItemVersion.ImageProperty.Hyperlink); Assert.AreEqual("/_layouts/15/MyFolder/MyImage.png", entityMappedFromItemVersion.ImageProperty.ImageUrl); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromItemVersion.UrlProperty.Url); Assert.AreEqual("patate!", entityMappedFromItemVersion.UrlProperty.Description); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entityMappedFromItemVersion.UrlImageProperty.Url); Assert.AreEqual("patate!", entityMappedFromItemVersion.UrlProperty.Description); Assert.AreEqual(1, entityMappedFromItemVersion.LookupProperty.Id); Assert.AreEqual("Test Item 1", entityMappedFromItemVersion.LookupProperty.Value); Assert.AreEqual(2, entityMappedFromItemVersion.LookupAltProperty.Id); Assert.AreEqual("2", entityMappedFromItemVersion.LookupAltProperty.Value); // ShowField/LookupField is ID Assert.AreEqual(1, entityMappedFromItemVersion.LookupMultiProperty[0].Id); Assert.AreEqual("Test Item 1", entityMappedFromItemVersion.LookupMultiProperty[0].Value); Assert.AreEqual(2, entityMappedFromItemVersion.LookupMultiProperty[1].Id); Assert.AreEqual("Test Item 2", entityMappedFromItemVersion.LookupMultiProperty[1].Value); Assert.AreEqual(ensuredUser1.Name, entityMappedFromItemVersion.UserProperty.DisplayName); Assert.AreEqual(ensuredUser1.Name, entityMappedFromItemVersion.UserMultiProperty[0].DisplayName); Assert.AreEqual("Maxime Boissonneault", entityMappedFromItemVersion.UserMultiProperty[1].DisplayName); Assert.AreEqual("Some media file title", entityMappedFromItemVersion.MediaProperty.Title); Assert.AreEqual(HttpUtility.UrlDecode("/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf"), entityMappedFromItemVersion.MediaProperty.Url); Assert.IsTrue(entityMappedFromItemVersion.MediaProperty.IsAutoPlay); Assert.IsTrue(entityMappedFromItemVersion.MediaProperty.IsLoop); Assert.AreEqual("/_layouts/15/Images/logo.png", entityMappedFromItemVersion.MediaProperty.PreviewImageUrl); Assert.AreEqual(levelOneTermB.Id, entityMappedFromItemVersion.TaxonomyProperty.Id); Assert.AreEqual(levelOneTermB.Label, entityMappedFromItemVersion.TaxonomyProperty.Label); Assert.AreEqual(levelTwoTermAA.Id, entityMappedFromItemVersion.TaxonomyMultiProperty[0].Id); Assert.AreEqual(levelTwoTermAA.Label, entityMappedFromItemVersion.TaxonomyMultiProperty[0].Label); Assert.AreEqual(levelTwoTermAB.Id, entityMappedFromItemVersion.TaxonomyMultiProperty[1].Id); Assert.AreEqual(levelTwoTermAB.Label, entityMappedFromItemVersion.TaxonomyMultiProperty[1].Label); // #3 Validate straight list item collection to entity mappings Assert.AreEqual(555, entitiesMappedFromItemCollection[0].IntegerProperty); Assert.AreEqual(5.5, entitiesMappedFromItemCollection[0].DoubleProperty); Assert.AreEqual(500.95, entitiesMappedFromItemCollection[0].CurrencyProperty); Assert.IsTrue(entitiesMappedFromItemCollection[0].BoolProperty.Value); Assert.IsFalse(entitiesMappedFromItemCollection[0].BoolDefaultTrueProperty); Assert.IsTrue(entitiesMappedFromItemCollection[0].BoolDefaultFalseProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entitiesMappedFromItemCollection[0].DateTimeFormulaProperty); Assert.AreEqual(new DateTime(1977, 7, 7), entitiesMappedFromItemCollection[0].DateTimeProperty); Assert.AreEqual("Text value", entitiesMappedFromItemCollection[0].TextProperty); Assert.AreEqual("Note value", entitiesMappedFromItemCollection[0].NoteProperty); Assert.AreEqual("<p class=\"some-css-class\">HTML value</p>", entitiesMappedFromItemCollection[0].HtmlProperty); Assert.IsNotNull(entitiesMappedFromItemCollection[0].ImageProperty); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entitiesMappedFromItemCollection[0].ImageProperty.Hyperlink); Assert.AreEqual("/_layouts/15/MyFolder/MyImage.png", entitiesMappedFromItemCollection[0].ImageProperty.ImageUrl); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entitiesMappedFromItemCollection[0].UrlProperty.Url); Assert.AreEqual("patate!", entitiesMappedFromItemCollection[0].UrlProperty.Description); Assert.AreEqual("http://github.com/GSoft-SharePoint/", entitiesMappedFromItemCollection[0].UrlImageProperty.Url); Assert.AreEqual("patate!", entitiesMappedFromItemCollection[0].UrlImageProperty.Description); // No lookups or User fields because DataRow formatting screws up lookup values (we lose the lookup IDs) Assert.AreEqual("Some media file title", entitiesMappedFromItemCollection[0].MediaProperty.Title); Assert.AreEqual(HttpUtility.UrlDecode("/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf"), entitiesMappedFromItemCollection[0].MediaProperty.Url); Assert.IsTrue(entitiesMappedFromItemCollection[0].MediaProperty.IsAutoPlay); Assert.IsTrue(entitiesMappedFromItemCollection[0].MediaProperty.IsLoop); Assert.AreEqual("/_layouts/15/Images/logo.png", entitiesMappedFromItemCollection[0].MediaProperty.PreviewImageUrl); Assert.AreEqual(levelOneTermB.Id, entitiesMappedFromItemCollection[0].TaxonomyProperty.Id); Assert.AreEqual(levelOneTermB.Label, entitiesMappedFromItemCollection[0].TaxonomyProperty.Label); Assert.AreEqual(levelTwoTermAA.Id, entitiesMappedFromItemCollection[0].TaxonomyMultiProperty[0].Id); Assert.AreEqual(levelTwoTermAA.Label, entitiesMappedFromItemCollection[0].TaxonomyMultiProperty[0].Label); Assert.AreEqual(levelTwoTermAB.Id, entitiesMappedFromItemCollection[0].TaxonomyMultiProperty[1].Id); Assert.AreEqual(levelTwoTermAB.Label, entitiesMappedFromItemCollection[0].TaxonomyMultiProperty[1].Label); } // Cleanup term set so that we don't pollute the metadata store newTermSet.Delete(); defaultSiteCollectionTermStore.CommitAll(); } }
public void EnsureField_WhenFieldAddedToListWithDefaultValue_NewItemsCreatedOnListShouldHaveDefaultValues() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange IntegerFieldInfo integerFieldInfo = new IntegerFieldInfo( "TestInternalNameInteger", new Guid("{12E262D0-C7C4-4671-A266-064CDBD3905A}"), "NameKeyInt", "DescriptionKeyInt", "GroupKey") { DefaultValue = 555 }; NumberFieldInfo numberFieldInfo = new NumberFieldInfo( "TestInternalNameNumber", new Guid("{5DD4EE0F-8498-4033-97D0-317A24988786}"), "NameKeyNumber", "DescriptionKeyNumber", "GroupKey") { DefaultValue = 5.5 }; CurrencyFieldInfo currencyFieldInfo = new CurrencyFieldInfo( "TestInternalNameCurrency", new Guid("{9E9963F6-1EE6-46FB-9599-783BBF4D6249}"), "NameKeyCurrency", "DescriptionKeyCurrency", "GroupKey") { DefaultValue = 500.95, LocaleId = 3084 // fr-CA }; BooleanFieldInfo boolFieldInfoBasic = new BooleanFieldInfo( "TestInternalNameBool", new Guid("{F556AB6B-9E51-43E2-99C9-4A4E551A4BEF}"), "NameKeyBool", "DescriptionKeyBool", "GroupKey"); BooleanFieldInfo boolFieldInfoDefaultTrue = new BooleanFieldInfo( "TestInternalNameBoolTrue", new Guid("{0D0289AD-C5FB-495B-96C6-48CC46737D08}"), "NameKeyBoolTrue", "DescriptionKeyBoolTrue", "GroupKey") { DefaultValue = true }; BooleanFieldInfo boolFieldInfoDefaultFalse = new BooleanFieldInfo( "TestInternalNameBoolFalse", new Guid("{628181BD-9B0B-4B7E-934F-1CF1796EA4E4}"), "NameKeyBoolFalse", "DescriptionKeyBoolFalse", "GroupKey") { DefaultValue = false }; DateTimeFieldInfo dateTimeFieldInfoFormula = new DateTimeFieldInfo( "TestInternalNameDateFormula", new Guid("{D23EAD73-9E18-46DB-A426-41B2D47F696C}"), "NameKeyDateTimeFormula", "DescriptionKeyDateTimeFormula", "GroupKey") { DefaultFormula = "=[Today]" }; DateTimeFieldInfo dateTimeFieldInfoDefault = new DateTimeFieldInfo( "TestInternalNameDateDefault", new Guid("{016BF8D9-CEDC-4BF4-BA21-AC6A8F174AD5}"), "NameKeyDateTimeDefault", "DescriptionKeyDateTimeDefault", "GroupKey") { DefaultValue = new DateTime(2005, 10, 21) }; TextFieldInfo textFieldInfo = new TextFieldInfo( "TestInternalNameText", new Guid("{0C58B4A1-B360-47FE-84F7-4D8F58AE80F6}"), "NameKey", "DescriptionKey", "GroupKey") { DefaultValue = "Text default value" }; NoteFieldInfo noteFieldInfo = new NoteFieldInfo( "TestInternalNameNote", new Guid("{E315BB24-19C3-4F2E-AABC-9DE5EFC3D5C2}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey") { DefaultValue = "Note default value" }; HtmlFieldInfo htmlFieldInfo = new HtmlFieldInfo( "TestInternalNameHtml", new Guid("{D16958E7-CF9A-4C38-A8BB-99FC03BFD913}"), "NameKeyAlt", "DescriptionKeyAlt", "GroupKey") { DefaultValue = "<p class=\"some-css-class\">HTML default value</p>" }; ImageFieldInfo imageFieldInfo = new ImageFieldInfo( "TestInternalNameImage", new Guid("{6C5B9E77-B621-43AA-BFBF-B333093EFCAE}"), "NameKeyImage", "DescriptionKeyImage", "GroupKey") { DefaultValue = new ImageValue() { Hyperlink = "http://github.com/GSoft-SharePoint/", ImageUrl = "/_layouts/15/MyFolder/MyImage.png" } }; UrlFieldInfo urlFieldInfo = new UrlFieldInfo( "TestInternalNameUrl", new Guid("{208F904C-5A1C-4E22-9A79-70B294FABFDA}"), "NameKeyUrl", "DescriptionKeyUrl", "GroupKey") { DefaultValue = new UrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" } }; UrlFieldInfo urlFieldInfoImage = new UrlFieldInfo( "TestInternalNameUrlImg", new Guid("{96D22CFF-5B40-4675-B632-28567792E11B}"), "NameKeyUrlImg", "DescriptionKeyUrlImg", "GroupKey") { Format = UrlFieldFormat.Image, DefaultValue = new UrlValue() { Url = "http://github.com/GSoft-SharePoint/", Description = "patate!" } }; LookupFieldInfo lookupFieldInfo = new LookupFieldInfo( "TestInternalNameLookup", new Guid("{62F8127C-4A8C-4217-8BD8-C6712753AFCE}"), "NameKey", "DescriptionKey", "GroupKey") { // ShowField should be Title by default DefaultValue = new LookupValue(1, "Test Item 1") }; LookupFieldInfo lookupFieldInfoAlt = new LookupFieldInfo( "TestInternalNameLookupAlt", new Guid("{1F05DFFA-6396-4AEF-AD23-72217206D35E}"), "NameKey", "DescriptionKey", "GroupKey") { ShowField = "ID", DefaultValue = new LookupValue(2, "2") }; LookupMultiFieldInfo lookupMultiFieldInfo = new LookupMultiFieldInfo( "TestInternalNameLookupM", new Guid("{2C9D4C0E-21EB-4742-8C6C-4C30DCD08A05}"), "NameKeyMulti", "DescriptionKeyMulti", "GroupKey") { DefaultValue = new LookupValueCollection() { new LookupValue(1, "Test Item 1"), new LookupValue(2, "Test Item 2") } }; var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserDomainName + "\\" + Environment.UserName); var ensuredUser2 = testScope.SiteCollection.RootWeb.EnsureUser("OFFICE\\maxime.boissonneault"); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{5B74DD50-0D2D-4D24-95AF-0C4B8AA3F68A}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey") { DefaultValue = new UserValue(ensuredUser1) }; UserMultiFieldInfo userMultiFieldInfo = new UserMultiFieldInfo( "TestInternalNameUserMulti", new Guid("{8C662588-D54E-4905-B232-856C2239B036}"), "NameKeyUserMulti", "DescriptionKeyUserMulti", "GroupKey") { DefaultValue = new UserValueCollection() { new UserValue(ensuredUser1), new UserValue(ensuredUser2) } }; MediaFieldInfo mediaFieldInfo = new MediaFieldInfo( "TestInternalNameMedia", new Guid("{A2F070FE-FE33-44FC-9FDF-D18E74ED4D67}"), "NameKeyMedia", "DescriptionKeyMEdia", "GroupKey") { DefaultValue = new MediaValue() { Title = "Some media file title", Url = "/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf", IsAutoPlay = true, IsLoop = true, PreviewImageUrl = "/_layouts/15/Images/logo.png" } }; var testTermSet = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); // keep Ids random because, if this test fails midway, the term // set will not be cleaned up and upon next test run we will // run into a term set and term ID conflicts. var levelOneTermA = new TermInfo(Guid.NewGuid(), "Term A", testTermSet); var levelOneTermB = new TermInfo(Guid.NewGuid(), "Term B", testTermSet); var levelTwoTermAA = new TermInfo(Guid.NewGuid(), "Term A-A", testTermSet); var levelTwoTermAB = new TermInfo(Guid.NewGuid(), "Term A-B", testTermSet); TaxonomySession session = new TaxonomySession(testScope.SiteCollection); TermStore defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; Group defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); TermSet newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSet.Label, testTermSet.Id); Term createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); Term createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); Term createdTermAA = createdTermA.CreateTerm(levelTwoTermAA.Label, Language.English.Culture.LCID, levelTwoTermAA.Id); Term createdTermAB = createdTermA.CreateTerm(levelTwoTermAB.Label, Language.English.Culture.LCID, levelTwoTermAB.Id); defaultSiteCollectionTermStore.CommitAll(); TaxonomyFieldInfo taxoFieldInfo = new TaxonomyFieldInfo( "TestInternalNameTaxo", new Guid("{18CC105F-16C9-43E2-9933-37F98452C038}"), "NameKey", "DescriptionKey", "GroupKey") { DefaultValue = new TaxonomyValue(levelOneTermB), TermStoreMapping = new TaxonomyContext(testTermSet) // choices limited to all terms in test term set }; TaxonomyMultiFieldInfo taxoMultiFieldInfo = new TaxonomyMultiFieldInfo( "TestInternalNameTaxoMulti", new Guid("{2F49D362-B014-41BB-9959-1000C9A7FFA0}"), "NameKeyMulti", "DescriptionKey", "GroupKey") { DefaultValue = new TaxonomyValueCollection( new List<TaxonomyValue>() { new TaxonomyValue(levelTwoTermAA), new TaxonomyValue(levelTwoTermAB) }), TermStoreMapping = new TaxonomyContext(levelOneTermA) // choices limited to children of a specific term, instead of having full term set choices }; var fieldsToEnsure = new List<BaseFieldInfo>() { integerFieldInfo, numberFieldInfo, currencyFieldInfo, boolFieldInfoBasic, boolFieldInfoDefaultTrue, boolFieldInfoDefaultFalse, dateTimeFieldInfoFormula, dateTimeFieldInfoDefault, textFieldInfo, noteFieldInfo, htmlFieldInfo, imageFieldInfo, urlFieldInfo, urlFieldInfoImage, lookupFieldInfo, lookupFieldInfoAlt, lookupMultiFieldInfo, userFieldInfo, userMultiFieldInfo, mediaFieldInfo, taxoFieldInfo, taxoMultiFieldInfo }; ListInfo lookupListInfo = new ListInfo("sometestlistpathlookup", "DynamiteTestListNameKeyLookup", "DynamiteTestListDescriptionKeyLookup"); ListInfo listInfo1 = new ListInfo("sometestlistpath", "DynamiteTestListNameKey", "DynamiteTestListDescriptionKey"); ListInfo listInfo2 = new ListInfo("sometestlistpathalt", "DynamiteTestListNameKeyAlt", "DynamiteTestListDescriptionKeyAlt") { FieldDefinitions = fieldsToEnsure }; using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { var listHelper = injectionScope.Resolve<IListHelper>(); // Lookup field ListId setup SPList lookupList = listHelper.EnsureList(testScope.SiteCollection.RootWeb, lookupListInfo); lookupFieldInfo.ListId = lookupList.ID; lookupFieldInfoAlt.ListId = lookupList.ID; lookupMultiFieldInfo.ListId = lookupList.ID; // Create the looked-up items var lookupItem1 = lookupList.Items.Add(); lookupItem1["Title"] = "Test Item 1"; lookupItem1.Update(); var lookupItem2 = lookupList.Items.Add(); lookupItem2["Title"] = "Test Item 2"; lookupItem2.Update(); // Create the first test list SPList list1 = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo1); var fieldHelper = injectionScope.Resolve<IFieldHelper>(); // we need to ensure all fields on first list directly IList<SPField> ensuredFieldsOnList1 = fieldHelper.EnsureField(list1.Fields, fieldsToEnsure).ToList(); // second ListInfo object holds its own field definitions (which should be ensured at same time as list through listHelper) SPList list2 = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo2); // Act var itemOnList1 = list1.AddItem(); itemOnList1.Update(); var itemOnList2 = list2.AddItem(); itemOnList2.Update(); // Assert // List item #1 (fields on list ensured via FieldHelper.EnsureField) Assert.AreEqual(555, itemOnList1["TestInternalNameInteger"]); Assert.AreEqual(5.5, itemOnList1["TestInternalNameNumber"]); Assert.AreEqual(500.95, itemOnList1["TestInternalNameCurrency"]); Assert.IsNull(itemOnList1["TestInternalNameBool"]); Assert.IsTrue((bool)itemOnList1["TestInternalNameBoolTrue"]); Assert.IsFalse((bool)itemOnList1["TestInternalNameBoolFalse"]); Assert.AreEqual(DateTime.Today, itemOnList1["TestInternalNameDateFormula"]); Assert.AreEqual(new DateTime(2005, 10, 21), itemOnList1["TestInternalNameDateDefault"]); Assert.AreEqual("Text default value", itemOnList1["TestInternalNameText"]); Assert.AreEqual("Note default value", itemOnList1["TestInternalNameNote"]); Assert.AreEqual("<p class=\"some-css-class\">HTML default value</p>", itemOnList1["TestInternalNameHtml"]); var imageFieldVal = (ImageFieldValue)itemOnList1["TestInternalNameImage"]; Assert.IsNotNull(imageFieldVal); Assert.AreEqual("http://github.com/GSoft-SharePoint/", imageFieldVal.Hyperlink); Assert.AreEqual("/_layouts/15/MyFolder/MyImage.png", imageFieldVal.ImageUrl); var urlFieldVal = new SPFieldUrlValue(itemOnList1["TestInternalNameUrl"].ToString()); Assert.AreEqual("http://github.com/GSoft-SharePoint/", urlFieldVal.Url); ////Assert.AreEqual("patate!", urlFieldVal.Description); // proper Url description will never be set for Format=Hyperlink var urlImageFieldVal = new SPFieldUrlValue(itemOnList1["TestInternalNameUrlImg"].ToString()); Assert.AreEqual("http://github.com/GSoft-SharePoint/", urlImageFieldVal.Url); ////Assert.AreEqual("patate!", urlImageFieldVal.Description); // proper Url description will never be set for Format=Image either var lookupFieldVal = new SPFieldLookupValue(itemOnList1["TestInternalNameLookup"].ToString()); Assert.AreEqual(1, lookupFieldVal.LookupId); Assert.AreEqual("Test Item 1", lookupFieldVal.LookupValue); var lookupAltFieldVal = new SPFieldLookupValue(itemOnList1["TestInternalNameLookupAlt"].ToString()); Assert.AreEqual(2, lookupAltFieldVal.LookupId); Assert.AreEqual("2", lookupAltFieldVal.LookupValue); // ShowField/LookupField is ID var lookupMultiFieldVal = new SPFieldLookupValueCollection(itemOnList1["TestInternalNameLookupM"].ToString()); Assert.AreEqual(1, lookupMultiFieldVal[0].LookupId); Assert.AreEqual("Test Item 1", lookupMultiFieldVal[0].LookupValue); Assert.AreEqual(2, lookupMultiFieldVal[1].LookupId); Assert.AreEqual("Test Item 2", lookupMultiFieldVal[1].LookupValue); var userFieldVal = new SPFieldUserValue(testScope.SiteCollection.RootWeb, itemOnList1["TestInternalNameUser"].ToString()); Assert.AreEqual(ensuredUser1.Name, userFieldVal.User.Name); var userMultiFieldVal = new SPFieldUserValueCollection(testScope.SiteCollection.RootWeb, itemOnList1["TestInternalNameUserMulti"].ToString()); Assert.AreEqual(ensuredUser1.Name, userMultiFieldVal[0].User.Name); Assert.AreEqual("Maxime Boissonneault", userMultiFieldVal[1].User.Name); var mediaFieldVal = MediaFieldValue.FromString(itemOnList1["TestInternalNameMedia"].ToString()); Assert.AreEqual("Some media file title", mediaFieldVal.Title); Assert.AreEqual(HttpUtility.UrlDecode("/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf"), mediaFieldVal.MediaSource); Assert.IsTrue(mediaFieldVal.AutoPlay); Assert.IsTrue(mediaFieldVal.Loop); Assert.AreEqual("/_layouts/15/Images/logo.png", mediaFieldVal.PreviewImageSource); var taxoFieldValue = (TaxonomyFieldValue)itemOnList1["TestInternalNameTaxo"]; Assert.AreNotEqual(-1, taxoFieldValue.WssId); Assert.AreEqual(levelOneTermB.Id, new Guid(taxoFieldValue.TermGuid)); Assert.AreEqual(levelOneTermB.Label, taxoFieldValue.Label); var taxoFieldValueMulti = (TaxonomyFieldValueCollection)itemOnList1["TestInternalNameTaxoMulti"]; Assert.AreNotEqual(-1, taxoFieldValueMulti[0].WssId); Assert.AreEqual(levelTwoTermAA.Id, new Guid(taxoFieldValueMulti[0].TermGuid)); Assert.AreEqual(levelTwoTermAA.Label, taxoFieldValueMulti[0].Label); Assert.AreNotEqual(-1, taxoFieldValueMulti[1].WssId); Assert.AreEqual(levelTwoTermAB.Id, new Guid(taxoFieldValueMulti[1].TermGuid)); Assert.AreEqual(levelTwoTermAB.Label, taxoFieldValueMulti[1].Label); // List item #2 (fields on list ensured via ListHelper.EnsureList) Assert.AreEqual(555, itemOnList2["TestInternalNameInteger"]); Assert.AreEqual(5.5, itemOnList2["TestInternalNameNumber"]); Assert.AreEqual(500.95, itemOnList2["TestInternalNameCurrency"]); Assert.IsNull(itemOnList2["TestInternalNameBool"]); Assert.IsTrue((bool)itemOnList2["TestInternalNameBoolTrue"]); Assert.IsFalse((bool)itemOnList2["TestInternalNameBoolFalse"]); Assert.AreEqual(DateTime.Today, itemOnList2["TestInternalNameDateFormula"]); Assert.AreEqual(new DateTime(2005, 10, 21), itemOnList2["TestInternalNameDateDefault"]); Assert.AreEqual("Text default value", itemOnList2["TestInternalNameText"]); Assert.AreEqual("Note default value", itemOnList2["TestInternalNameNote"]); Assert.AreEqual("<p class=\"some-css-class\">HTML default value</p>", itemOnList2["TestInternalNameHtml"]); imageFieldVal = (ImageFieldValue)itemOnList2["TestInternalNameImage"]; Assert.IsNotNull(imageFieldVal); Assert.AreEqual("http://github.com/GSoft-SharePoint/", imageFieldVal.Hyperlink); Assert.AreEqual("/_layouts/15/MyFolder/MyImage.png", imageFieldVal.ImageUrl); urlFieldVal = new SPFieldUrlValue(itemOnList2["TestInternalNameUrl"].ToString()); Assert.AreEqual("http://github.com/GSoft-SharePoint/", urlFieldVal.Url); ////Assert.AreEqual("patate!", urlFieldVal.Description); // proper Url description will never be set for Format=Hyperlink urlImageFieldVal = new SPFieldUrlValue(itemOnList2["TestInternalNameUrlImg"].ToString()); Assert.AreEqual("http://github.com/GSoft-SharePoint/", urlImageFieldVal.Url); ////Assert.AreEqual("patate!", urlImageFieldVal.Description); // proper Url description will never be set for Format=Image either lookupFieldVal = new SPFieldLookupValue(itemOnList2["TestInternalNameLookup"].ToString()); Assert.AreEqual(1, lookupFieldVal.LookupId); Assert.AreEqual("Test Item 1", lookupFieldVal.LookupValue); lookupAltFieldVal = new SPFieldLookupValue(itemOnList2["TestInternalNameLookupAlt"].ToString()); Assert.AreEqual(2, lookupAltFieldVal.LookupId); Assert.AreEqual("2", lookupAltFieldVal.LookupValue); // ShowField/LookupField is ID lookupMultiFieldVal = new SPFieldLookupValueCollection(itemOnList2["TestInternalNameLookupM"].ToString()); Assert.AreEqual(1, lookupMultiFieldVal[0].LookupId); Assert.AreEqual("Test Item 1", lookupMultiFieldVal[0].LookupValue); Assert.AreEqual(2, lookupMultiFieldVal[1].LookupId); Assert.AreEqual("Test Item 2", lookupMultiFieldVal[1].LookupValue); userFieldVal = new SPFieldUserValue(testScope.SiteCollection.RootWeb, itemOnList2["TestInternalNameUser"].ToString()); Assert.AreEqual(ensuredUser1.Name, userFieldVal.User.Name); userMultiFieldVal = new SPFieldUserValueCollection(testScope.SiteCollection.RootWeb, itemOnList2["TestInternalNameUserMulti"].ToString()); Assert.AreEqual(ensuredUser1.Name, userMultiFieldVal[0].User.Name); Assert.AreEqual("Maxime Boissonneault", userMultiFieldVal[1].User.Name); mediaFieldVal = MediaFieldValue.FromString(itemOnList2["TestInternalNameMedia"].ToString()); Assert.AreEqual("Some media file title", mediaFieldVal.Title); Assert.AreEqual(HttpUtility.UrlDecode("/sites/test/SiteAssets/01_01_ASP.NET%20MVC%203%20Fundamentals%20Intro%20-%20Overview.asf"), mediaFieldVal.MediaSource); Assert.IsTrue(mediaFieldVal.AutoPlay); Assert.IsTrue(mediaFieldVal.Loop); Assert.AreEqual("/_layouts/15/Images/logo.png", mediaFieldVal.PreviewImageSource); taxoFieldValue = (TaxonomyFieldValue)itemOnList2["TestInternalNameTaxo"]; Assert.AreNotEqual(-1, taxoFieldValue.WssId); Assert.AreEqual(levelOneTermB.Id, new Guid(taxoFieldValue.TermGuid)); Assert.AreEqual(levelOneTermB.Label, taxoFieldValue.Label); taxoFieldValueMulti = (TaxonomyFieldValueCollection)itemOnList2["TestInternalNameTaxoMulti"]; Assert.AreNotEqual(-1, taxoFieldValueMulti[0].WssId); Assert.AreEqual(levelTwoTermAA.Id, new Guid(taxoFieldValueMulti[0].TermGuid)); Assert.AreEqual(levelTwoTermAA.Label, taxoFieldValueMulti[0].Label); Assert.AreNotEqual(-1, taxoFieldValueMulti[1].WssId); Assert.AreEqual(levelTwoTermAB.Id, new Guid(taxoFieldValueMulti[1].TermGuid)); Assert.AreEqual(levelTwoTermAB.Label, taxoFieldValueMulti[1].Label); } // Cleanup term set so that we don't pollute the metadata store newTermSet.Delete(); defaultSiteCollectionTermStore.CommitAll(); } }
public void EnsureField_WhenEnsuringListColumnWithEnforceUniqueValue_AndFieldInfoIsSupportedFieldType_ShouldInitializeFieldToEnforceUniqueness_AndForceIndexation() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange IntegerFieldInfo integerFieldInfo = new IntegerFieldInfo( "TestInternalNameInteger", new Guid("{12E262D0-C7C4-4671-A266-064CDBD3905A}"), "NameKeyInt", "DescriptionKeyInt", "GroupKey") { EnforceUniqueValues = true }; NumberFieldInfo numberFieldInfo = new NumberFieldInfo( "TestInternalNameNumber", new Guid("{5DD4EE0F-8498-4033-97D0-317A24988786}"), "NameKeyNumber", "DescriptionKeyNumber", "GroupKey") { EnforceUniqueValues = true }; CurrencyFieldInfo currencyFieldInfo = new CurrencyFieldInfo( "TestInternalNameCurrency", new Guid("{9E9963F6-1EE6-46FB-9599-783BBF4D6249}"), "NameKeyCurrency", "DescriptionKeyCurrency", "GroupKey") { EnforceUniqueValues = true, LocaleId = 3084 // fr-CA }; DateTimeFieldInfo dateTimeFieldInfo = new DateTimeFieldInfo( "TestInternalNameDate", new Guid("{016BF8D9-CEDC-4BF4-BA21-AC6A8F174AD5}"), "NameKeyDateTime", "DescriptionKeyDateTime", "GroupKey") { EnforceUniqueValues = true }; TextFieldInfo textFieldInfo = new TextFieldInfo( "TestInternalNameText", new Guid("{0C58B4A1-B360-47FE-84F7-4D8F58AE80F6}"), "NameKey", "DescriptionKey", "GroupKey") { EnforceUniqueValues = true }; var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserDomainName + "\\" + Environment.UserName); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{5B74DD50-0D2D-4D24-95AF-0C4B8AA3F68A}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey") { EnforceUniqueValues = true }; LookupFieldInfo lookupFieldInfo = new LookupFieldInfo( "TestInternalNameLookup", new Guid("{62F8127C-4A8C-4217-8BD8-C6712753AFCE}"), "NameKey", "DescriptionKey", "GroupKey") { EnforceUniqueValues = true }; var testTermSet = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); // keep Ids random because, if this test fails midway, the term // set will not be cleaned up and upon next test run we will // run into a term set and term ID conflicts. var levelOneTermA = new TermInfo(Guid.NewGuid(), "Term A", testTermSet); var levelOneTermB = new TermInfo(Guid.NewGuid(), "Term B", testTermSet); var levelTwoTermAA = new TermInfo(Guid.NewGuid(), "Term A-A", testTermSet); var levelTwoTermAB = new TermInfo(Guid.NewGuid(), "Term A-B", testTermSet); TaxonomySession session = new TaxonomySession(testScope.SiteCollection); TermStore defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; Group defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); TermSet newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSet.Label, testTermSet.Id); Term createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); Term createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); Term createdTermAA = createdTermA.CreateTerm(levelTwoTermAA.Label, Language.English.Culture.LCID, levelTwoTermAA.Id); Term createdTermAB = createdTermA.CreateTerm(levelTwoTermAB.Label, Language.English.Culture.LCID, levelTwoTermAB.Id); defaultSiteCollectionTermStore.CommitAll(); TaxonomyFieldInfo taxoFieldInfo = new TaxonomyFieldInfo( "TestInternalNameTaxo", new Guid("{18CC105F-16C9-43E2-9933-37F98452C038}"), "NameKey", "DescriptionKey", "GroupKey") { EnforceUniqueValues = true, TermStoreMapping = new TaxonomyContext(testTermSet) // choices limited to all terms in test term set }; var fieldsToEnsure = new List<BaseFieldInfo>() { integerFieldInfo, numberFieldInfo, currencyFieldInfo, dateTimeFieldInfo, textFieldInfo, userFieldInfo, lookupFieldInfo, taxoFieldInfo, }; ListInfo lookupListInfo = new ListInfo("sometestlistpathlookup", "DynamiteTestListNameKeyLookup", "DynamiteTestListDescriptionKeyLookup"); ListInfo listInfo1 = new ListInfo("sometestlistpath", "DynamiteTestListNameKey", "DynamiteTestListDescriptionKey") { FieldDefinitions = fieldsToEnsure }; using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { var listHelper = injectionScope.Resolve<IListHelper>(); // Lookup field ListId setup SPList lookupList = listHelper.EnsureList(testScope.SiteCollection.RootWeb, lookupListInfo); lookupFieldInfo.ListId = lookupList.ID; // Create the looked-up items var lookupItem1 = lookupList.Items.Add(); lookupItem1["Title"] = "Test Item 1"; lookupItem1.Update(); var lookupItem2 = lookupList.Items.Add(); lookupItem2["Title"] = "Test Item 2"; lookupItem2.Update(); // Create the test list (which should provision both site columns and list columns) SPList list = listHelper.EnsureList(testScope.SiteCollection.RootWeb, listInfo1); // Act var originalItemWithUniqueValues = list.AddItem(); originalItemWithUniqueValues["TestInternalNameInteger"] = 555; originalItemWithUniqueValues["TestInternalNameNumber"] = 5.5; originalItemWithUniqueValues["TestInternalNameCurrency"] = 500.95; originalItemWithUniqueValues["TestInternalNameDate"] = new DateTime(2005, 10, 21); originalItemWithUniqueValues["TestInternalNameText"] = "Text value"; originalItemWithUniqueValues["TestInternalNameLookup"] = new SPFieldLookupValue(1, "Test Item 1"); originalItemWithUniqueValues["TestInternalNameUser"] = new SPFieldUserValue(testScope.SiteCollection.RootWeb, ensuredUser1.ID, ensuredUser1.Name); var taxonomyField = (TaxonomyField)originalItemWithUniqueValues.Fields.GetFieldByInternalName("TestInternalNameTaxo"); taxonomyField.SetFieldValue(originalItemWithUniqueValues, createdTermB); originalItemWithUniqueValues.Update(); // Assert Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameInteger").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameInteger"] = 555; uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Integer field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameNumber").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameNumber"] = 5.5; uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Number field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameCurrency").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameCurrency"] = 500.95; uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Currency field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameDate").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameDate"] = new DateTime(2005, 10, 21); uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this DateTime field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameText").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameText"] = "Text value"; uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Text field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameLookup").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameLookup"] = new SPFieldLookupValue(1, "Test Item 1"); uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Lookup field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameUser").Indexed); try { var uniquenessBreakingItem = list.AddItem(); uniquenessBreakingItem["TestInternalNameUser"] = new SPFieldUserValue(testScope.SiteCollection.RootWeb, ensuredUser1.ID, ensuredUser1.Name); uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this User field"); } catch (SPException) { } Assert.IsTrue(list.Fields.GetFieldByInternalName("TestInternalNameTaxo").Indexed); try { var uniquenessBreakingItem = list.AddItem(); taxonomyField = (TaxonomyField)uniquenessBreakingItem.Fields.GetFieldByInternalName("TestInternalNameTaxo"); taxonomyField.SetFieldValue(uniquenessBreakingItem, createdTermB); uniquenessBreakingItem.Update(); Assert.Fail("Should've thrown SPException because values should be unique on this Taxonomy field"); } catch (SPException) { } } // Cleanup term set so that we don't pollute the metadata store newTermSet.Delete(); defaultSiteCollectionTermStore.CommitAll(); } }
public GSPacketIn SendtoGather(PlayerInfo Player, UserFieldInfo field) { throw new NotImplementedException(); }
public void EnsureField_WhenUserSingleOrMultiField_ShouldApplyUserFieldDefinitionAndDefaultValue() { using (var testScope = SiteTestScope.BlankSite()) { var ensuredUser1 = testScope.SiteCollection.RootWeb.EnsureUser(Environment.UserName); var ensuredUser2 = testScope.SiteCollection.RootWeb.EnsureUser("OFFICE\\maxime.boissonneault"); UserFieldInfo userFieldInfo = new UserFieldInfo( "TestInternalNameUser", new Guid("{0C58B4A1-B360-47FE-84F7-4D8F58AE80F6}"), "NameKeyUser", "DescriptionKeyUser", "GroupKey") { // ShowField should be Title by default UserSelectionMode = UserFieldSelectionMode.PeopleAndGroups }; UserFieldInfo userFieldInfoAlt = new UserFieldInfo( "TestInternalNameUserAlt", new Guid("{0F413213-9B75-49AD-850E-38EF551B1D1F}"), "NameKeyUserAlt", "DescriptionKeyUserAlt", "GroupKey") { ShowField = "ID", UserSelectionScope = 1, DefaultValue = new UserValue(ensuredUser1), EnforceUniqueValues = true }; UserMultiFieldInfo userMultiFieldInfo = new UserMultiFieldInfo( "TestInternalNameUserMulti", new Guid("{9ACF13BF-F42C-4488-AE54-5E971B7619AB}"), "NameKeyUserMulti", "DescriptionKeyUserMulti", "GroupKey") { DefaultValue = new UserValueCollection() { new UserValue(ensuredUser1), new UserValue(ensuredUser2) } }; using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { IFieldHelper fieldHelper = injectionScope.Resolve<IFieldHelper>(); var fieldsCollection = testScope.SiteCollection.RootWeb.Fields; // 1) Basic user field (no default value) SPFieldUser userField = (SPFieldUser)fieldHelper.EnsureField(fieldsCollection, userFieldInfo); this.ValidateFieldBasicValues(userFieldInfo, userField); Assert.IsTrue(string.IsNullOrEmpty(userField.DefaultValue)); Assert.IsFalse(userField.AllowMultipleValues); Assert.AreEqual("ImnName", userField.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleAndGroups, userField.SelectionMode); Assert.AreEqual(0, userField.SelectionGroup); SPFieldUser userFieldRefetched = (SPFieldUser)testScope.SiteCollection.RootWeb.Fields[userFieldInfo.Id]; // refetch to make sure .Update() was properly called on SPField this.ValidateFieldBasicValues(userFieldInfo, userFieldRefetched); Assert.IsTrue(string.IsNullOrEmpty(userFieldRefetched.DefaultValue)); Assert.IsFalse(userFieldRefetched.AllowMultipleValues); Assert.AreEqual("ImnName", userFieldRefetched.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleAndGroups, userFieldRefetched.SelectionMode); Assert.AreEqual(0, userFieldRefetched.SelectionGroup); // 2) Basic user field (with default value) userField = (SPFieldUser)fieldHelper.EnsureField(fieldsCollection, userFieldInfoAlt); this.ValidateFieldBasicValues(userFieldInfoAlt, userField); Assert.AreEqual("1;#" + ensuredUser1.Name, userField.DefaultValue); Assert.IsFalse(userField.AllowMultipleValues); Assert.AreEqual("ID", userField.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleOnly, userField.SelectionMode); Assert.AreEqual(1, userField.SelectionGroup); userFieldRefetched = (SPFieldUser)testScope.SiteCollection.RootWeb.Fields[userFieldInfoAlt.Id]; // refetch to make sure .Update() was properly called on SPField this.ValidateFieldBasicValues(userFieldInfoAlt, userFieldRefetched); Assert.AreEqual("1;#" + ensuredUser1.Name, userFieldRefetched.DefaultValue); Assert.IsFalse(userField.AllowMultipleValues); Assert.AreEqual("ID", userFieldRefetched.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleOnly, userFieldRefetched.SelectionMode); Assert.AreEqual(1, userFieldRefetched.SelectionGroup); // 3) Basic user multi field (with default value) userField = (SPFieldUser)fieldHelper.EnsureField(fieldsCollection, userMultiFieldInfo); this.ValidateFieldBasicValues(userMultiFieldInfo, userField); Assert.AreEqual("1;#" + ensuredUser1.Name + ";#5;#Maxime Boissonneault", userField.DefaultValue); Assert.IsTrue(userField.AllowMultipleValues); Assert.AreEqual("ImnName", userField.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleOnly, userField.SelectionMode); Assert.AreEqual(0, userField.SelectionGroup); userFieldRefetched = (SPFieldUser)testScope.SiteCollection.RootWeb.Fields[userMultiFieldInfo.Id]; // refetch to make sure .Update() was properly called on SPField this.ValidateFieldBasicValues(userMultiFieldInfo, userFieldRefetched); Assert.AreEqual("1;#" + ensuredUser1.Name + ";#5;#Maxime Boissonneault", userFieldRefetched.DefaultValue); Assert.IsTrue(userFieldRefetched.AllowMultipleValues); Assert.AreEqual("ImnName", userFieldRefetched.LookupField); Assert.AreEqual(SPFieldUserSelectionMode.PeopleOnly, userFieldRefetched.SelectionMode); Assert.AreEqual(0, userFieldRefetched.SelectionGroup); } } }
protected void btnok_Click(object sender, System.EventArgs e) { if (base.Action.Equals(ActionType.Add.ToString()) && !base.IsAuthorizedOp(ActionType.Add.ToString())) { base.ShowMsg("Không có thẩm quyền"); } else if (base.Action.Equals(ActionType.Modify.ToString()) && !base.IsAuthorizedOp(ActionType.Modify.ToString())) { base.ShowMsg("Không có thẩm quyền"); } else { UserFieldInfo userFieldInfo = new UserFieldInfo(); if (base.IsEdit) { userFieldInfo = SinGooCMS.BLL.UserField.GetDataById(base.OpID); } userFieldInfo.UserGroupID = this.modelParent.AutoID; userFieldInfo.FieldName = WebUtils.GetString(this.TextBox2.Text); userFieldInfo.Alias = WebUtils.GetString(this.TextBox3.Text); userFieldInfo.Tip = WebUtils.GetString(this.TextBox4.Text); userFieldInfo.FieldType = (int)((FieldType)System.Enum.Parse(typeof(FieldType), this.DropDownList5.SelectedValue)); userFieldInfo.DataLength = 50; if (string.IsNullOrEmpty(userFieldInfo.FieldName) || string.IsNullOrEmpty(userFieldInfo.Alias)) { base.ShowMsg("字段名称/Tên hiển thị không thể để trống"); } else { userFieldInfo.DefaultValue = WebUtils.GetString(this.TextBox6.Text); SinGooCMS.Control.FieldSetting fieldSetting = new SinGooCMS.Control.FieldSetting(); fieldSetting.ControlWidth = WebUtils.GetInt(this.ExtTextBox1.Text); fieldSetting.ControlHeight = WebUtils.GetInt(this.ExtTextBox2.Text); fieldSetting.TextMode = this.ExtRadioButtonList3.SelectedValue; fieldSetting.IsDataType = userFieldInfo.FieldType.Equals(FieldType.DateTimeType); fieldSetting.DataFormat = WebUtils.GetString(this.ExtTextBox4.Text); FieldType fieldType = (FieldType)userFieldInfo.FieldType; if (fieldType != FieldType.MultipleHtmlType) { if (fieldType != FieldType.DateTimeType) { userFieldInfo.DataType = "nvarchar"; userFieldInfo.DataLength = WebUtils.GetInt(this.ExtTextBox5.Text, 50); } else { userFieldInfo.DataType = "datetime"; } } else { userFieldInfo.DataType = "ntext"; } fieldSetting.DataFrom = this.ExtDropDownList6.SelectedValue; string dataFrom = fieldSetting.DataFrom; if (dataFrom != null) { if (!(dataFrom == "Text")) { if (!(dataFrom == "DataDictionary")) { if (!(dataFrom == "SQLQuery")) { if (dataFrom == "AjaxData") { fieldSetting.DataSource = WebUtils.GetString(this.ExtTextBox11.Text); } } else { fieldSetting.DataSource = WebUtils.GetString(this.ExtTextBox9.Text); } } else { fieldSetting.DataSource = WebUtils.GetString(this.ExtTextBox8.Text); } } else { fieldSetting.DataSource = this.ExtTextBox7.Text; } } userFieldInfo.Setting = XmlSerializerUtils.Serialize <SinGooCMS.Control.FieldSetting>(fieldSetting); userFieldInfo.IsUsing = this.CheckBox7.Checked; userFieldInfo.EnableNull = this.CheckBox9.Checked; if (base.Action.Equals(ActionType.Add.ToString())) { userFieldInfo.AutoTimeStamp = System.DateTime.Now; userFieldInfo.IsSystem = false; userFieldInfo.Sort = SinGooCMS.BLL.UserField.MaxSort + 1; FieldAddState fieldAddState = SinGooCMS.BLL.UserField.Add(userFieldInfo); FieldAddState fieldAddState2 = fieldAddState; switch (fieldAddState2) { case FieldAddState.Error: base.ShowMsg("Tạo trường thất bại"); break; case FieldAddState.FieldNameIsUsing: base.ShowMsg("Tên trường đã được sử dụng"); break; case FieldAddState.FieldNameExists: base.ShowMsg("Tên trường đã tồn tại"); break; case FieldAddState.ModelNotExists: base.ShowMsg("没有找到会员组"); break; case FieldAddState.CreateColumnError: base.ShowMsg("Tạo cột dữ liệu thất bại"); break; default: if (fieldAddState2 != FieldAddState.Success) { base.ShowMsg("Lỗi Unknown"); } else { PageBase.log.AddEvent(base.LoginAccount.AccountName, "添加会员组字段[" + userFieldInfo.FieldName + "] thành công"); base.Response.Redirect(string.Concat(new object[] { "UserField.aspx?CatalogID=", base.CurrentCatalogID, "&Module=", base.CurrentModuleCode, "&GroupID=", this.intModelID, "&action=View" })); } break; } } if (base.Action.Equals(ActionType.Modify.ToString())) { if (SinGooCMS.BLL.UserField.Update(userFieldInfo)) { PageBase.log.AddEvent(base.LoginAccount.AccountName, "修改会员组字段[" + userFieldInfo.FieldName + "] thành công"); base.Response.Redirect(string.Concat(new object[] { "UserField.aspx?CatalogID=", base.CurrentCatalogID, "&Module=", base.CurrentModuleCode, "&GroupID=", this.intModelID, "&action=View" })); } else { base.ShowMsg("修改会员组字段失败"); } } } } }