public FieldGenerator(IUnityContainer container) { _container = container; _fieldSettings = _container.Resolve <FieldSettings>(); _neighbourBombCalculator = container.Resolve <INeighbourMinesCalculator>(); _bombSetter = container.Resolve <IMineSetter>(); }
private void DgContents_ItemDataBound(object sender, DataGridItemEventArgs e) { if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } var fieldInfo = (FieldInfo)e.Item.DataItem; var settings = new FieldSettings(fieldInfo.Settings); var ltlTitle = (Literal)e.Item.FindControl("ltlTitle"); var ltlDescription = (Literal)e.Item.FindControl("ltlDescription"); var ltlFieldType = (Literal)e.Item.FindControl("ltlFieldType"); var ltlValidate = (Literal)e.Item.FindControl("ltlValidate"); var ltlActions = (Literal)e.Item.FindControl("ltlActions"); ltlTitle.Text = fieldInfo.Title; ltlDescription.Text = fieldInfo.Description; ltlFieldType.Text = FieldTypeUtils.GetText(FieldTypeUtils.GetEnumType(fieldInfo.FieldType)); ltlValidate.Text = ValidateTypeUtils.GetValidateInfo(settings.IsRequired, settings.MinNum, settings.MaxNum, settings.ValidateType); ltlActions.Text = $@" <a class=""m-r-10"" href=""{PageFieldsUrl}&taxis={true}&direction=Up&fieldId={fieldInfo.Id}"">上升</a> <a class=""m-r-10"" href=""{PageFieldsUrl}&taxis={true}&direction=Down&fieldId={fieldInfo.Id}"">下降</a> <a class=""m-r-10"" href=""javascript:;"" onclick=""{ModalFieldAdd.GetOpenScript(SiteId, FormInfo.Id, fieldInfo.Id)}"">编辑</a> <a class=""m-r-10"" href=""javascript:;"" onclick=""{ModalFieldValidate.GetOpenScript(SiteId, FormInfo.Id, fieldInfo.Id)}"">验证规则</a> <a class=""m-r-10"" href=""{PageFieldsUrl}&delete={true}&fieldId={fieldInfo.Id}"">删除</a>"; }
private void Generate_Z_Mines_InXxYField(int rowCount, int columnCount, int mines) { // Arrange IUnityContainer container = new UnityContainer(); FieldSettings fieldSettings = new FieldSettings() { Mines = mines, Rows = rowCount, Columns = columnCount }; container.RegisterInstance(fieldSettings); container.RegisterType <IMineSetter, MineSetter>(); container.RegisterType <INeighbourMinesCalculator, NeighbourMinesCalculator>(); var fieldGenerator = new FieldGenerator(container); // Act fieldGenerator.Generate(); var field = container.Resolve <Field>(); int minesCount = 0; for (int columnIndex = 0; columnIndex < field.Columns; columnIndex++) { for (int rowIndex = 0; rowIndex < field.Rows; rowIndex++) { if (field[columnIndex, rowIndex].IsMine) { minesCount++; } } } // Assert Assert.IsTrue(minesCount == mines); }
public void Submit_OnClick(object sender, EventArgs e) { foreach (ListItem item in CblDisplayAttributes.Items) { foreach (var fieldInfo in _fieldInfoList) { if (fieldInfo.Title != item.Value) { continue; } var settings = new FieldSettings(fieldInfo.Settings); if (settings.IsVisibleInList != item.Selected) { settings.IsVisibleInList = item.Selected; fieldInfo.Settings = settings.ToString(); Main.Instance.FieldDao.Update(fieldInfo); } break; } } LayerUtils.Close(Page); }
public void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } var fieldId = Utils.ToInt(Request.QueryString["fieldId"]); var fieldInfo = Main.Instance.FieldDao.GetFieldInfo(fieldId, false); var settings = new FieldSettings(fieldInfo.Settings); Utils.SelectSingleItem(DdlIsRequired, settings.IsRequired.ToString()); if (Utils.EqualsIgnoreCase(fieldInfo.FieldType, InputType.Text.Value) || Utils.EqualsIgnoreCase(fieldInfo.FieldType, InputType.TextArea.Value)) { PhNum.Visible = PhValidateType.Visible = true; } else { PhNum.Visible = PhValidateType.Visible = false; } TbMinNum.Text = settings.MinNum.ToString(); TbMaxNum.Text = settings.MaxNum.ToString(); ValidateTypeUtils.AddListItems(DdlValidateType); Utils.SelectSingleItem(DdlValidateType, settings.ValidateType.Value); }
public static string ParseText(FieldInfo fieldInfo, FieldSettings settings) { var vValidate = string.Empty; if (settings.IsValidate) { var validateList = new List <string>(); if (settings.IsRequired) { validateList.Add("required"); } if (settings.ValidateType == ValidateType.Integer) { validateList.Add("digits"); } else if (settings.ValidateType == ValidateType.Email) { validateList.Add("email"); } if (validateList.Count > 0) { vValidate = $@"v-validate=""'{string.Join("|", validateList)}'"""; } } return ($@"<input v-model=""attributes.{fieldInfo.AttributeName}"" name=""{fieldInfo.AttributeName}"" {vValidate} :class=""{{'error': errors.has('{fieldInfo.AttributeName}') }}"" type=""text"" />"); //return $@"<input id=""{fieldInfo.AttributeName}"" name=""{fieldInfo.AttributeName}"" type=""text"" class=""form-control"" value=""{fieldInfo.AttributeValue}"" {validateAttributes} />"; }
public void BtnValidate_OnClick(object sender, EventArgs e) { var isChanged = false; var fieldId = Convert.ToInt32(Request.QueryString["fieldId"]); var fieldInfo = Main.FieldDao.GetFieldInfo(fieldId, false); var settings = new FieldSettings(fieldInfo.FieldSettings) { IsValidate = Convert.ToBoolean(DdlIsValidate.SelectedValue), IsRequired = Convert.ToBoolean(DdlIsRequired.SelectedValue), MinNum = Convert.ToInt32(TbMinNum.Text), MaxNum = Convert.ToInt32(TbMaxNum.Text), ValidateType = ValidateTypeUtils.GetEnumType(DdlValidateType.SelectedValue), ErrorMessage = TbErrorMessage.Text }; fieldInfo.FieldSettings = settings.ToString(); try { Main.FieldDao.Update(fieldInfo); isChanged = true; } catch (Exception ex) { LtlModalValidateMessage.Text = Utils.GetMessageHtml($"设置表单验证失败:{ex.Message}", false); } if (isChanged) { Response.Redirect(PageUrl); } }
private static string ParseRadio(FieldInfo fieldInfo, FieldSettings settings) { var builder = new StringBuilder(); var items = fieldInfo.Items ?? new List <FieldItemInfo>(); var radioButtonList = new RadioButtonList { RepeatLayout = RepeatLayout.UnorderedList, ID = fieldInfo.AttributeName, }; radioButtonList.Attributes.Add("style", "list-style: none;"); var selectedValue = !string.IsNullOrEmpty(fieldInfo.AttributeValue) ? fieldInfo.AttributeValue : string.Empty; //验证属性 ValidateTypeUtils.GetValidateAttributesForListItem(radioButtonList, settings.IsValidate, fieldInfo.DisplayName, settings.IsRequired, settings.MinNum, settings.MaxNum, settings.ValidateType, settings.ErrorMessage); foreach (var item in items) { bool isSelected = item.Value == selectedValue; var listItem = new ListItem(item.Value, item.Value) { Selected = isSelected }; radioButtonList.Items.Add(listItem); } radioButtonList.Attributes.Add("isListItem", "true"); builder.Append(Utils.GetControlRenderHtml(radioButtonList)); return(builder.ToString()); }
public void NewGame(FieldSettings fieldSettings) { _container.RegisterInstance(fieldSettings); var fieldGenerator = _container.Resolve <IFieldGenerator>(); fieldGenerator.Generate(); }
public void BtnValidate_OnClick(object sender, EventArgs e) { var isChanged = false; var fieldId = Utils.ToInt(Request.QueryString["fieldId"]); var fieldInfo = Main.Instance.FieldDao.GetFieldInfo(fieldId, false); var settings = new FieldSettings(fieldInfo.Settings) { IsRequired = Convert.ToBoolean(DdlIsRequired.SelectedValue), MinNum = Utils.ToInt(TbMinNum.Text), MaxNum = Utils.ToInt(TbMaxNum.Text), ValidateType = ValidateTypeUtils.GetEnumType(DdlValidateType.SelectedValue) }; fieldInfo.Settings = settings.ToString(); try { Main.Instance.FieldDao.Update(fieldInfo); isChanged = true; } catch (Exception ex) { LtlMessage.Text = Utils.GetMessageHtml($"设置表单验证失败:{ex.Message}", false); } if (isChanged) { LayerUtils.Close(Page); } }
public void Simple3x3FieldWith1MineInMiddle() { // Arrange IUnityContainer container = new UnityContainer(); FieldSettings fieldSettings = new FieldSettings() { Mines = 1, Rows = 3, Columns = 3 }; container.RegisterInstance(fieldSettings); container.RegisterType <IMineSetter, MineSetter3x3With1Mine>(); container.RegisterType <INeighbourMinesCalculator, NeighbourMinesCalculator>(); var fieldGenerator = new FieldGenerator(container); // Act fieldGenerator.Generate(); var field = container.Resolve <Field>(); // Assert int[,] solution = new int[, ] { { 1, 1, 1 }, { 1, 0, 1 }, { 1, 1, 1 } }; for (int columnIndex = 0; columnIndex < field.Columns; columnIndex++) { for (int rowIndex = 0; rowIndex < field.Rows; rowIndex++) { Assert.IsTrue(field[columnIndex, rowIndex].NeighbourMines == solution[columnIndex, rowIndex]); } } }
private static StringBuilder GetFieldValueElement(FieldSettings field, object fieldValue, int rowNumber) { StringBuilder sb = null; switch (field.FieldType) { case FieldType.Attachment: #region AttachmentFieldValue attachmentFieldValue = fieldValue as AttachmentFieldValue; if (attachmentFieldValue != null && attachmentFieldValue.AttachmentsProvider != null) { sb = new StringBuilder(); sb.AppendFormat("<mapping:AttachmentsPanel Grid.Column=\"2\" Grid.Row=\"{0}\" FieldValue=\"{{Binding PopupItem.Graphic.Attributes[{1}]}}\" />", rowNumber, field.Name); } #endregion break; case FieldType.Entity: case FieldType.Hyperlink: #region sb = new StringBuilder(); sb.AppendFormat(@"<StackPanel Grid.Column=""2"" Grid.Row=""{0}"" Orientation=""Vertical"" VerticalAlignment=""Center"" Margin=""5,2"" >", rowNumber); sb.AppendFormat("<HyperlinkButton NavigateUri=\"{{Binding PopupItem, Converter={{StaticResource UrlLocationAttributeConverter}}, ConverterParameter={0}}}\" TargetName=\"_blank\" Background=\"Transparent\" VerticalAlignment=\"Top\" >", field.Name); sb.AppendFormat("<TextBlock Text=\"{{Binding PopupItem, Converter={{StaticResource UrlDescriptionAttributeConverter}}, ConverterParameter={0}}}\" FontWeight=\"Normal\" Margin=\"0,0,0,5\" HorizontalAlignment=\"Left\" VerticalAlignment=\"Top\" TextWrapping=\"Wrap\" Foreground=\"Blue\" TextDecorations=\"Underline\" />", field.Name); sb.Append("</HyperlinkButton>"); sb.Append("</StackPanel>"); #endregion break; case FieldType.Image: #region sb = new StringBuilder(); sb.AppendFormat(@"<StackPanel Grid.Column=""2"" Grid.Row=""{0}"" Orientation=""Vertical"">", rowNumber); sb.AppendFormat("<Image Margin=\"8, -2, 5, 5\" Source=\"{{Binding PopupItem, Converter={{StaticResource UrlLocationAttributeConverter}}, ConverterParameter={0}}}\" ToolTipService.ToolTip=\"{{Binding PopupItem, Converter={{StaticResource UrlDescriptionAttributeConverter}}, ConverterParameter={1}}}\" />", field.Name, field.Name); sb.Append("</StackPanel>"); #endregion break; default: #region sb = new StringBuilder(); if (!string.IsNullOrEmpty(field.Name)) { sb.AppendFormat(@"<mapping:HyperlinkOrTextBlock Grid.Column=""2"" Grid.Row=""{0}"" Margin=""5,2"" FieldValue=""{{Binding PopupItem, Converter={{StaticResource LabelAttributeConverter}}, ConverterParameter={1} }}"" />", rowNumber, field.Name); } #endregion break; } return(sb); }
public void TestGetPropertiesAfterInstantiate() { var settings = new FieldSettings(10, 20, 5); Assert.AreEqual(10, settings.Width); Assert.AreEqual(20, settings.Height); Assert.AreEqual(5, settings.MineCount); }
private void customToolStripMenuItem_Click(object sender, EventArgs e) { var settingsForm = new CustomSettingsForm(_settings); settingsForm.ShowDialog(); _settings = SettingsLoader.TryLoadSettings(); StartNewGame(); }
public CustomSettingsForm(FieldSettings settings) { InitializeComponent(); MaximizeBox = false; widthTextBox.Text = settings.Columns.ToString(); heightTextBox.Text = settings.Rows.ToString(); minesTextBox.Text = settings.NumberOfMines.ToString(); }
public GameController(Game game, GameSettings gameSettings, FieldSettings fieldSettings, IHttpContextAccessor httpContextAccessor, ILogger <GameController> logger) { _fieldSettings = fieldSettings; _gameSettings = gameSettings; _game = game; _httpContextAccessor = httpContextAccessor; _logger = logger; }
public static IWrappedCommand CreateInsertAndGetID <T>(this ISqlCommandCreator creator, string tableName, T value, QueryOptions queryOptions, params string[] ignoreFields) { var c = (DbContext)creator; var settings = FieldSettings.FromType <T>(FromTypeOption.Default); var fields = settings.Select(x => x.Name).Except(ignoreFields.Select(x => x)).ToArray(); string query = ((SqlCommandTextGenerator)c.ContextProvider.CommandTextGenerator).InsertAndGetID(tableName, fields); return(c.CreateMapped(query, fields, settings, value, queryOptions)); }
public MainForm() { InitializeComponent(); MaximizeBox = false; _settings = SettingsLoader.TryLoadSettings(); _skin = new DefaultSkin(); SetFace(_skin.DefaultFace); InitializePlayer(); timeTimer.Enabled = true; }
public void ShouldThrowInvalidRowNumberException_WhenColumnsLessThanZero() { //arrange GameManager gameManager = new GameManager(); IFieldSettings fs = new FieldSettings(); fs.ColumnsNo = -1; //act gameManager.PopulateMineField(fs); }
public void ShouldThrowInvalidRowNumberException_WhenColumnsGreaterThanOneHundred() { //arrange GameManager gameManager = new GameManager(); IFieldSettings fs = new FieldSettings(); fs.ColumnsNo = 101; //act gameManager.PopulateMineField(fs); }
public MineField(int columns, int rows, int numberOfMines) { Columns = columns; Rows = rows; GameState = GameState.NotStarted; _mineCells = new MineCell[columns, rows]; MakeActionWithField((x, y) => _mineCells[x, y] = new MineCell()); _numberOfMines = numberOfMines; _gameWatch = new Stopwatch(); _cellsToOpen = Columns * Rows - _numberOfMines; FieldSettings = new FieldSettings(columns, rows, numberOfMines); }
public void ChangeFieldType(FieldSettings settingsField, Type fieldType, EventHandler <FieldMessageEventArgs> mainFieldMessageHandler) { Clear(); if (fieldType == null) { fieldType = FieldTypes[(UsedFieldTypeIndex++) % FieldTypes.Length]; } field = System.Activator.CreateInstance(fieldType) as IVisualField <Point2D, Box2D>; field.Message += mainFieldMessageHandler; field.Message += new EventHandler <FieldMessageEventArgs>(FieldMessageHandler); field.Initialize(settingsField); }
public void Initialize(FieldSettings settings) { SetFieldSettings(settings); collectionCells = new CellsCollection <TCell>(); countLabels = MineCount; int count = CellCount; InitializeCells(count); SetMines(count, countLabels); SetLinks(count); SetVisualParameters(); SendFieldMessage(FieldMessage.Initialized); SendFieldMessage(FieldMessage.RegenerationNeeded); }
private static FieldSettings ParseBaseFormFields(XElement element, FieldSettings field) { field.RoleName = element.GetString("rolename"); field.Name = element.GetString("name"); field.Title = element.GetString("title"); field.Info = element.GetString("info"); field.Condition = element.GetString("condition"); field.Disabled = element.GetBoolean("disabled"); field.SkipTitle = element.GetBoolean("skipTitle"); field.Readonly = element.GetBoolean("readonly"); field.PreValue = element.GetBoolean("prevalue"); field.Localizable = element.GetBoolean("localizable"); return(field); }
public void ShouldReturnMineField() { //arrange GameManager gameManager = new GameManager(); IFieldSettings fs = new FieldSettings(); fs.RowsNo = 5; fs.ColumnsNo = 6; //act char[,] inputField = gameManager.PopulateMineField(fs); //assert Assert.IsNotNull(inputField); }
private void RptLogs_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } var logInfo = (LogInfo)e.Item.DataItem; var ltlValues = (Literal)e.Item.FindControl("ltlValues"); var ltlAddDate = (Literal)e.Item.FindControl("ltlAddDate"); var ltlOperation = (Literal)e.Item.FindControl("ltlOperation"); foreach (var fieldInfo in _fieldInfoList) { var settings = new FieldSettings(fieldInfo.Settings); if (!settings.IsVisibleInList) { continue; } var values = logInfo.GetString(fieldInfo.Title) ?? string.Empty; if (FieldManager.IsExtra(fieldInfo)) { var builder = new StringBuilder(); foreach (var item in fieldInfo.Items) { var extras = logInfo.GetString(FieldManager.GetExtrasId(fieldInfo.Id, item.Id)); if (!string.IsNullOrEmpty(extras)) { builder.Append($@"<li class=""list-group-item""><label>{item.Value}:</label>{extras}</li>"); } } if (builder.Length > 0) { values += $@"<ul class=""list-group m-t-10"">{builder}</ul>"; } } ltlValues.Text += $@"<td style=""min-width: 120px;"">{values}</td>"; } ltlAddDate.Text = logInfo.AddDate.ToString("yyyy-MM-dd HH:mm"); ltlOperation.Text = $@" <a href=""javascript:;"" onclick=""{ModalView.GetOpenScript(SiteId, FormInfo.Id, logInfo.Id)}"">查看</a> <a class=""m-l-10"" href=""javascript:;"" onclick=""{AlertUtils.Warning("删除项目", "本操作将删除此项,确定吗?", "取 消", "删 除", $"location.href='{GetRedirectUrl(SiteId, FormInfo.Id, ReturnUrl)}&delete={true}&logId={logInfo.Id}'")};return false;"">删除</a>"; }
public void Page_Load(object sender, EventArgs e) { _fieldInfoList = Main.Instance.FieldDao.GetFieldInfoList(FormInfo.Id, false); if (IsPostBack) { return; } foreach (var fieldInfo in _fieldInfoList) { var listitem = new ListItem(fieldInfo.Title, fieldInfo.Title); var settings = new FieldSettings(fieldInfo.Settings); listitem.Selected = settings.IsVisibleInList; CblDisplayAttributes.Items.Add(listitem); } }
private void FieldGrid_CellContentClick(Object sender, DataGridViewCellEventArgs e) { DataEntityField field = this.FieldGrid.Rows[e.RowIndex].DataBoundItem as DataEntityField; if (e.RowIndex >= 0 && e.ColumnIndex == this.FieldEllipsisColumn.Index && !field.IsPrimaryKey) { FieldSettings fieldSettings = new FieldSettings(); fieldSettings.RelatedEntityDropdown.Items.Add(new { CodeName = "" }); fieldSettings.RelatedEntityDropdown.Items.AddRange(this.CurrentDatabase.Domains.SelectMany(domain => domain.Entities).OrderBy(ent => ent.ObjectName).ToArray()); fieldSettings.RelatedEntityDropdown.DisplayMember = "CodeName"; // Display the current settings in the UI fieldSettings.FieldType = field.CodeType; fieldSettings.FieldNameTextbox.Text = field.ObjectName; fieldSettings.ExposureDropdown.SelectedIndex = (Int32)field.CodeExposure; fieldSettings.RelatedEntityDropdown.SelectedItem = field.RelatedEntity; fieldSettings.RelatedFieldDropdown.SelectedItem = field.RelatedField; fieldSettings.RelatedFieldTextbox.Text = field.CodeHeader; fieldSettings.IsUniqueCheckbox.Checked = field.IsUnique; if (fieldSettings.ShowDialog() == DialogResult.OK) { field.CodeExposure = (DataEntityField.Exposure)fieldSettings.ExposureDropdown.SelectedIndex; field.IsUnique = fieldSettings.IsUniqueCheckbox.Checked; field.RelatedEntity = fieldSettings.RelatedEntityDropdown.SelectedIndex < 1 ? null : fieldSettings.RelatedEntityDropdown.SelectedItem as DataEntity; if (field.RelatedEntity == null) { field.RelatedField = null; field.CodeHeader = null; } else if (String.Equals(field.RelatedEntity.ObjectName, "Code", StringComparison.OrdinalIgnoreCase)) { field.RelatedField = null; field.CodeHeader = fieldSettings.RelatedFieldTextbox.Text; } else { field.RelatedField = fieldSettings.RelatedEntityDropdown.SelectedIndex < 1 ? null : fieldSettings.RelatedFieldDropdown.SelectedItem as DataEntityField; field.CodeHeader = null; } field.Save(); } } }
private static string ParseCheckBox(FieldInfo fieldInfo, FieldSettings settings) { var builder = new StringBuilder(); var items = fieldInfo.Items ?? new List <FieldItemInfo>(); var checkBoxList = new CheckBoxList { RepeatLayout = RepeatLayout.UnorderedList, ID = fieldInfo.AttributeName }; checkBoxList.Attributes.Add("style", "list-style: none;"); var selectedValues = !string.IsNullOrEmpty(fieldInfo.AttributeValue) ? fieldInfo.AttributeValue : string.Empty; var selectedValueArray = selectedValues.Split(','); //验证属性 ValidateTypeUtils.GetValidateAttributesForListItem(checkBoxList, settings.IsValidate, fieldInfo.DisplayName, settings.IsRequired, settings.MinNum, settings.MaxNum, settings.ValidateType, settings.ErrorMessage); foreach (var item in items) { var isSelected = selectedValueArray.Contains(item.Value); var listItem = new ListItem(item.Value, item.Value) { Selected = isSelected }; checkBoxList.Items.Add(listItem); } checkBoxList.Attributes.Add("isListItem", "true"); builder.Append(Utils.GetControlRenderHtml(checkBoxList)); var i = 0; foreach (var item in items) { builder.Replace($@"name=""{fieldInfo.AttributeName}${i}""", $@"name=""{fieldInfo.AttributeName}"" value=""{item.Value}"""); i++; } return(builder.ToString()); }
public System.Web.WebPages.HelperResult RenderPropertyView(FieldSettings settings) { #line default #line hidden return(new System.Web.WebPages.HelperResult(__razor_helper_writer => { #line 304 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml" Html.RenderPartial(string.Format("EditorTemplates/Collections/{0}", settings.Control), settings); //if (settings is StringSettings) //{ // @StringPropertyView((StringSettings)settings) //} //else if (settings is DateSettings) //{ // @DatePropertyView((DateSettings)settings) //} //else if (settings is TextareaSettings) //{ // @TextareaPropertyView((TextareaSettings)settings) //} //else if (settings is WysiwygSettings) //{ // @WysiwygPropertyView((WysiwygSettings)settings) //} //else if (settings is SelectSettings) //{ // @SelectPropertyView((SelectSettings)settings) //} //else if (settings is UploadFileSettings) //{ // @UploadFilePropertyView((UploadFileSettings)settings) //} #line default #line hidden })); #line 332 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml" }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { if (ds != null) { var fields = new ArrayList(); //List of columns that contains URLs 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 FieldSettings { Title = row[FieldsTableColumn.Title].ToString(), OutputFormat = row[FieldsTableColumn.OutputSettings].AsString(), Abbreviate = GetFieldSetting("Abbreviate", fieldId, ds).AsBoolean(), ShowOpenInNewWindow = GetFieldSetting("ShowOpenInNewWindow", fieldId, ds).AsBoolean(), EnforceDownload = GetFieldSetting("EnforceDownload", 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_Caption, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original, typeof (string))); } } if (fields.Count > 0) { var portalSettings = PortalController.GetCurrentPortalSettings(); foreach (DataRow row in tableData.Rows) { foreach (FieldSettings field in fields) { var strFieldvalue = string.Empty; var strFileId = row[field.Title].ToString(); var openInNewWindow = !field.ShowOpenInNewWindow || UrlUtil.OpenUrlInNewWindow(strFileId); strFileId = UrlUtil.StripURL(strFileId); var strUrl = ""; //Link readable by browsers var strCaption = string.Empty; if (strFileId != string.Empty) { strUrl = HttpUtility.HtmlEncode(Globals.LinkClick(strFileId, portalSettings.ActiveTab.TabID, moduleId)); var fName = ""; var strDisplayName = ""; if (strFileId.Like("FileID=*")) { var f =FileManager.Instance.GetFile(int.Parse(UrlUtils.GetParameterValue(strFileId))); if (f != null) { fName = f.FileName; if (field.Abbreviate) { strDisplayName = (f.Folder + fName); } else { strDisplayName = fName; } } } else { fName = Globals.ResolveUrl(strUrl); strDisplayName = field.Abbreviate ? fName.Substring(Convert.ToInt32(fName.LastIndexOf("/", StringComparison.Ordinal) + 1)) : fName; } strCaption = field.OutputFormat; strCaption = string.IsNullOrEmpty(strCaption) ? fName : tokenReplace.ReplaceEnvironmentTokens(strCaption, row); if (field.EnforceDownload) { strUrl += "&forcedownload=true"; } strFieldvalue = string.Format("<!--{0}--><a href=\"{1}\" {2}>{3}</a>", strDisplayName, strUrl, (openInNewWindow ? " target=\"_blank\"" : ""), strCaption); } row[field.Title] = strFieldvalue; row[field.Title + DataTableColumn.Appendix_Caption] = strCaption; row[field.Title + DataTableColumn.Appendix_Original] = strFileId; row[field.Title + DataTableColumn.Appendix_Url] = strUrl; } } } } }