Esempio n. 1
0
        protected void btnSaveAccountSettings_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    UserLogic uLogic = new UserLogic();
                    System.Security.Principal.IPrincipal user = System.Web.HttpContext.Current.User;
                    SystemUsers currentUser = uLogic.GetCurrentUser(user);

                    using (FormContext ctx = new FormContext())
                    {
                        var updateUser = ctx.SystemUsers.FirstOrDefault(x => x.SystemUserID == currentUser.SystemUserID);

                        updateUser.Greeting    = txtGreeting.Text;
                        updateUser.DisplayName = txtDisplayName.Text;
                        updateUser.UserStatus  = ctx.UserStatuses.FirstOrDefault(x => x.StatusText == ddlUserStatus.SelectedText);

                        ctx.SaveChanges();

                        divSaveCancel.Visible      = false;
                        divLabelEdit.Visible       = true;
                        divDisplayNameEdit.Visible = false;
                        ddlUserStatus.Enabled      = false;
                        txtGreeting.Enabled        = false;

                        lblUser.Text = txtDisplayName.Text;
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
        }
        public void BeginFormWithClientValidationEnabled() {
            // Arrange
            Mock<HttpResponseBase> mockHttpResponse;
            HtmlHelper htmlHelper = GetFormHelper(@"<form action=""/some/path"" id=""form_id"" method=""post"">", @"</form>", out mockHttpResponse);
            mockHttpResponse.Expect(r => r.Write(@"<script type=""text/javascript"">
//<![CDATA[
EnableClientValidation({""Fields"":[],""FormId"":""form_id""}, null);
//]]>
</script>")).Verifiable();

            FormContext originalContext = new FormContext();
            htmlHelper.ClientValidationEnabled = true;
            htmlHelper.ViewContext.FormContext = originalContext;

            // Act & assert - push
            MvcForm theForm = htmlHelper.BeginForm();
            Assert.IsNotNull(htmlHelper.ViewContext.FormContext);
            Assert.AreNotEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext should have been set to a new instance.");
            Assert.AreEqual("form_id", htmlHelper.ViewContext.FormContext.FormId);
            Assert.IsTrue(htmlHelper.ViewContext.FormContext.ClientValidationEnabled);

            // Act & assert - pop
            theForm.Dispose();
            Assert.AreEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext was not properly restored.");
            mockHttpResponse.Verify();
        }
        public IEnumerable <Comments> rptrComments_GetData()
        {
            try
            {
                int recordId;
                Int32.TryParse(lblRecordId.Text, out recordId);

                using (FormContext ctx = new FormContext())
                {
                    if (ctx.Comments.Any(x => x.Form.FormName == "Cannot Wait For Container" && x.RelatedFormId == recordId))
                    {
                        IEnumerable <Comments> commentsList = ctx.Comments
                                                              .Where(x => x.Form.FormName == "Cannot Wait For Container" && x.RelatedFormId == recordId)
                                                              .Include(x => x.User)
                                                              .OrderByDescending(x => x.RecordId)
                                                              .ToList();

                        return(commentsList);
                    }
                }

                return(null);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Esempio n. 4
0
        public ProjectForm(MainForm mainForm, FormContext context, Project project)
        {
            if (mainForm == null)
            {
                throw new ArgumentNullException(nameof(mainForm));
            }
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (project == null)
            {
                throw new ArgumentNullException(nameof(project));
            }

            mMainForm = mainForm;
            mContext  = context;
            Project   = project;

            InitializeComponent();

            // Center on the parent, we assume modeless here and CenterParent doesn't work on modeless
            StartPosition = FormStartPosition.Manual;
            Location      = new Point(
                mainForm.Location.X + (mainForm.Width - Width) / 2,
                mainForm.Location.Y + (mainForm.Height - Height) / 2);

            ShowProjectDetails();
            ShowMilestones();
            ShowTickets();
            PopulateTicketFilters();
            UpdateTitlebar();
        }
Esempio n. 5
0
    private static void handlerAddOnFieldHandler(object sender, EventArgs e)
    {
        var rfv = sender as RequiredFieldValidator;

        rfv.Enabled = false;
        int         IdField = Convert.ToInt32(rfv.Attributes["IdFormField"]);
        int         IdForm  = Convert.ToInt32(rfv.Attributes["FormId"]);
        FormContext db      = new FormContext();
        var         Field   = db.FormFields.Find(IdField);

        foreach (FieldRequiredRelationParent frrp in Field.FieldRequiredRelationParents.ToList())
        {
            Control control = (Control)findControlI(findControlParent(rfv, "PanelForm" + IdForm), "FormField" + Field.IdForm + "_" + frrp.ParentIdFormField);

            if (control is DropDownList)
            {
                DropDownList ddl = control as DropDownList;


                if (ddl.SelectedIndex > 0 && !rfv.Enabled)
                {
                    rfv.Enabled = Field.FieldRequiredRelationParents.Count(
                        p => p.IdFormField == IdField && p.ParentIdFormField == frrp.ParentIdFormField && p.IdValue == Convert.ToInt32(ddl.SelectedValue) && !p.Deleted) > 0;

                    rfv.Attributes["test"] += "| IdFormField=" + IdField + " ParentIdFormField=" + IdField + " IdValue = " + ddl.SelectedValue;
                    return;
                }
            }
        }
    }
Esempio n. 6
0
        public override bool InvokeCommand(SubModuleFunctions command, IContext contextHandler)
        {
            Console.WriteLine("InvokeCommand execution for Form SubModule");

            FormContext subModuleContextHandler = contextHandler as FormContext;

            switch (command)
            {
            case SubModuleFunctions.CreateForm:
                // create form function
                return(true);

            case SubModuleFunctions.AskForFormResults:
                // return formular result in a context
                return(true);

            case SubModuleFunctions.SaveFormResults:
                // save form to DB
                return(true);

            case SubModuleFunctions.StartForm:
                // form start
                return(true);

            default:
                return(false);
            }
        }
        public void BeginFormWithClientValidationEnabled()
        {
            // Arrange
            StringWriter writer;
            HtmlHelper   htmlHelper = GetFormHelper(out writer);

            htmlHelper.ViewContext.ClientValidationEnabled = true;
            htmlHelper.ViewContext.FormContext             = null;
            FormContext defaultFormContext = htmlHelper.ViewContext.FormContext;

            // Act & assert - push
            MvcForm theForm = htmlHelper.BeginForm();

            Assert.NotNull(htmlHelper.ViewContext.FormContext);
            Assert.NotEqual(defaultFormContext, htmlHelper.ViewContext.FormContext);
            Assert.Equal("form_id", htmlHelper.ViewContext.FormContext.FormId);

            // Act & assert - pop
            theForm.Dispose();
            Assert.Equal(defaultFormContext, htmlHelper.ViewContext.FormContext);
            Assert.Equal(@"<form action=""/some/path"" id=""form_id"" method=""post""></form><script type=""text/javascript"">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({""Fields"":[],""FormId"":""form_id"",""ReplaceValidationSummary"":false});
//]]>
</script>", writer.ToString());
        }
Esempio n. 8
0
 public virtual ViewPage GetViewPage()
 {
     View.EntityInfo = FormContext.EntityModelInfo;
     View.Actions    = FormContext.Actions.ActionButtons;
     View.Layout     = FormContext.GetLayoutView();
     return(View);
 }
        public void StubFieldValidation(string prop, FieldValidationMetadata fieldValidation)
        {
            var formContext = new FormContext();

            formContext.FieldValidators.Add(prop, fieldValidation);
            this.viewContext.Setup(r => r.FormContext).Returns(formContext);
        }
        // Only render attributes if unobtrusive client-side validation is enabled, and then only if we've
        // never rendered validation for a field with this name in this form. Also, if there's no form context,
        // then we can't render the attributes (we'd have no <form> to attach them to).
        public static IDictionary <string, object> GetUnobtrusiveValidationAttributes(HtmlHelper htmlHelper, string name, ModelMetadata metadata)
        {
            Dictionary <string, object> results = new Dictionary <string, object>();

            // The ordering of these 3 checks (and the early exits) is for performance reasons.
            if (!htmlHelper.ViewContext.UnobtrusiveJavaScriptEnabled)
            {
                return(results);
            }

            FormContext formContext = GetFormContextForClientValidation(htmlHelper);

            if (formContext == null)
            {
                return(results);
            }

            string fullName = htmlHelper.ViewData.TemplateInfo.GetFullHtmlFieldName(name);

            if (formContext.RenderedField(fullName))
            {
                return(results);
            }

            formContext.RenderedField(fullName, true);

            //IEnumerable<ModelClientValidationRule> clientRules = htmlHelper.ClientValidationRuleFactory(name, metadata);
            //copy of the ClientValidationRuleFactory method
            IEnumerable <ModelClientValidationRule> clientRules = ModelValidatorProviders.Providers.GetValidators(metadata ?? ModelMetadata.FromStringExpression(name, htmlHelper.ViewData), htmlHelper.ViewContext).SelectMany(v => v.GetClientValidationRules());

            UnobtrusiveValidationAttributesGenerator.GetValidationAttributes(clientRules, results);

            return(results);
        }
        public IEnumerable <Status> GetStatuses()
        {
            FormContext ctx        = new FormContext();
            var         StatusList = ctx.Statuses.ToList();

            return(StatusList);
        }
Esempio n. 12
0
        private static FieldValidationMetadata ApplyFieldValidationMetadata(
            HtmlHelper htmlHelper,
            ModelMetadata modelMetadata,
            string modelName
            )
        {
            FormContext             formContext   = htmlHelper.ViewContext.FormContext;
            FieldValidationMetadata fieldMetadata = formContext.GetValidationMetadataForField(
                modelName,
                true /* createIfNotFound */
                );

            // write rules to context object
            IEnumerable <ModelValidator> validators =
                ModelValidatorProviders.Providers.GetValidators(
                    modelMetadata,
                    htmlHelper.ViewContext
                    );

            foreach (
                ModelClientValidationRule rule in validators.SelectMany(
                    v => v.GetClientValidationRules()
                    )
                )
            {
                fieldMetadata.ValidationRules.Add(rule);
            }

            return(fieldMetadata);
        }
Esempio n. 13
0
        public void MyStudentPageVMInitialize_Success()
        {
            //Arrange
            ClearDatabase();
            CreateMySessionTestData(_appUser);
            VM = new StudentsPageVM(dbConName, new Student(), _appUser);

            //Act
            //VM initialize is the act
            //Assert
            FormContext    formContext         = FormContext.Create;
            SubgridContext subgridContext      = SubgridContext.Groups;
            bool           isConfirmed         = false;
            int            ssId                = 0;
            int            lecId               = 444;
            int            availableGroupCount = 2;
            int            studentCount        = 3;

            Assert.AreEqual(formContext, VM.FormContext);
            Assert.AreEqual(isConfirmed, VM.IsConfirmed);
            Assert.AreEqual(subgridContext, VM.SubgridContext);
            Assert.AreEqual(ssId, VM.SelectedStudent.Id);
            Assert.AreEqual(lecId, VM.Lecturer.Id);
            Assert.AreEqual(availableGroupCount, VM.AvailableGroups.Count);
            Assert.AreEqual(studentCount, VM.Students.Count);
        }
Esempio n. 14
0
        public override FormNode VisitForm(FormContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("Context can't be null");
            }

            if (context.children.Any(x => x.GetType() == typeof(ErrorNodeImpl)))
            {
                return(null);
            }

            // Construct FormNode object to store the results in.
            var      name = context.formName().GetText();
            FormNode node = new FormNode(Location.FromContext(context), name);

            // Get the sections
            SectionContext[] sectionContexts = context.section();
            SectionVisitor   visitor         = new SectionVisitor();

            foreach (SectionContext sectionContext in sectionContexts)
            {
                node.AddNode(visitor.VisitSection(sectionContext));
            }

            return(node);
        }
Esempio n. 15
0
        /// <summary>
        /// Returns provided class names depending if property is valid or invalid, or empty string
        /// if property has not been validated.
        /// </summary>
        /// <typeparam name="TModel">The type of the model.</typeparam>
        /// <typeparam name="TProperty">The property of the model which we are cheking.</typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression">The expression tree representing a property to validate.</param>
        /// <param name="successCssClassName">Success class name</param>
        /// <param name="errorCssClassName">Error class name</param>
        /// <returns>Sucess class name if property is valid, error class name if property is invalid,
        /// or empty string if property has not been validated.
        /// </returns>
        public static string ValidationCssClassFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, string successCssClassName, string errorCssClassName)
        {
            FormContext formContext = htmlHelper.ViewContext.FormContext;

            if (formContext == null)
            {
                return(String.Empty);
            }

            string propertyKey        = ExpressionHelper.GetExpressionText(expression);
            string validationCssClass = String.Empty;

            if (!htmlHelper.ViewData.ModelState.ContainsKey(propertyKey))
            {
                return(validationCssClass);
            }

            var modelState = htmlHelper.ViewData.ModelState[propertyKey];

            if (modelState.Errors != null && modelState.Errors.Count > 0)
            {
                validationCssClass = errorCssClassName;
            }
            else
            {
                validationCssClass = successCssClassName;
            }

            return(validationCssClass);
        }
Esempio n. 16
0
        public FormViewModel Get(int id)
        {
            var form = new FormViewModel();

            using (var db = new FormContext())
            {
                form = db.Forms.AsQueryable().Where(f => f.FormId == id).Select(s => new FormViewModel
                {
                    FormId    = s.FormId,
                    Name      = s.Name,
                    Questions = s.Questions.OrderBy(q => q.Order).Select(q => new FormQuestion
                    {
                        QuestionId = q.QuestionId,
                        Order      = q.Order,
                        Name       = q.Name,
                        Label      = q.Label,
                        Type       = q.Type,
                        Options    = q.Options.OrderBy(o => o.OptionId).Select(o => new FormOption {
                            OptionId = o.OptionId, Label = o.Label, Value = o.Value
                        }).ToList()
                    }).ToList()
                }
                                                                                ).FirstOrDefault();
            }
            return(form);
        }
Esempio n. 17
0
 private static void AddMissingFields(FormContext context, FilterExpression exp)
 {
     foreach (var f in exp.GetFieldNames())
     {
         context.AddMissingField(f);
     }
 }
Esempio n. 18
0
        public void BeginFormWithClientValidationEnabled()
        {
            // Arrange
            StringWriter writer;
            HtmlHelper   htmlHelper = GetFormHelper(out writer);

            FormContext originalContext = new FormContext();

            htmlHelper.ViewContext.ClientValidationEnabled = true;
            htmlHelper.ViewContext.FormContext             = originalContext;

            // Act & assert - push
            MvcForm theForm = htmlHelper.BeginForm();

            Assert.IsNotNull(htmlHelper.ViewContext.FormContext);
            Assert.AreNotEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext should have been set to a new instance.");
            Assert.AreEqual("form_id", htmlHelper.ViewContext.FormContext.FormId);

            // Act & assert - pop
            theForm.Dispose();
            Assert.AreEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext was not properly restored.");
            Assert.AreEqual(@"<form action=""/some/path"" id=""form_id"" method=""post""></form><script type=""text/javascript"">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({""Fields"":[],""FormId"":""form_id"",""ReplaceValidationSummary"":false});
//]]>
</script>", writer.ToString());
        }
Esempio n. 19
0
        protected void ddlPOStatusEdit_DataBound(object sender, EventArgs e)
        {
            try
            {
                int recordId;
                Int32.TryParse(hRecordId.Value, out recordId);

                using (var ctx = new FormContext())
                {
                    var thisForm = ctx.OrderCancellationForms.FirstOrDefault(eof => eof.RecordId == recordId);

                    string        poListString = thisForm.POStatusList.Replace(" ", "");
                    List <string> poList       = poListString.Split(',').ToList <string>();

                    foreach (string poCode in poList)
                    {
                        if (ddlPOStatusEdit.Items.Any(x => x.Text == poCode))
                        {
                            ddlPOStatusEdit.Items.FirstOrDefault(x => x.Text == poCode).Checked = true;
                        }
                    }

                    if (poListString != "")
                    {
                        ddlPOStatusEdit.Text = poListString;
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 20
0
        public void GetUnobtrusiveValidationAttributesWithTwoClientRules()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock <ViewContext>();

            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper        = new HtmlHelper(viewContext.Object, viewDataContainer);

            htmlHelper.ClientValidationRuleFactory = delegate {
                ModelClientValidationRule rule1 = new ModelClientValidationRule {
                    ValidationType = "type", ErrorMessage = "error"
                };
                rule1.ValidationParameters["foo"] = "bar";
                rule1.ValidationParameters["baz"] = "biff";
                ModelClientValidationRule rule2 = new ModelClientValidationRule {
                    ValidationType = "othertype", ErrorMessage = "othererror"
                };
                rule2.ValidationParameters["true3"] = "false4";
                return(new[] { rule1, rule2 });
            };

            // Act
            IDictionary <string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.AreEqual("error", result["data-val-type"]);
            Assert.AreEqual("bar", result["data-val-type-foo"]);
            Assert.AreEqual("biff", result["data-val-type-baz"]);
            Assert.AreEqual("othererror", result["data-val-othertype"]);
            Assert.AreEqual("false4", result["data-val-othertype-true3"]);
        }
Esempio n. 21
0
        private static List <ParentDependencyInfo> BuildParents(FormContext context, List <string> parentFileds, string parentId)
        {
            var parents = new List <ParentDependencyInfo>();

            foreach (string s in parentFileds)
            {
                var p = new ParentDependencyInfo()
                {
                    WidgetId   = s,
                    IsRequired = true
                };
                parents.Add(p);

                var childCtrl = context.GetWidget(s);
                if (childCtrl != null)
                {
                    if (childCtrl.Dependency == null)
                    {
                        childCtrl.Dependency = new WidgetDependencyInfo();
                    }

                    childCtrl.Dependency.AddChild(new ChildDependencyInfo()
                    {
                        WidgetId = parentId, Clear = true
                    });
                }

                context.MissingFields.Add(s);
            }

            return(parents);
        }
Esempio n. 22
0
        public IHttpActionResult AddForm([FromBody] FormModel form)
        {
            //grab data and add new form
            var db = new FormContext();

            db.Forms.Add(form);
            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            //add user session data
            if (HttpContext.Current.Session != null &&
                HttpContext.Current.Session["forms"] != null)
            {
                var sessionForms = HttpContext.Current.Session["forms"];
                if (sessionForms == null)
                {
                    HttpContext.Current.Session.Add("forms", listOfForms);
                }
            }
            //ViewBag.FromSession = HttpContext.Current.Session["forms"];

            return(Ok(form));
        }
Esempio n. 23
0
        public static void Build(FormContext context, BaseField field, IWidget widget)
        {
            List <string> parentFileds = new List <string>();

            if (field.ControlInfo.DataSource != null)
            {
                var domain = field.ControlInfo.DataSource.Domain;
                if (domain != null)
                {
                    var filterFields = domain.GetAll().Where(x => x.ValueType == FilterValueType.EntityField);
                    if (filterFields.Count() > 0)
                    {
                        parentFileds.AddRange(filterFields.Select(x => x.Value.ToString()));
                    }
                }
            }

            if (parentFileds.Count > 0)
            {
                if (widget.Dependency == null)
                {
                    widget.Dependency = new WidgetDependencyInfo();
                }

                widget.Dependency.Parents = BuildParents(context, parentFileds, field.Name);
            }
        }
Esempio n. 24
0
        private static bool HasError(this HtmlHelper htmlHelper, ModelMetadata modelMetadata, string expression)
        {
            string      modelName   = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(expression);
            FormContext formContext = htmlHelper.ViewContext.FormContext;

            if (formContext == null)
            {
                return(false);
            }

            if (!htmlHelper.ViewData.ModelState.ContainsKey(modelName))
            {
                return(false);
            }

            ModelState modelState = htmlHelper.ViewData.ModelState[modelName];

            if (modelState == null)
            {
                return(false);
            }

            ModelErrorCollection modelErrors = modelState.Errors;

            if (modelErrors == null)
            {
                return(false);
            }

            return(modelErrors.Count > 0);
        }
Esempio n. 25
0
        public FormViewModel GetSavedForm(int formId, int respondentId)
        {
            var form = new FormViewModel();

            using (var db = new FormContext())
            {
                var respondent = db.Respondents.AsQueryable().Where(r => r.RespondentId == respondentId).FirstOrDefault();
                form = db.Forms.AsQueryable().Where(f => f.FormId == formId).Select(s => new FormViewModel
                {
                    FormId = s.FormId,
                    Name   = s.Name,
                    RespondentFirstName    = respondent.FirstName,
                    RespondentLastName     = respondent.LastName,
                    RespondentEmailAddress = respondent.EmailAddress,
                    Questions = s.Questions.OrderBy(q => q.QuestionId).Select(q => new FormQuestion
                    {
                        QuestionId = q.QuestionId,
                        Name       = q.Name,
                        Label      = q.Label,
                        Type       = q.Type,
                        Value      = db.Responses.Where(r => r.QuestionId == q.QuestionId && r.RespondentId == respondent.RespondentId).Select(ss => ss.Value).FirstOrDefault(),
                        Options    = q.Options.OrderBy(o => o.OptionId).Select(o => new FormOption {
                            Label = o.Label, Value = o.Value
                        }).ToList()
                    }).ToList()
                }
                                                                                    ).FirstOrDefault();
            }
            return(form);
        }
Esempio n. 26
0
        protected void btnAddSkuQuantity_Click(object sender, EventArgs e)
        {
            try
            {
                using (FormContext ctx = new FormContext())
                {
                    SkuQuantity newSQ = new SkuQuantity
                    {
                        MaterialSku = txtMaterialSku.Text,
                        Quantity    = txtQuantityOrdered.Text,
                        TempId      = lblRandomIdentifier.Text,
                        Completed   = false
                    };

                    ctx.SkuQuantityItems.Add(newSQ);
                    ctx.SaveChanges();
                    txtMaterialSku.Text     = "";
                    txtQuantityOrdered.Text = "";
                }

                gvSkus.DataBind();
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 27
0
        protected void gvSkus_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            try
            {
                GridView    gv              = (GridView)sender;
                GridViewRow gvr             = (GridViewRow)gv.Rows[e.RowIndex];
                Label       lblRecordIdEdit = (Label)gvr.FindControl("lblRecordIdEdit");
                int         id              = Convert.ToInt32(lblRecordIdEdit.Text);

                using (FormContext ctx = new FormContext())
                {
                    var sku = ctx.SkuQuantityItems.FirstOrDefault(x => x.RecordId == id);

                    sku.Completed   = ((CheckBox)gvr.FindControl("cbCompletedEdit")).Checked;
                    sku.MaterialSku = ((TextBox)gvr.FindControl("txtMaterialSkuEdit")).Text;
                    sku.Quantity    = ((TextBox)gvr.FindControl("txtQuantityEdit")).Text;

                    ctx.SaveChanges();
                    gvSkus.DataBind();
                    lblAddSkuMessage.Text = "";
                }
            }
            catch (Exception ex)
            {
                lblAddSkuMessage.Text = "Unable to update Material SKU# and/or Quantity.  Please contact your system administrator.";
            }
        }
Esempio n. 28
0
        public void BeginFormWithClientValidationEnabled() {
            // Arrange
            StringWriter writer;
            HtmlHelper htmlHelper = GetFormHelper(out writer);

            FormContext originalContext = new FormContext();
            htmlHelper.ViewContext.ClientValidationEnabled = true;
            htmlHelper.ViewContext.FormContext = originalContext;

            // Act & assert - push
            MvcForm theForm = htmlHelper.BeginForm();
            Assert.IsNotNull(htmlHelper.ViewContext.FormContext);
            Assert.AreNotEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext should have been set to a new instance.");
            Assert.AreEqual("form_id", htmlHelper.ViewContext.FormContext.FormId);

            // Act & assert - pop
            theForm.Dispose();
            Assert.AreEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext was not properly restored.");
            Assert.AreEqual(@"<form action=""/some/path"" id=""form_id"" method=""post""></form><script type=""text/javascript"">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({""Fields"":[],""FormId"":""form_id"",""ReplaceValidationSummary"":false});
//]]>
</script>", writer.ToString());
        }
Esempio n. 29
0
        public TicketHistoryForm(FormContext context, Ticket ticket)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (ticket == null)
            {
                throw new ArgumentNullException(nameof(ticket));
            }

            mContext = context;
            mTicket  = ticket;

            InitializeComponent();

            ShowTicketHistory();

            // Select last history.
            if (ticketHistoryListView.Items.Count > 0)
            {
                ticketHistoryListView.SelectedIndices.Clear();
                ticketHistoryListView.SelectedIndices.Add(0);
            }
        }
Esempio n. 30
0
        public void GetUnobtrusiveValidationAttributesUsesShortNameForModelMetadataLookup()
        {
            // Arrange
            string passedName  = null;
            var    formContext = new FormContext();
            var    viewContext = new Mock <ViewContext>();
            var    viewData    = new ViewDataDictionary();

            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            viewData.TemplateInfo.HtmlFieldPrefix = "Prefix";
            var viewDataContainer = MvcHelper.GetViewDataContainer(viewData);
            var htmlHelper        = new HtmlHelper(viewContext.Object, viewDataContainer);

            htmlHelper.ClientValidationRuleFactory = (name, _) => {
                passedName = name;
                return(Enumerable.Empty <ModelClientValidationRule>());
            };

            // Act
            htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.AreEqual("foobar", passedName);
        }
Esempio n. 31
0
        public ActionResult FileLoad(FormContext context)             //FemContext对验证和处理html窗体中输入的数据进行封装
        {
            HttpPostedFileBase httpPostedFileBase = Request.Files[0]; //获取文件流

            if (httpPostedFileBase != null)
            {
                try
                {
                    ControllerContext.HttpContext.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");
                    ControllerContext.HttpContext.Response.Charset        = "UTF-8";

                    string fileName      = Path.GetFileName(httpPostedFileBase.FileName); //原始文件名称
                    string fileExtension = Path.GetExtension(fileName);                   //文件扩展名

                    byte[] fileData = ReadFileBytes(httpPostedFileBase);                  //文件流转化为二进制字节

                    string result = SaveFile(fileExtension, fileData);                    //文件保存
                    return(string.IsNullOrEmpty(result) ? Json(new { code = 0, path = "", msg = "网络异常,文件上传失败~" }) : Json(new { code = 1, path = result, msg = "文件上传成功" }));
                }
                catch (Exception ex)
                {
                    return(Json(new { code = 0, msg = ex.Message, path = "" }));
                }
            }
            else
            {
                return(Json(new { code = 0, path = "", msg = "网络异常,文件上传失败~" }));
            }
        }
        public void GetJsonValidationMetadata_ValidationSummary()
        {
            // Arrange
            FormContext context = new FormContext()
            {
                FormId = "theFormId", ValidationSummaryId = "validationSummary"
            };

            ModelClientValidationRule rule = new ModelClientValidationRule()
            {
                ValidationType = "ValidationType1", ErrorMessage = "Error Message"
            };

            rule.ValidationParameters["theParam"] = new { FirstName = "John", LastName = "Doe", Age = 32 };
            FieldValidationMetadata metadata = new FieldValidationMetadata()
            {
                FieldName = "theFieldName", ValidationMessageId = "theFieldName_ValidationMessage"
            };

            metadata.ValidationRules.Add(rule);
            context.FieldValidators["theFieldName"] = metadata;

            // Act
            string jsonMetadata = context.GetJsonValidationMetadata();

            // Assert
            string expected = @"{""Fields"":[{""FieldName"":""theFieldName"",""ReplaceValidationMessageContents"":false,""ValidationMessageId"":""theFieldName_ValidationMessage"",""ValidationRules"":[{""ErrorMessage"":""Error Message"",""ValidationParameters"":{""theParam"":{""FirstName"":""John"",""LastName"":""Doe"",""Age"":32}},""ValidationType"":""ValidationType1""}]}],""FormId"":""theFormId"",""ReplaceValidationSummary"":false,""ValidationSummaryId"":""validationSummary""}";

            Assert.Equal(expected, jsonMetadata);
        }
        public void ReplaceValidationSummaryProperty()
        {
            // Arrange
            FormContext context = new FormContext();

            // Act & Assert
            MemberHelper.TestBooleanProperty(context, "ReplaceValidationSummary", false, false);
        }
        public void FieldValidatorsProperty()
        {
            // Arrange
            FormContext context = new FormContext();

            // Act
            IDictionary<String, FieldValidationMetadata> fieldValidators = context.FieldValidators;

            // Assert
            Assert.NotNull(fieldValidators);
            Assert.Empty(fieldValidators);
        }
Esempio n. 35
0
        public MvcForm(ViewContext viewContext) {
            if (viewContext == null) {
                throw new ArgumentNullException("viewContext");
            }

            _viewContext = viewContext;
            _writer = viewContext.Writer;

            // push the new FormContext
            _originalFormContext = viewContext.FormContext;
            viewContext.FormContext = new FormContext();
        }
Esempio n. 36
0
        internal MvcForm(ViewContext viewContext) {
            if (viewContext == null) {
                throw new ArgumentNullException("viewContext");
            }

            _viewContext = viewContext;
            _httpResponse = viewContext.HttpContext.Response;

            // push the new FormContext
            _originalFormContext = viewContext.FormContext;
            viewContext.FormContext = new FormContext();
        }
        public void GetValidationMetadataForField_Create_CreatesNewMetadataIfNotFound()
        {
            // Arrange
            FormContext context = new FormContext();

            // Act
            FieldValidationMetadata result = context.GetValidationMetadataForField("fieldName", true /* createIfNotFound */);

            // Assert
            Assert.NotNull(result);
            Assert.Equal("fieldName", result.FieldName);

            Assert.Single(context.FieldValidators);
            Assert.Equal(result, context.FieldValidators["fieldName"]);
        }
        public void Validate_AddsClientValidationMetadata()
        {
            var originalProviders = ModelValidatorProviders.Providers.ToArray();
            ModelValidatorProviders.Providers.Clear();

            try
            {
                // Arrange
                HtmlHelper htmlHelper = MvcHelper.GetHtmlHelper(GetViewDataWithModelErrors());
                FormContext formContext = new FormContext()
                {
                    FormId = "form_id"
                };
                htmlHelper.ViewContext.ClientValidationEnabled = true;
                htmlHelper.ViewContext.FormContext = formContext;

                ModelClientValidationRule[] expectedValidationRules = new ModelClientValidationRule[]
                {
                    new ModelClientValidationRule() { ValidationType = "ValidationRule1" },
                    new ModelClientValidationRule() { ValidationType = "ValidationRule2" }
                };

                Mock<ModelValidator> mockValidator = new Mock<ModelValidator>(ModelMetadata.FromStringExpression("", htmlHelper.ViewContext.ViewData), htmlHelper.ViewContext);
                mockValidator.Setup(v => v.GetClientValidationRules())
                    .Returns(expectedValidationRules);
                Mock<ModelValidatorProvider> mockValidatorProvider = new Mock<ModelValidatorProvider>();
                mockValidatorProvider.Setup(vp => vp.GetValidators(It.IsAny<ModelMetadata>(), It.IsAny<ControllerContext>()))
                    .Returns(new[] { mockValidator.Object });
                ModelValidatorProviders.Providers.Add(mockValidatorProvider.Object);

                // Act
                htmlHelper.Validate("baz");

                // Assert
                Assert.NotNull(formContext.GetValidationMetadataForField("baz"));
                Assert.Equal(expectedValidationRules, formContext.FieldValidators["baz"].ValidationRules.ToArray());
            }
            finally
            {
                ModelValidatorProviders.Providers.Clear();
                foreach (var provider in originalProviders)
                {
                    ModelValidatorProviders.Providers.Add(provider);
                }
            }
        }
Esempio n. 39
0
        public void BeginFormSetsAndRestoresFormContext() {
            // Arrange
            Mock<HttpResponseBase> mockHttpResponse;
            HtmlHelper htmlHelper = GetFormHelper(@"<form action=""/some/path"" method=""post"">", @"</form>", out mockHttpResponse);

            FormContext originalContext = new FormContext();
            htmlHelper.ViewContext.FormContext = originalContext;

            // Act & assert - push
            MvcForm theForm = htmlHelper.BeginForm();
            Assert.IsNotNull(htmlHelper.ViewContext.FormContext);
            Assert.AreNotEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext should have been set to a new instance.");

            // Act & assert - pop
            theForm.Dispose();
            Assert.AreEqual(originalContext, htmlHelper.ViewContext.FormContext, "FormContext was not properly restored.");
        }
        public void GetJsonValidationMetadata_ValidationSummary()
        {
            // Arrange
            FormContext context = new FormContext() { FormId = "theFormId", ValidationSummaryId = "validationSummary" };

            ModelClientValidationRule rule = new ModelClientValidationRule() { ValidationType = "ValidationType1", ErrorMessage = "Error Message" };
            rule.ValidationParameters["theParam"] = new { FirstName = "John", LastName = "Doe", Age = 32 };
            FieldValidationMetadata metadata = new FieldValidationMetadata() { FieldName = "theFieldName", ValidationMessageId = "theFieldName_ValidationMessage" };
            metadata.ValidationRules.Add(rule);
            context.FieldValidators["theFieldName"] = metadata;

            // Act
            string jsonMetadata = context.GetJsonValidationMetadata();

            // Assert
            string expected = @"{""Fields"":[{""FieldName"":""theFieldName"",""ReplaceValidationMessageContents"":false,""ValidationMessageId"":""theFieldName_ValidationMessage"",""ValidationRules"":[{""ErrorMessage"":""Error Message"",""ValidationParameters"":{""theParam"":{""FirstName"":""John"",""LastName"":""Doe"",""Age"":32}},""ValidationType"":""ValidationType1""}]}],""FormId"":""theFormId"",""ReplaceValidationSummary"":false,""ValidationSummaryId"":""validationSummary""}";
            Assert.Equal(expected, jsonMetadata);
        }
Esempio n. 41
0
        private static void OutputClientValidation(HttpResponseBase response, FormContext formContext) {
            if (!formContext.ClientValidationEnabled) {
                return; // do nothing
            }

            // output a call that resembles:
            // _clientValidationFunction(validationObject, userContext);

            string validationJson = formContext.GetJsonValidationMetadata();

            string userContextJson = (formContext.ClientValidationState != null)
                ? new JavaScriptSerializer().Serialize(formContext.ClientValidationState)
                : "null";

            string scriptWithCorrectNewLines = _clientValidationScript.Replace("\r\n", Environment.NewLine);
            string formatted = String.Format(CultureInfo.InvariantCulture, scriptWithCorrectNewLines,
                formContext.ClientValidationFunction, validationJson, userContextJson);

            response.Write(formatted);
        }
Esempio n. 42
0
        public void GetUnobtrusiveValidationAttributesUsesShortNameForModelMetadataLookup()
        {
            // Arrange
            string passedName = null;
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            var viewData = new ViewDataDictionary();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            viewData.TemplateInfo.HtmlFieldPrefix = "Prefix";
            var viewDataContainer = MvcHelper.GetViewDataContainer(viewData);
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);
            htmlHelper.ClientValidationRuleFactory = (name, _) =>
            {
                passedName = name;
                return Enumerable.Empty<ModelClientValidationRule>();
            };

            // Act
            htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Equal("foobar", passedName);
        }
Esempio n. 43
0
        public void GetUnobtrusiveValidationAttributeUsesViewDataForModelMetadataLookup()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            var viewData = new ViewDataDictionary<MyModel>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            viewData.TemplateInfo.HtmlFieldPrefix = "Prefix";
            var viewDataContainer = MvcHelper.GetViewDataContainer(viewData);
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("MyProperty");

            // Assert
            Assert.Equal(2, result.Count);
            Assert.Equal("true", result["data-val"]);
            Assert.Equal("My required message", result["data-val-required"]);
        }
Esempio n. 44
0
        public void GetUnobtrusiveValidationAttributesMessageIsNotHtmlEncoded()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);
            htmlHelper.ClientValidationRuleFactory = delegate { return new[] { new ModelClientValidationRule { ValidationType = "type", ErrorMessage = "<script>alert('xss')</script>" } }; };

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Equal("<script>alert('xss')</script>", result["data-val-type"]);
        }
Esempio n. 45
0
        public void GetUnobtrusiveValidationAttributesWithTwoClientRules()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);
            htmlHelper.ClientValidationRuleFactory = delegate
            {
                ModelClientValidationRule rule1 = new ModelClientValidationRule { ValidationType = "type", ErrorMessage = "error" };
                rule1.ValidationParameters["foo"] = "bar";
                rule1.ValidationParameters["baz"] = "biff";
                ModelClientValidationRule rule2 = new ModelClientValidationRule { ValidationType = "othertype", ErrorMessage = "othererror" };
                rule2.ValidationParameters["true3"] = "false4";
                return new[] { rule1, rule2 };
            };

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Equal("error", result["data-val-type"]);
            Assert.Equal("bar", result["data-val-type-foo"]);
            Assert.Equal("biff", result["data-val-type-baz"]);
            Assert.Equal("othererror", result["data-val-othertype"]);
            Assert.Equal("false4", result["data-val-othertype-true3"]);
        }
Esempio n. 46
0
        public void GetUnobtrusiveValidationAttributesReturnsEmptySetAndSetsFieldAsRenderedForFieldWithNoClientRules()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);
            htmlHelper.ClientValidationRuleFactory = delegate { return Enumerable.Empty<ModelClientValidationRule>(); };

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Empty(result);
            Assert.True(formContext.RenderedField("foobar"));
        }
Esempio n. 47
0
        public void GetUnobtrusiveValidationAttributesIncludesDataValTrueWithNonEmptyClientRuleList()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);
            htmlHelper.ClientValidationRuleFactory = delegate { return new[] { new ModelClientValidationRule { ValidationType = "type" } }; };

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Equal("true", result["data-val"]);
        }
Esempio n. 48
0
        public void GetUnobtrusiveValidationAttributesReturnsEmptySetWhenClientValidationIsNotEnabled() {
            // Arrange
            var formContext = new FormContext();
            formContext.RenderedField("foobar", true);
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.AreEqual(0, result.Count);
        }
        public void GetValidationMetadataForField_NoCreate_ReturnsMetadataIfFound()
        {
            // Arrange
            FormContext context = new FormContext();
            FieldValidationMetadata metadata = new FieldValidationMetadata();
            context.FieldValidators["fieldName"] = metadata;

            // Act
            FieldValidationMetadata result = context.GetValidationMetadataForField("fieldName");

            // Assert
            Assert.NotNull(result);
            Assert.Equal(metadata, result);
        }
        public void ValidationMessageWithClientValidation_DefaultMessage_Valid()
        {
            var originalProviders = ModelValidatorProviders.Providers.ToArray();
            ModelValidatorProviders.Providers.Clear();

            try
            {
                // Arrange
                HtmlHelper htmlHelper = MvcHelper.GetHtmlHelper(GetViewDataWithModelErrors());
                FormContext formContext = new FormContext();
                htmlHelper.ViewContext.ClientValidationEnabled = true;
                htmlHelper.ViewContext.FormContext = formContext;

                ModelClientValidationRule[] expectedValidationRules = new ModelClientValidationRule[]
                {
                    new ModelClientValidationRule() { ValidationType = "ValidationRule1" },
                    new ModelClientValidationRule() { ValidationType = "ValidationRule2" }
                };

                Mock<ModelValidator> mockValidator = new Mock<ModelValidator>(ModelMetadata.FromStringExpression("", htmlHelper.ViewContext.ViewData), htmlHelper.ViewContext);
                mockValidator.Setup(v => v.GetClientValidationRules())
                    .Returns(expectedValidationRules);
                Mock<ModelValidatorProvider> mockValidatorProvider = new Mock<ModelValidatorProvider>();
                mockValidatorProvider.Setup(vp => vp.GetValidators(It.IsAny<ModelMetadata>(), It.IsAny<ControllerContext>()))
                    .Returns(new[] { mockValidator.Object });
                ModelValidatorProviders.Providers.Add(mockValidatorProvider.Object);

                // Act
                MvcHtmlString html = htmlHelper.ValidationMessage("baz"); // 'baz' is valid

                // Assert
                Assert.Equal("<span class=\"field-validation-valid\" id=\"baz_validationMessage\"></span>", html.ToHtmlString());
                Assert.NotNull(formContext.GetValidationMetadataForField("baz"));
                Assert.Equal("baz_validationMessage", formContext.FieldValidators["baz"].ValidationMessageId);
                Assert.True(formContext.FieldValidators["baz"].ReplaceValidationMessageContents);
                Assert.Equal(expectedValidationRules, formContext.FieldValidators["baz"].ValidationRules.ToArray());
            }
            finally
            {
                ModelValidatorProviders.Providers.Clear();
                foreach (var provider in originalProviders)
                {
                    ModelValidatorProviders.Providers.Add(provider);
                }
            }
        }
        public void ValidationMessageForWithClientValidation_Unobtrusive() {
            var originalProviders = ModelValidatorProviders.Providers.ToArray();
            ModelValidatorProviders.Providers.Clear();

            try {
                // Arrange
                HtmlHelper<ValidationModel> htmlHelper = MvcHelper.GetHtmlHelper(GetViewDataWithModelErrors());
                FormContext formContext = new FormContext();
                htmlHelper.ViewContext.ClientValidationEnabled = true;
                htmlHelper.ViewContext.UnobtrusiveJavaScriptEnabled = true;
                htmlHelper.ViewContext.FormContext = formContext;

                ModelClientValidationRule[] expectedValidationRules = new ModelClientValidationRule[] {
                    new ModelClientValidationRule() { ValidationType = "ValidationRule1" },
                    new ModelClientValidationRule() { ValidationType = "ValidationRule2" }
                };

                Mock<ModelValidator> mockValidator = new Mock<ModelValidator>(ModelMetadata.FromStringExpression("", htmlHelper.ViewContext.ViewData), htmlHelper.ViewContext);
                mockValidator.Setup(v => v.GetClientValidationRules())
                             .Returns(expectedValidationRules);
                Mock<ModelValidatorProvider> mockValidatorProvider = new Mock<ModelValidatorProvider>();
                mockValidatorProvider.Setup(vp => vp.GetValidators(It.IsAny<ModelMetadata>(), It.IsAny<ControllerContext>()))
                                     .Returns(new[] { mockValidator.Object });
                ModelValidatorProviders.Providers.Add(mockValidatorProvider.Object);

                // Act
                MvcHtmlString html = htmlHelper.ValidationMessageFor(m => m.baz);

                // Assert
                Assert.AreEqual(@"<span class=""field-validation-valid"" data-valmsg-for=""baz"" data-valmsg-replace=""true""></span>", html.ToHtmlString(),
                    "ValidationMessageFor() should always return something if client validation is enabled.");
            }
            finally {
                ModelValidatorProviders.Providers.Clear();
                foreach (var provider in originalProviders) {
                    ModelValidatorProviders.Providers.Add(provider);
                }
            }
        }
        public void ValidationMessageWithClientValidation_ExplicitMessage_Valid_Unobtrusive()
        {
            var originalProviders = ModelValidatorProviders.Providers.ToArray();
            ModelValidatorProviders.Providers.Clear();

            try
            {
                // Arrange
                HtmlHelper htmlHelper = MvcHelper.GetHtmlHelper(GetViewDataWithModelErrors());
                FormContext formContext = new FormContext();
                htmlHelper.ViewContext.ClientValidationEnabled = true;
                htmlHelper.ViewContext.UnobtrusiveJavaScriptEnabled = true;
                htmlHelper.ViewContext.FormContext = formContext;

                ModelClientValidationRule[] expectedValidationRules = new ModelClientValidationRule[]
                {
                    new ModelClientValidationRule() { ValidationType = "ValidationRule1" },
                    new ModelClientValidationRule() { ValidationType = "ValidationRule2" }
                };

                Mock<ModelValidator> mockValidator = new Mock<ModelValidator>(ModelMetadata.FromStringExpression("", htmlHelper.ViewContext.ViewData), htmlHelper.ViewContext);
                mockValidator.Setup(v => v.GetClientValidationRules())
                    .Returns(expectedValidationRules);
                Mock<ModelValidatorProvider> mockValidatorProvider = new Mock<ModelValidatorProvider>();
                mockValidatorProvider.Setup(vp => vp.GetValidators(It.IsAny<ModelMetadata>(), It.IsAny<ControllerContext>()))
                    .Returns(new[] { mockValidator.Object });
                ModelValidatorProviders.Providers.Add(mockValidatorProvider.Object);

                // Act
                MvcHtmlString html = htmlHelper.ValidationMessage("baz", "some explicit message"); // 'baz' is valid

                // Assert
                Assert.Equal("<span class=\"field-validation-valid\" data-valmsg-for=\"baz\" data-valmsg-replace=\"false\">some explicit message</span>", html.ToHtmlString());
            }
            finally
            {
                ModelValidatorProviders.Providers.Clear();
                foreach (var provider in originalProviders)
                {
                    ModelValidatorProviders.Providers.Add(provider);
                }
            }
        }
        public void GetValidationMetadataForFieldThrowsIfFieldNameIsNull()
        {
            // Arrange
            FormContext context = new FormContext();

            // Act & assert
            Assert.ThrowsArgumentNullOrEmpty(
                delegate { context.GetValidationMetadataForField(null); }, "fieldName");
        }
        public void RenderedFieldIsFalseByDefault()
        {
            // Arrange
            var context = new FormContext();

            // Act
            bool result = context.RenderedField(Guid.NewGuid().ToString());

            // Assert
            Assert.False(result);
        }
Esempio n. 55
0
        public void GetUnobtrusiveValidationAttributesMarksRenderedFieldsWithFullName()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            var viewData = new ViewDataDictionary();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            viewData.TemplateInfo.HtmlFieldPrefix = "Prefix";
            var viewDataContainer = MvcHelper.GetViewDataContainer(viewData);
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);

            // Act
            htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.False(formContext.RenderedField("foobar"));
            Assert.True(formContext.RenderedField("Prefix.foobar"));
        }
Esempio n. 56
0
        public void GetUnobtrusiveValidationAttributesReturnsEmptySetWhenFieldHasAlreadyBeenRendered()
        {
            // Arrange
            var formContext = new FormContext();
            formContext.RenderedField("foobar", true);
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);

            // Act
            IDictionary<string, object> result = htmlHelper.GetUnobtrusiveValidationAttributes("foobar");

            // Assert
            Assert.Empty(result);
        }
Esempio n. 57
0
        public void GetUnobtrusiveValidationAttributesGuardClauses()
        {
            // Arrange
            var formContext = new FormContext();
            var viewContext = new Mock<ViewContext>();
            viewContext.SetupGet(vc => vc.FormContext).Returns(formContext);
            viewContext.SetupGet(vc => vc.ClientValidationEnabled).Returns(true);
            viewContext.SetupGet(vc => vc.UnobtrusiveJavaScriptEnabled).Returns(true);
            var viewDataContainer = MvcHelper.GetViewDataContainer(new ViewDataDictionary());
            var htmlHelper = new HtmlHelper(viewContext.Object, viewDataContainer);

            // Act & Assert
            AssertBadClientValidationRule(htmlHelper, "Validation type names in unobtrusive client validation rules cannot be empty. Client rule type: System.Web.Mvc.ModelClientValidationRule", new ModelClientValidationRule());
            AssertBadClientValidationRule(htmlHelper, "Validation type names in unobtrusive client validation rules must consist of only lowercase letters. Invalid name: \"OnlyLowerCase\", client rule type: System.Web.Mvc.ModelClientValidationRule", new ModelClientValidationRule { ValidationType = "OnlyLowerCase" });
            AssertBadClientValidationRule(htmlHelper, "Validation type names in unobtrusive client validation rules must consist of only lowercase letters. Invalid name: \"nonumb3rs\", client rule type: System.Web.Mvc.ModelClientValidationRule", new ModelClientValidationRule { ValidationType = "nonumb3rs" });
            AssertBadClientValidationRule(htmlHelper, "Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: rule", new ModelClientValidationRule { ValidationType = "rule" }, new ModelClientValidationRule { ValidationType = "rule" });

            var emptyParamName = new ModelClientValidationRule { ValidationType = "type" };
            emptyParamName.ValidationParameters[""] = "foo";
            AssertBadClientValidationRule(htmlHelper, "Validation parameter names in unobtrusive client validation rules cannot be empty. Client rule type: System.Web.Mvc.ModelClientValidationRule", emptyParamName);

            var paramNameMixedCase = new ModelClientValidationRule { ValidationType = "type" };
            paramNameMixedCase.ValidationParameters["MixedCase"] = "foo";
            AssertBadClientValidationRule(htmlHelper, "Validation parameter names in unobtrusive client validation rules must start with a lowercase letter and consist of only lowercase letters or digits. Validation parameter name: MixedCase, client rule type: System.Web.Mvc.ModelClientValidationRule", paramNameMixedCase);

            var paramNameStartsWithNumber = new ModelClientValidationRule { ValidationType = "type" };
            paramNameStartsWithNumber.ValidationParameters["2112"] = "foo";
            AssertBadClientValidationRule(htmlHelper, "Validation parameter names in unobtrusive client validation rules must start with a lowercase letter and consist of only lowercase letters or digits. Validation parameter name: 2112, client rule type: System.Web.Mvc.ModelClientValidationRule", paramNameStartsWithNumber);
        }
        public void CanSetRenderedFieldToBeTrue()
        {
            // Arrange
            var context = new FormContext();
            var name = Guid.NewGuid().ToString();
            context.RenderedField(name, true);

            // Act
            bool result = context.RenderedField(name);

            // Assert
            Assert.True(result);
        }
        public void GetValidationMetadataForField_NoCreate_ReturnsNullIfNotFound()
        {
            // Arrange
            FormContext context = new FormContext();

            // Act
            FieldValidationMetadata result = context.GetValidationMetadataForField("fieldName");

            // Assert
            Assert.Null(result);
        }
Esempio n. 60
0
	public FormContext form() {
		FormContext _localctx = new FormContext(Context, State);
		EnterRule(_localctx, 10, RULE_form);
		try {
			State = 214;
			switch ( Interpreter.AdaptivePredict(TokenStream,19,Context) ) {
			case 1:
				_localctx = new FormIdentifierContext(_localctx);
				EnterOuterAlt(_localctx, 1);
				{
				State = 209; Match(ID);
				}
				break;
			case 2:
				_localctx = new FormAssignmentContext(_localctx);
				EnterOuterAlt(_localctx, 2);
				{
				State = 210; Match(ID);
				State = 211; Match(T__2);
				State = 212; expr(0);
				}
				break;
			case 3:
				_localctx = new FormEllipsisContext(_localctx);
				EnterOuterAlt(_localctx, 3);
				{
				State = 213; Match(T__53);
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			ErrorHandler.ReportError(this, re);
			ErrorHandler.Recover(this, re);
		}
		finally {
			ExitRule();
		}
		return _localctx;
	}