private FieldSetting CreateNewFieldType(FieldDescriptor fieldInfo, Dictionary <string, List <string> > newBindings, ContentListType listType, SlotTable slotTable, SchemaEditor editor) { List <string> bindList = new List <string>(); foreach (RepositoryDataType slotType in FieldManager.GetDataTypes(fieldInfo.FieldTypeShortName)) { if (slotType == RepositoryDataType.NotDefined) { continue; } int slotNumber = slotTable.ReserveSlot((DataType)slotType); string binding = EncodeBinding(slotType, slotNumber); bindList.Add(binding); PropertyType pt = editor.PropertyTypes[binding]; if (pt == null) { pt = editor.CreateContentListPropertyType((DataType)slotType, slotNumber); } editor.AddPropertyTypeToPropertySet(pt, listType); } newBindings.Add(fieldInfo.FieldName, bindList); return(FieldSetting.Create(fieldInfo, bindList, null)); }
public void UpdateField(FieldSetting fieldSetting) { if (fieldSetting == null) { throw new ArgumentNullException("fieldSetting"); } if (!FieldExists(fieldSetting)) { throw new ArgumentException("List field does not exist: " + fieldSetting.Name); } foreach (var fs in this.FieldSettings) { if (fs.Name.CompareTo(fieldSetting.Name) != 0) { continue; } if (fs.ShortName.CompareTo(fieldSetting.ShortName) != 0) { throw new ArgumentException(string.Format("List field types does not match: {0}, {1}", fs.ShortName, fieldSetting.ShortName)); } break; } UpdateFieldInternal(fieldSetting); }
public static void AddToDefaultView(FieldSetting fieldSetting, ContentList contentList) { if (fieldSetting == null || contentList == null) return; var iv = LoadDefaultView(contentList) as IView; if (iv == null) return; var viewNode = iv as Node; if (viewNode == null) return; //if the view is global, create local copy first if (!viewNode.Path.StartsWith(contentList.Path)) { viewNode = ViewManager.CopyViewLocal(contentList.Path, viewNode.Path, true); iv = viewNode as IView; } fieldSetting.Owner = ContentType.GetByName("ContentList"); iv.AddColumn(new Column { FullName = fieldSetting.FullName, BindingName = fieldSetting.BindingName, Title = fieldSetting.DisplayName, Index = iv.GetColumns().Count() + 1 }); viewNode.Save(); }
void LoadData() { if (cboField.Items.Count > 0) { gridControl1.DataSource = FieldSetting.GetByFieldDataTable(cboField.Text, Type); } }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var etSource = (PageBreakFieldSetting)source; Rule = etSource.Rule; }
public PropertyType(FieldSetting fieldSetting, Class @class) { _fieldSetting = fieldSetting; _class = @class; Required = fieldSetting.Compulsory ?? false; UnderlyingType = _fieldSetting.FieldDataType; }
// Start is called before the first frame update void Start() { var settings = FieldSetting.getDefault(); settings.HorzDimension = BrickSetting.FieldSize; settings.VertDimension = BrickSetting.FieldSize; settings.SideDimension = BrickSetting.SideFieldSize; var sliderValue = PlayerPrefs.GetFloat("Sound"); _audioSource.SetFloat("MusicVol", Mathf.Log10(sliderValue) * 20); _gameSceneLogic = new Scene(settings); _gameSceneLogic.ScoreUpdated += ScoreUpdated; _gameSceneLogic.CombinationDestroyed += CombinationDestroyed; _gameSceneLogic.GameOver += GameOver; _gameSceneLogic.GameWon += GameWon; InstantiateMainField(_gameSceneLogic.MainFieldMatrix, _gameSceneLogic.MovingSquare); InstantiateTopSideField(_gameSceneLogic.GetSideMatrix(Side.Top)); InstantiateLeftSideField(_gameSceneLogic.GetSideMatrix(Side.Left)); InstantiateBottomSideField(_gameSceneLogic.GetSideMatrix(Side.Bottom)); InstantiateRightSideField(_gameSceneLogic.GetSideMatrix(Side.Right)); }
private static int CompareFields(FieldSetting x, FieldSetting y) { var left = x.DisplayName ?? string.Empty; var right = y.DisplayName ?? string.Empty; return(left.CompareTo(right)); }
private static int CompareFields(FieldSetting x, FieldSetting y) { var left = x.DisplayName ?? string.Empty; var right = y.DisplayName ?? string.Empty; return(string.Compare(left, right, StringComparison.InvariantCulture)); }
private static int CompareFields(FieldSetting fsX, FieldSetting fsY) { // Comparison: CTD fields come first ordered by // FieldIndex, than list fields ordered by FieldIndex if (fsX == null) { if (fsY == null) { return(0); } return(-1); } if (fsY == null) { return(1); } if (fsX.Name.StartsWith("#")) { return(fsY.Name.StartsWith("#") ? (fsX.FieldIndex ?? 0).CompareTo(fsY.FieldIndex ?? 0) : 1); } if (fsY.Name.StartsWith("#")) { return(-1); } return((fsX.FieldIndex ?? 0).CompareTo(fsY.FieldIndex ?? 0)); }
public void ShouldSideFieldThrowsSquare(Side location) { var fieldSetting = new FieldSetting() { HorzDimension = 5, VertDimension = 4, SideDimension = 3 }; var sideField = SideField.Create(fieldSetting, location); bool same = true; for (uint i = 0; i < sideField.Width; i++) { var color = sideField[i, 0].Color; var secondColor = sideField[i, 1].Color; var thirdColor = sideField[i, 2].Color; var throwColor = sideField.Pop(i); color.ShouldBe(throwColor); sideField[i, 0].Color.ShouldBe(secondColor); sideField[i, 1].Color.ShouldBe(thirdColor); sideField[i, 2].Color.ShouldNotBe(Color.None); same &= sideField[i, 2].Color == thirdColor; } same.ShouldBeFalse(); }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { var fields = new ArrayList(); //List of columns that contains URLs foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldSetting = new FieldSetting { Title = row[FieldsTableColumn.Title].ToString(), SourceColumn = row[FieldsTableColumn.InputSettings].AsString() }; if (!string.IsNullOrEmpty(fieldSetting.SourceColumn)) { fieldSetting.TokenText = row[FieldsTableColumn.Default].AsString(); fieldSetting.SourceType = GetTypeName(ds.Tables[DataSetTableName.Fields], fieldSetting.SourceColumn); fields.Add(fieldSetting); row[FieldsTableColumn.ValueColumn] = XmlConvert.EncodeName(fieldSetting.Title); } } } foreach (DataRow row in ds.Tables[DataSetTableName.Data].Rows) { foreach (FieldSetting field in fields) { row[field.Title] = new TokenReplace(moduleId).GetValue(field.TokenText, row, field.SourceColumn, field.SourceType); } } }
public static string GetColumnTitle(string fieldFullName, string listPath) { if (string.IsNullOrEmpty(fieldFullName)) { return(string.Empty); } string fieldName; var fs = FieldSetting.GetFieldSettingFromFullName(fieldFullName, out fieldName); //content list field if (fs == null && !string.IsNullOrEmpty(fieldName) && fieldName.StartsWith("#") && !string.IsNullOrEmpty(listPath)) { var cl = Node.Load <ContentList>(listPath); if (cl != null) { var fsNode = cl.FieldSettingContents.FirstOrDefault(f => f.Name == fieldName) as FieldSettingContent; if (fsNode != null) { fs = fsNode.FieldSetting; } } } else if (fs == null && fieldFullName.IndexOf(".", StringComparison.Ordinal) < 0) { // Workaround: field name does not contain a type prefix (it is not a real full name), fallback // to generic content. This works incorrectly in case of content types: we will display a title // for the generic content field instead of a content type field - but at this point we have // no way of knowing what kind of content will be displayed in the grid. fs = FieldSetting.GetFieldSettingFromFullName(typeof(GenericContent).Name + "." + fieldFullName, out fieldName); } return(fs != null?UITools.GetSafeText(fs.DisplayName) : string.Empty); }
//======================================================================================================= Runtime ContentType internal static ContentType Create(Type type, string ctd) { var contentType = new ContentType(ContentType.GetByName("GenericContent"));//HACK: come from ctd var reader = new StringReader(ctd); var xml = new XPathDocument(reader); var nametable = new NameTable(); var nav = xml.CreateNavigator(); var nsres = new XmlNamespaceManager(nav.NameTable); nsres.AddNamespace("x", ContentDefinitionXmlNamespace); var contentTypeElement = nav.Select("/x:ContentType", nsres); contentTypeElement.MoveNext(); var contentTypeName = contentTypeElement.Current.GetAttribute("name", ""); contentType.Name = contentTypeName; var fieldElements = nav.Select("/x:ContentType/x:Fields/x:Field", nsres); foreach (XPathNavigator fieldElement in fieldElements) { var fieldDescriptor = FieldDescriptor.Parse(fieldElement, nsres, contentType); var fieldSetting = FieldSetting.Create(fieldDescriptor); contentType.FieldSettings.Add(fieldSetting); } contentType.SetFieldSlots(type); return(contentType); }
private void ChangeInheritedField(FieldSetting parent) { //==== Change the fieldSetting parent if its owner is this contentType int index = GetFieldSettingIndexByName(parent.Name); if (index == -1) { return; } FieldSetting fieldSetting = this.FieldSettings[index]; //-- break recursion if owner of field is this contenttype if (fieldSetting.Owner == this) { fieldSetting.ParentFieldSetting = parent; return; } //-- with postorder recursion foreach (ContentType child in this.ChildTypes) { child.ChangeInheritedField(parent); } this.FieldSettings[index] = parent; }
private void btnAdd_Click(object sender, EventArgs e) { if (CheckData() && cboField.Items.Count > 0) { switch (status) { case Status.Add: obj.Field = cboField.Text.Trim(); obj.Control = cboControl.Text.Trim(); obj.Attribute = cboAttribute.Text.Trim(); obj.Value = txtValue.Text.Trim(); obj.Type = Type; FieldSetting.Insert(obj); LoadData(); break; case Status.Edit: obj.Control = cboControl.Text.Trim(); obj.Attribute = cboAttribute.Text.Trim(); obj.Value = txtValue.Text.Trim(); obj.Type = Type; FieldSetting.Update(obj); LoadData(); status = Status.Add; break; } FormStatus(); txtValue.Text = ""; } }
public void ShouldScoreStateManagerRestoreToPreviousStates() { var setting = new FieldSetting(); var score = new Score(setting); var scoreStateManager = new ScoreStateManager(score, 2); scoreStateManager.Save(); score.Add(2); scoreStateManager.Save(); score.Add(3); scoreStateManager.Save(); score.Add(4); score.Value.ShouldBe(9); var result = scoreStateManager.BackToPrevious(); result.ShouldBeTrue(); score.Value.ShouldBe(5); result = scoreStateManager.BackToPrevious(); result.ShouldBeTrue(); score.Value.ShouldBe(2); result = scoreStateManager.BackToPrevious(); result.ShouldBeFalse(); score.Value.ShouldBe(2); }
public void ShouldCreateScoreStateManager() { var setting = new FieldSetting(); var scoreStateManager = new ScoreStateManager(new Score(setting), 2); scoreStateManager.ShouldNotBeNull(); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var binaryFieldSettingSource = (BinaryFieldSetting)source; IsText = binaryFieldSettingSource.IsText; }
private void AddFieldInternal(FieldSetting fieldSetting) { if (string.IsNullOrEmpty(this.AspectDefinition)) { this.AspectDefinition = DefaultAspectDefinition; } fieldSetting.Aspect = this; DeleteFieldInternal(fieldSetting.Name); var doc = new XmlDocument(); doc.LoadXml(this.AspectDefinition); var nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("x", AspectDefinitionXmlNamespace); var fields = doc.DocumentElement.SelectSingleNode("/x:AspectDefinition/x:Fields", nsmgr); using (var writer = fields.CreateNavigator().AppendChild()) { fieldSetting.WriteXml(writer); } this.AspectDefinition = doc.OuterXml; }
private ContentListType ManageContentListTypeOneAttempt(Dictionary <string, FieldDescriptor> fieldInfoList, Dictionary <string, List <string> > oldBindings, bool modify, out List <FieldSetting> fieldSettings) { fieldSettings = new List <FieldSetting>(); if (!modify) { // Load foreach (string name in fieldInfoList.Keys) { fieldSettings.Add(FieldSetting.Create(fieldInfoList[name], oldBindings[name], null)); } return(this.ContentListType); } SchemaEditor editor = new SchemaEditor(); editor.Load(); bool hasChanges = false; var listType = this.ContentListType; Dictionary <string, List <string> > newBindings = new Dictionary <string, List <string> >(); SlotTable slotTable = new SlotTable(oldBindings); if (listType == null) { // new listType = editor.CreateContentListType(Guid.NewGuid().ToString()); foreach (string name in fieldInfoList.Keys) { fieldSettings.Add(CreateNewFieldType(fieldInfoList[name], newBindings, listType, slotTable, editor)); } hasChanges = true; } else { // merge listType = editor.ContentListTypes[listType.Name]; hasChanges |= RemoveUnusedFields(fieldInfoList, oldBindings, listType, editor); foreach (string name in fieldInfoList.Keys) { FieldSetting origField = GetFieldTypeByName(name, _fieldSettings); if (origField == null) { fieldSettings.Add(CreateNewFieldType(fieldInfoList[name], newBindings, listType, slotTable, editor)); hasChanges = true; } else { List <string> bindList = new List <string>(origField.Bindings.ToArray()); fieldSettings.Add(FieldSetting.Create(fieldInfoList[name], bindList, null)); newBindings.Add(name, bindList); } } } if (hasChanges) { editor.Register(); } this.ContentListBindings = newBindings; return(ActiveSchema.ContentListTypes[listType.Name]); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var colorFieldSettingSource = (ColorFieldSetting)source; Palette = colorFieldSettingSource.Palette; }
public FieldMetadata(bool canRead, bool canWrite, string fieldName, string fieldDisplayName, FieldSetting fieldSetting) { this.CanRead = canRead; this.CanWrite = canWrite; this.FieldName = fieldName; this.DisplayName = fieldDisplayName; this.FieldSetting = fieldSetting; }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var currentSource = (CurrencyFieldSetting)source; Format = currentSource.Format; }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var etSource = (HyperLinkFieldSetting)source; UrlFormat = etSource.UrlFormat; }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var shortTextFieldSettingSource = (ShortTextFieldSetting)source; Regex = shortTextFieldSettingSource.Regex; }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var fsSource = (XmlFieldSetting)source; ExpectedXmlNamespace = fsSource.ExpectedXmlNamespace; }
public void DeleteField(FieldSetting fieldSetting) { //do not throw an exception, if field does not exist if (FieldExists(fieldSetting)) { DeleteFieldInternal(fieldSetting); } }
public FieldSettingContent(FieldSetting fieldSetting, ContentType contentType) : this(Repository.Root, GetNodeTypeName(fieldSetting)) { this.FieldSetting = fieldSetting; this.ContentType = contentType; this.Name = this.FieldSetting.Name; this._isNew = false; }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var shortTextFieldSettingSource = (ShortTextFieldSetting) source; Regex = shortTextFieldSettingSource.Regex; }
private bool FieldExists(FieldSetting fieldSetting) { if (fieldSetting == null || fieldSetting.Name == null) { return(false); } return(this.ContentListBindings.Keys.Contains(fieldSetting.Name)); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var textFieldSettingSource = (TextFieldSetting)source; MaxLength = textFieldSettingSource.MaxLength; MinLength = textFieldSettingSource.MinLength; }
/// <summary> /// Adds one or more new fields to this instance or replaces existing ones and saves the modifications. /// </summary> /// <param name="fieldInfos">Array of <see cref="Schema.FieldInfo"/>s that will be added.</param> public void AddFields(params SenseNet.ContentRepository.Schema.FieldInfo[] fieldInfos) { foreach (var fieldInfo in fieldInfos) { AddFieldInternal(FieldSetting.Create(fieldInfo, this)); } Build(); Save(); }
//================================================================= Constructors public FieldSettingContent(FieldSetting fieldSetting, ContentList contentList) : this(contentList ?? Repository.Root as Node, GetNodeTypeName(fieldSetting)) { this.FieldSetting = fieldSetting; this.ContentList = contentList; this.AddToDefaultView = false; this.Name = this.FieldSetting.Name; this._isNew = false; }
public static MessageDescriptor<Room> CreateDescriptor() { FieldSetting<Room>[] settings = new FieldSetting<Room>[] { FieldSetting<Room>.CreateInt32(1, x => x.Capacity, (x, y) => x.Capacity = y), FieldSetting<Room>.CreateString(2, x => x.Name, (x, y) => x.Name = y), FieldSetting<Room>.CreateMessageArray(3, x => x.People, (x, y) => x.People.Add(y), Person.CreateDescriptor()) }; return MessageDescriptor<Room>.Create(settings); }
public static MessageDescriptor<Test.Mess> CreateMessAllPackedDescriptor() { FieldSetting<Test.Mess>[] settings = new FieldSetting<Test.Mess>[] { FieldSetting<Test.Mess>.CreateDouble(Test.Mess.DoubleValFieldNumber, x => x.DoubleVal, (x, y) => x.DoubleVal = y), FieldSetting<Test.Mess>.CreateFloat(Test.Mess.FloatValFieldNumber, x => x.FloatVal, (x, y) => x.FloatVal = y), FieldSetting<Test.Mess>.CreateInt32(Test.Mess.Int32ValFieldNumber, x => x.Int32Val, (x, y) => x.Int32Val = y), FieldSetting<Test.Mess>.CreateInt64(Test.Mess.Int64ValFieldNumber, x => x.Int64Val, (x, y) => x.Int64Val = y), FieldSetting<Test.Mess>.CreateUInt32(Test.Mess.UInt32ValFieldNumber, x => x.UInt32Val, (x, y) => x.UInt32Val = y), FieldSetting<Test.Mess>.CreateUInt64(Test.Mess.UInt64ValFieldNumber, x => x.UInt64Val, (x, y) => x.UInt64Val = y), FieldSetting<Test.Mess>.CreateSInt32(Test.Mess.SInt32ValFieldNumber, x => x.SInt32Val, (x, y) => x.SInt32Val = y), FieldSetting<Test.Mess>.CreateSInt64(Test.Mess.SInt64ValFieldNumber, x => x.SInt64Val, (x, y) => x.SInt64Val = y), FieldSetting<Test.Mess>.CreateFixed32(Test.Mess.Fixed32ValFieldNumber, x => x.Fixed32Val, (x, y) => x.Fixed32Val = y), FieldSetting<Test.Mess>.CreateFixed64(Test.Mess.Fixed64ValFieldNumber, x => x.Fixed64Val, (x, y) => x.Fixed64Val = y), FieldSetting<Test.Mess>.CreateSFixed32(Test.Mess.SFixed32ValFieldNumber, x => x.SFixed32Val, (x, y) => x.SFixed32Val = y), FieldSetting<Test.Mess>.CreateSFixed64(Test.Mess.SFixed64ValFieldNumber, x => x.SFixed64Val, (x, y) => x.SFixed64Val = y), FieldSetting<Test.Mess>.CreateBool(Test.Mess.BoolValFieldNumber, x => x.BoolVal, (x, y) => x.BoolVal = y), FieldSetting<Test.Mess>.CreateString(Test.Mess.StringValFieldNumber, x => x.StringVal, (x, y) => x.StringVal = y), FieldSetting<Test.Mess>.CreateBytes(Test.Mess.BytesValFieldNumber, x => x.BytesVal.ToByteArray(), (x, y) => x.BytesVal = ByteString.CopyFrom(y)), FieldSetting<Test.Mess>.CreateDoublePackedArray(Test.Mess.DoubleArrFieldNumber, x => x.DoubleArr, (x, y) => x.DoubleArr.Add(y)), FieldSetting<Test.Mess>.CreateFloatPackedArray(Test.Mess.FloatArrFieldNumber, x => x.FloatArr, (x, y) => x.FloatArr.Add(y)), FieldSetting<Test.Mess>.CreateInt32PackedArray(Test.Mess.Int32ArrFieldNumber, x => x.Int32Arr, (x, y) => x.Int32Arr.Add(y)), FieldSetting<Test.Mess>.CreateInt64PackedArray(Test.Mess.Int64ArrFieldNumber, x => x.Int64Arr, (x, y) => x.Int64Arr.Add(y)), FieldSetting<Test.Mess>.CreateUInt32PackedArray(Test.Mess.UInt32ArrFieldNumber, x => x.UInt32Arr, (x, y) => x.UInt32Arr.Add(y)), FieldSetting<Test.Mess>.CreateUInt64PackedArray(Test.Mess.UInt64ArrFieldNumber, x => x.UInt64Arr, (x, y) => x.UInt64Arr.Add(y)), FieldSetting<Test.Mess>.CreateSInt32PackedArray(Test.Mess.SInt32ArrFieldNumber, x => x.SInt32Arr, (x, y) => x.SInt32Arr.Add(y)), FieldSetting<Test.Mess>.CreateSInt64PackedArray(Test.Mess.SInt64ArrFieldNumber, x => x.SInt64Arr, (x, y) => x.SInt64Arr.Add(y)), FieldSetting<Test.Mess>.CreateFixed32PackedArray(Test.Mess.Fixed32ArrFieldNumber, x => x.Fixed32Arr, (x, y) => x.Fixed32Arr.Add(y)), FieldSetting<Test.Mess>.CreateFixed64PackedArray(Test.Mess.Fixed64ArrFieldNumber, x => x.Fixed64Arr, (x, y) => x.Fixed64Arr.Add(y)), FieldSetting<Test.Mess>.CreateSFixed32PackedArray(Test.Mess.SFixed32ArrFieldNumber, x => x.SFixed32Arr, (x, y) => x.SFixed32Arr.Add(y)), FieldSetting<Test.Mess>.CreateSFixed64PackedArray(Test.Mess.SFixed64ArrFieldNumber, x => x.SFixed64Arr, (x, y) => x.SFixed64Arr.Add(y)), FieldSetting<Test.Mess>.CreateBoolPackedArray(Test.Mess.BoolArrFieldNumber, x => x.BoolArr, (x, y) => x.BoolArr.Add(y)), FieldSetting<Test.Mess>.CreateStringArray(Test.Mess.StringArrFieldNumber, x => x.StringArr, (x, y) => x.StringArr.Add(y)), FieldSetting<Test.Mess>.CreateBytesArray(Test.Mess.BytesArrFieldNumber, x => x.BytesArr.Select(y => y.ToByteArray()), (x, y) => x.BytesArr.Add(ByteString.CopyFrom(y))), FieldSetting<Test.Mess>.CreateDoublePackedArray(Test.Mess.DoublePackedFieldNumber, x => x.DoublePacked, (x, y) => x.DoublePacked.Add(y)), FieldSetting<Test.Mess>.CreateFloatPackedArray(Test.Mess.FloatPackedFieldNumber, x => x.FloatPacked, (x, y) => x.FloatPacked.Add(y)), FieldSetting<Test.Mess>.CreateInt32PackedArray(Test.Mess.Int32PackedFieldNumber, x => x.Int32Packed, (x, y) => x.Int32Packed.Add(y)), FieldSetting<Test.Mess>.CreateInt64PackedArray(Test.Mess.Int64PackedFieldNumber, x => x.Int64Packed, (x, y) => x.Int64Packed.Add(y)), FieldSetting<Test.Mess>.CreateUInt32PackedArray(Test.Mess.UInt32PackedFieldNumber, x => x.UInt32Packed, (x, y) => x.UInt32Packed.Add(y)), FieldSetting<Test.Mess>.CreateUInt64PackedArray(Test.Mess.UInt64PackedFieldNumber, x => x.UInt64Packed, (x, y) => x.UInt64Packed.Add(y)), FieldSetting<Test.Mess>.CreateSInt32PackedArray(Test.Mess.SInt32PackedFieldNumber, x => x.SInt32Packed, (x, y) => x.SInt32Packed.Add(y)), FieldSetting<Test.Mess>.CreateSInt64PackedArray(Test.Mess.SInt64PackedFieldNumber, x => x.SInt64Packed, (x, y) => x.SInt64Packed.Add(y)), FieldSetting<Test.Mess>.CreateFixed32PackedArray(Test.Mess.Fixed32PackedFieldNumber, x => x.Fixed32Packed, (x, y) => x.Fixed32Packed.Add(y)), FieldSetting<Test.Mess>.CreateFixed64PackedArray(Test.Mess.Fixed64PackedFieldNumber, x => x.Fixed64Packed, (x, y) => x.Fixed64Packed.Add(y)), FieldSetting<Test.Mess>.CreateSFixed32PackedArray(Test.Mess.SFixed32PackedFieldNumber, x => x.SFixed32Packed, (x, y) => x.SFixed32Packed.Add(y)), FieldSetting<Test.Mess>.CreateSFixed64PackedArray(Test.Mess.SFixed64PackedFieldNumber, x => x.SFixed64Packed, (x, y) => x.SFixed64Packed.Add(y)), FieldSetting<Test.Mess>.CreateBoolPackedArray(Test.Mess.BoolPackedFieldNumber, x => x.BoolPacked, (x, y) => x.BoolPacked.Add(y)), }; return MessageDescriptor<Test.Mess>.Create(settings); }
public static MessageDescriptor<Person> CreateDescriptor() { FieldSetting<Person>[] settings = new FieldSetting<Person>[] { FieldSetting<Person>.CreateInt32(1, x => x.Age, (x, y) => x.Age = y), FieldSetting<Person>.CreateInt32(2, x => x.Height, (x, y) => x.Height = y), FieldSetting<Person>.CreateDouble(3, x => x.Weight, (x, y) => x.Weight = y), FieldSetting<Person>.CreateString(4, x => x.Name, (x, y) => x.Name = y), FieldSetting<Person>.CreateString(5, x => x.Phone, (x, y) => x.Phone = y, x => x.Phone != null) }; return MessageDescriptor<Person>.Create(settings); }
private void AddFieldInternal(FieldSetting fieldSetting) { if (string.IsNullOrEmpty(this.ContentListDefinition)) this.ContentListDefinition = DefaultContentListDefinition; var doc = new XmlDocument(); doc.LoadXml(this.ContentListDefinition); var nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("x", ContentListDefinitionXmlNamespace); var fields = doc.DocumentElement.SelectSingleNode("/x:ContentListDefinition/x:Fields", nsmgr); using (var writer = fields.CreateNavigator().AppendChild()) { fieldSetting.WriteXml(writer); } this.ContentListDefinition = doc.OuterXml; this.Save(); }
private static int CompareFields(FieldSetting x, FieldSetting y) { var left = x.DisplayName ?? string.Empty; var right = y.DisplayName ?? string.Empty; return left.CompareTo(right); }
private bool FieldExists(FieldSetting fieldSetting) { if (fieldSetting == null || fieldSetting.Name == null) return false; return this.ContentListBindings.Keys.Contains(fieldSetting.Name); }
private void DeleteFieldInternal(FieldSetting fieldSetting, bool saveImmediately) { XmlDocument doc; var node = FindFieldXmlNode(fieldSetting.Name, out doc); if (node == null) return; node.ParentNode.RemoveChild(node); this.ContentListDefinition = doc.OuterXml; if (!saveImmediately) return; this.Save(); }
private void DeleteFieldInternal(FieldSetting fieldSetting) { DeleteFieldInternal(fieldSetting, true); }
public void DeleteField(FieldSetting fieldSetting) { //do not throw an exception, if field does not exist if (FieldExists(fieldSetting)) DeleteFieldInternal(fieldSetting); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var fsSource = (LongTextFieldSetting)source; TextType = fsSource.TextType; Rows = fsSource.Rows; AppendModifications = fsSource.AppendModifications; }
public void AddField(FieldSetting fieldSetting) { if (fieldSetting == null) throw new ArgumentNullException("fieldSetting"); if (FieldExists(fieldSetting)) throw new ArgumentException("Existing list field: " + fieldSetting.Name); AddFieldInternal(fieldSetting); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var etSource = (DateTimeFieldSetting)source; DateTimeMode = etSource.DateTimeMode; Precision = etSource.Precision; }
private static int CompareFields(FieldSetting x, FieldSetting y) { return x.DisplayName.CompareTo(y.DisplayName); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var refFieldSetting = (ReferenceFieldSetting) source; AllowMultiple = refFieldSetting.AllowMultiple; Query = refFieldSetting.Query; if (refFieldSetting.AllowedTypes != null) AllowedTypes = new List<string>(refFieldSetting.AllowedTypes); if (refFieldSetting.SelectionRoots != null) SelectionRoots = new List<string>(refFieldSetting.SelectionRoots); }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { var fields = new ArrayList(); //List of columns that contains URLs foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldTitle = row[FieldsTableColumn.Title].ToString(); var fieldSetting = new FieldSetting { FormatString = row[FieldsTableColumn.OutputSettings].AsString("d"), Title = fieldTitle }; fields.Add(fieldSetting); var localizedValueColumnName = fieldTitle + DataTableColumn.Appendix_LocalizedValue; ds.Tables[DataSetTableName.Data].Columns.Add(localizedValueColumnName, typeof (string)); ds.Tables[DataSetTableName.Data].Columns.Add(fieldTitle + DataTableColumn.Appendix_Ticks, typeof (long)); row[FieldsTableColumn.ValueColumn] = XmlConvert.EncodeName(localizedValueColumnName); } } foreach (DataRow row in ds.Tables[DataSetTableName.Data].Rows) { foreach (FieldSetting field in fields) { if (Information.IsDate(row[field.Title])) { var d = Convert.ToDateTime(row[field.Title]); var format = "<!--{0:000000000000}-->{1:" + field.FormatString + "}"; row[field.Title + DataTableColumn.Appendix_LocalizedValue] = string.Format(format, d.Ticks/10000000, d); row[field.Title + DataTableColumn.Appendix_Ticks] = d.Ticks; } } } }
private static void CheckReference(PropertyInfo propInfo, Type[] type, ContentType cts, FieldSetting fs) { if (propInfo.PropertyType == (typeof(Node))) return; if (propInfo.PropertyType.IsSubclassOf(typeof(Node))) return; if (typeof(System.Collections.IEnumerable).IsAssignableFrom(propInfo.PropertyType)) return; //if (propInfo.PropertyType == typeof(System.Collections.IEnumerable)) // return; //if (propInfo.PropertyType.Name == "IEnumerable`1") // return; //if (propInfo.PropertyType.Name == "NodeList`1") // return; throw new NotSupportedException(String.Format(CultureInfo.InvariantCulture, SR.Exceptions.Registration.Msg_InvalidReferenceField_2, cts.Name, fs.Name)); }
public void AddOrUpdateField(FieldSetting fieldSetting) { if (fieldSetting == null) throw new ArgumentNullException("fieldSetting"); if (FieldExists(fieldSetting)) UpdateFieldInternal(fieldSetting); else AddFieldInternal(fieldSetting); }
public void UpdateField(FieldSetting fieldSetting) { if (fieldSetting == null) throw new ArgumentNullException("fieldSetting"); if (!FieldExists(fieldSetting)) throw new ArgumentException("List field does not exist: " + fieldSetting.Name); foreach (var fs in this.FieldSettings) { if (fs.Name.CompareTo(fieldSetting.Name) != 0) continue; if (fs.ShortName.CompareTo(fieldSetting.ShortName) != 0) throw new ArgumentException(string.Format("List field types does not match: {0}, {1}", fs.ShortName, fieldSetting.ShortName)); break; } UpdateFieldInternal(fieldSetting); }
private void UpdateFieldInternal(FieldSetting fieldSetting) { XmlDocument doc; var node = FindFieldXmlNode(fieldSetting.Name, out doc); var fields = node.ParentNode; fields.RemoveChild(node); using (var writer = fields.CreateNavigator().AppendChild()) { fieldSetting.WriteXml(writer); } this.ContentListDefinition = doc.OuterXml; this.Save(); }
protected override void CopyPropertiesFrom(FieldSetting source) { base.CopyPropertiesFrom(source); var pwdFieldSetting = (PasswordFieldSetting)source; ReenterTitle = pwdFieldSetting.ReenterTitle; ReenterDescription = pwdFieldSetting.ReenterDescription; PasswordHistoryLength = pwdFieldSetting.PasswordHistoryLength; }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { if (ds != null) { var fields = new ArrayList(); var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int)row[FieldsTableColumn.Id]; var field = new FieldSetting { Title = row[FieldsTableColumn.Title].ToString(), TokenText = GetFieldSetting("TokenText", fieldId, ds).AsString(), ShowUserName = GetFieldSetting("ShowUserName", fieldId, ds).AsBoolean(), OpenInNewWindow = GetFieldSetting("OpenInNewWindow", fieldId, ds).AsBoolean() }; fields.Add(field); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Url,typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original,typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Caption,typeof (string))); } } if (fields.Count > 0) { PortalSettings portalSettings = null; if (HttpContext.Current != null) { portalSettings = PortalController.GetCurrentPortalSettings(); } var mc = new ModuleController(); var settings = mc.GetModuleSettings(moduleId); foreach (DataRow row in tableData.Rows) { foreach (FieldSetting field in fields) { var strFieldvalue = string.Empty; //Link showed to the user var link = row[field.Title].ToString(); //set caption: var caption = field.TokenText; var url = string.Empty; //Link readable by browsers link = UrlUtil.StripURL(link); if (link != string.Empty) //valid link { //var isLink = true; var intUser = Convert.ToInt32(-1); if (link.Like( "userid=*") && portalSettings != null) { try { intUser = int.Parse(link.Substring(7)); tokenReplace.User = new UserController().GetUser(portalSettings.PortalId, intUser); } catch { } } if (intUser == -1) { tokenReplace.User = new UserInfo {Username = "******"}; } if (caption == string.Empty) { caption = field.ShowUserName ? "[User:DisplayName]" : "[User:UserName]"; } caption = tokenReplace.ReplaceEnvironmentTokens(caption, row); if (caption == string.Empty) //DisplayName empty { caption = tokenReplace.ReplaceEnvironmentTokens("[User:username]"); } url = HttpUtility.HtmlEncode(Globals.LinkClick(link, portalSettings.ActiveTab.TabID, moduleId)); strFieldvalue = string.Format("<!--{1}--><a href=\"{0}\"{2}>{1}</a>", url, caption, (field.OpenInNewWindow ? " target=\"_blank\"" : "")); } row[field.Title] = strFieldvalue; row[field.Title + DataTableColumn.Appendix_Original] = link; row[field.Title + DataTableColumn.Appendix_Url] = url; row[field.Title + DataTableColumn.Appendix_Caption] = caption; } } } } }