Esempio n. 1
0
 public FieldGenerator(IUnityContainer container)
 {
     _container               = container;
     _fieldSettings           = _container.Resolve <FieldSettings>();
     _neighbourBombCalculator = container.Resolve <INeighbourMinesCalculator>();
     _bombSetter              = container.Resolve <IMineSetter>();
 }
Esempio n. 2
0
        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>";
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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} />";
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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());
        }
Esempio n. 9
0
        public void NewGame(FieldSettings fieldSettings)
        {
            _container.RegisterInstance(fieldSettings);
            var fieldGenerator = _container.Resolve <IFieldGenerator>();

            fieldGenerator.Generate();
        }
Esempio n. 10
0
        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);
            }
        }
Esempio n. 11
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        private void customToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var settingsForm = new CustomSettingsForm(_settings);

            settingsForm.ShowDialog();
            _settings = SettingsLoader.TryLoadSettings();
            StartNewGame();
        }
Esempio n. 15
0
 public CustomSettingsForm(FieldSettings settings)
 {
     InitializeComponent();
     MaximizeBox        = false;
     widthTextBox.Text  = settings.Columns.ToString();
     heightTextBox.Text = settings.Rows.ToString();
     minesTextBox.Text  = settings.NumberOfMines.ToString();
 }
Esempio n. 16
0
 public GameController(Game game, GameSettings gameSettings, FieldSettings fieldSettings, IHttpContextAccessor httpContextAccessor, ILogger <GameController> logger)
 {
     _fieldSettings       = fieldSettings;
     _gameSettings        = gameSettings;
     _game                = game;
     _httpContextAccessor = httpContextAccessor;
     _logger              = logger;
 }
Esempio n. 17
0
        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));
        }
Esempio n. 18
0
 public MainForm()
 {
     InitializeComponent();
     MaximizeBox = false;
     _settings   = SettingsLoader.TryLoadSettings();
     _skin       = new DefaultSkin();
     SetFace(_skin.DefaultFace);
     InitializePlayer();
     timeTimer.Enabled = true;
 }
Esempio n. 19
0
        public void ShouldThrowInvalidRowNumberException_WhenColumnsLessThanZero()
        {
            //arrange
            GameManager    gameManager = new GameManager();
            IFieldSettings fs          = new FieldSettings();

            fs.ColumnsNo = -1;

            //act
            gameManager.PopulateMineField(fs);
        }
Esempio n. 20
0
        public void ShouldThrowInvalidRowNumberException_WhenColumnsGreaterThanOneHundred()
        {
            //arrange
            GameManager    gameManager = new GameManager();
            IFieldSettings fs          = new FieldSettings();

            fs.ColumnsNo = 101;

            //act
            gameManager.PopulateMineField(fs);
        }
Esempio n. 21
0
 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);
 }
Esempio n. 22
0
 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);
 }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
 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);
 }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        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>";
        }
Esempio n. 27
0
        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);
            }
        }
Esempio n. 28
0
        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();
                }
            }
        }
Esempio n. 29
0
        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());
        }
Esempio n. 30
0
        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"
        }
Esempio n. 31
0
        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 += "&amp;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;
                        }
                    }
                }
            }
        }