private HistoryItem defaultActivityDTOAssembler(ActEntry actEntry)
        {
            //When the display name is not set use the GBST list to get a localized
            if (actEntry.Template.DisplayName == null)
            {
                var actEntryNameElement = _listCache.GetGbstListElements("Activity Name", false).FirstOrDefault(e => e.Rank == actEntry.Template.Code);

                string displayName;
                if (actEntryNameElement == null)
                {
                    _logger.LogWarn("No entry was found in GBST 'Activity Name' for code {0} (by rank). Using code value as a display name so there is something to show.", actEntry.Template.Code);
                    displayName = Convert.ToString(actEntry.Template.Code);
                }
                else
                {
                    displayName = actEntryNameElement.Title;
                }

                actEntry.Template.DisplayName = StringToken.FromKeyString("HISTORY_ACTIVITY_NAME_{0}".ToFormat(actEntry.Template.Code), displayName);
            }

            return(new HistoryItem
            {
                DatabaseIdentifier = actEntry.ActEntryRecord.DatabaseIdentifier(),
                Id = actEntry.Id,
                Type = actEntry.Type,
                Title = actEntry.Template.DisplayName,
                Who = actEntry.Who,
                ImpersonatedBy = actEntry.ImpersonatedBy,
                When = actEntry.When,
                Detail = actEntry.AdditionalInfo
            });
        }
Пример #2
0
        public IEnumerable <StringToken> LoadDataIntoStringTokens()
        {
            var csvHandler = new CsvFileHandler <KeyObject, ObjectMap>();
            var items      = csvHandler.ReadFile(FileName);

            return(items.Select(x => StringToken.FromKeyString(x.Key, x.Identifier)));
        }
Пример #3
0
        public AjaxContinuation Post(ChangePasswordModel model)
        {
            var user = _userService.GetUserByLogin(model.UserName);

            var notification = new Notification();

            if (user == null)
            {
                notification.RegisterMessage(StringToken.FromKeyString("User Name", "User name does not exist!"));
            }

            else
            {
                try
                {
                    user.ChangePassword(_passwordService, model.OldPassword, model.Password);
                }
                catch (Exception ex)
                {
                    notification.RegisterMessage(StringToken.FromKeyString("Password", ex.Message));
                }
            }

            return
                (notification.IsValid()
                    ? AjaxContinuation.ForNavigateWholePage("/account/logoff")
                    : AjaxContinuation.ForError(notification));
        }
        public void writes_the_validation_results_activator_requirement()
        {
            var request = requestFor <LoFiTarget>();

            theNotification.RegisterMessage(StringToken.FromKeyString("Test", "Test"));
            theModifier.Modify(request);
        }
Пример #5
0
        public void create_for_input_where_it_is_null()
        {
            var key  = StringToken.FromKeyString("Something");
            var node = MenuNode.ForInput <FakeInput>(key);

            node.UrlInput.ShouldBeNull();

            var chain1 = new RoutedChain("something");

            chain1.AddToEnd(ActionCall.For <FakeController>(x => x.FromInput(null)));
            chain1.Route.AddHttpMethodConstraint("GET");

            var chain2 = new RoutedChain("something");

            chain2.AddToEnd(ActionCall.For <FakeController>(x => x.FromInput(null)));
            chain2.Route.AddHttpMethodConstraint("POST");

            resolve(node, graph =>
            {
                graph.AddChain(chain1);
                graph.AddChain(chain2);
            });

            node.BehaviorChain.ShouldBeTheSameAs(chain1);
        }
Пример #6
0
        public void GetHashCode_depends_on_the_localization_key()
        {
            var token1 = StringToken.FromKeyString("something");
            var token2 = StringToken.FromKeyString("something");
            var token3 = StringToken.FromKeyString("else");

            // FakeToken is namespaced
            var token4 = new FakeToken("something");
            var token5 = new FakeToken("something");
            var token6 = new FakeToken("else");

            token1.GetHashCode().ShouldEqual(token2.GetHashCode());
            token2.GetHashCode().ShouldEqual(token1.GetHashCode());
            token3.GetHashCode().ShouldNotEqual(token1.GetHashCode());
            token1.GetHashCode().ShouldNotEqual(token3.GetHashCode());

            token4.GetHashCode().ShouldEqual(token5.GetHashCode());
            token5.GetHashCode().ShouldEqual(token4.GetHashCode());
            token6.GetHashCode().ShouldNotEqual(token4.GetHashCode());
            token4.GetHashCode().ShouldNotEqual(token6.GetHashCode());

            // Namespace matters here
            token1.GetHashCode().ShouldNotEqual(token4.GetHashCode());
            token3.GetHashCode().ShouldNotEqual(token6.GetHashCode());
        }
Пример #7
0
        public void set_the_text_by_localized_StringToken()
        {
            var token = StringToken.FromKeyString("KEY", "the localized string");

            new HtmlTag("div").TextIfEmpty(token)
            .Text().ShouldBe(token.ToString());
        }
Пример #8
0
        public void set_localized_attr_value_by_string_token()
        {
            var token = StringToken.FromKeyString("KEY", "the text of this string token");

            new HtmlTag("span").Attr("title", token)
            .Attr("title").ShouldBe(token.ToString());
        }
Пример #9
0
        public void set_localized_tag_text_by_string_token()
        {
            var token = StringToken.FromKeyString("KEY", "the text of this string token");

            new HtmlTag("a").Text(token)
            .Text().ShouldBe(token.ToString());
        }
Пример #10
0
        public void equals_is_namespace_aware()
        {
            var token1 = StringToken.FromKeyString("something");
            var token2 = StringToken.FromKeyString("something");
            var token3 = StringToken.FromKeyString("else");

            // FakeToken is namespaced
            var token4 = new FakeToken("something");
            var token5 = new FakeToken("something");
            var token6 = new FakeToken("else");

            token1.ShouldEqual(token2);
            token2.ShouldEqual(token1);
            token3.ShouldNotEqual(token1);
            token1.ShouldNotEqual(token3);

            token4.ShouldEqual(token5);
            token5.ShouldEqual(token4);
            token6.ShouldNotEqual(token4);
            token4.ShouldNotEqual(token6);

            // Namespace matters here
            token1.ShouldNotEqual(token4);
            token3.ShouldNotEqual(token6);
        }
        public void should_stop_chain_and_put_notification_in_request_and_execute_failure_handler_if_validation_fails()
        {
            var input        = new SampleInputModel();
            var notification = new Notification(typeof(SampleInputModel));

            notification.RegisterMessage <SampleInputModel>(m => m.Field, StringToken.FromKeyString("REQUIRED"));

            MockFor <IFubuRequest>()
            .Expect(request => request.Get <SampleInputModel>())
            .Return(input);

            MockFor <IValidationProvider>()
            .Expect(provider => provider.Validate(input))
            .Return(notification);

            MockFor <IFubuRequest>()
            .Expect(request => request.Set(notification));

            MockFor <IValidationFailureHandler>()
            .Expect(handler => handler.Handle(typeof(SampleInputModel)));

            ClassUnderTest
            .Invoke();

            VerifyCallsFor <IFubuRequest>();
            VerifyCallsFor <IValidationFailureHandler>();

            MockFor <IActionBehavior>()
            .AssertWasNotCalled(inner => inner.Invoke());
        }
        public void writes_the_ajax_continuation_when_validation_fails()
        {
            theNotification.RegisterMessage(StringToken.FromKeyString("Test"));
            ClassUnderTest.Invoke();

            MockFor <IAjaxValidationFailureHandler>().AssertWasCalled(x => x.Handle(theNotification));
        }
        public void for_intput_with_model()
        {
            var key   = StringToken.FromKeyString("Something");
            var input = new FakeInput()
            {
                Name = "something"
            };
            var node = MenuNode.ForInput(key, input);

            node.UrlInput.ShouldBeTheSameAs(input);

            var chain1 = new BehaviorChain();

            chain1.AddToEnd(ActionCall.For <FakeController>(x => x.FromInput(null)));
            chain1.Route = new RouteDefinition("something");
            chain1.Route.AddHttpMethodConstraint("GET");

            var chain2 = new BehaviorChain();

            chain2.AddToEnd(ActionCall.For <FakeController>(x => x.FromInput(null)));
            chain2.Route = new RouteDefinition("something");
            chain2.Route.AddHttpMethodConstraint("POST");

            resolve(node, graph =>
            {
                graph.AddChain(chain1);
                graph.AddChain(chain2);
            });

            node.BehaviorChain.ShouldBeTheSameAs(chain1);
        }
        public void create_for_action_with_lambda()
        {
            var key  = StringToken.FromKeyString("Something");
            var node = MenuNode.ForAction <FakeController>(key, x => x.GetFake(), x => x.Category = "Test");

            node.Category.ShouldEqual("Test");
        }
        public void create_for_input_with_lamba()
        {
            var key  = StringToken.FromKeyString("Something");
            var node = MenuNode.ForInput <FakeInput>(key, x => x.Category = "Test");

            node.Category.ShouldEqual("Test");
        }
Пример #16
0
        public void allow_creation_is_true_should_get_new_entity_values_on_grid_model()
        {
            var model = harnessFor <CanCreateNewGrid>().BuildGridModel(null);

            model.NewEntityText.ShouldEqual(StringToken.FromKeyString("CREATE_NEW_" + typeof(Case).Name.ToUpper()).ToString());
            model.NewEntityUrl.ShouldEqual("some url");
        }
        public void create_for_action()
        {
            var key  = StringToken.FromKeyString("Something");
            var node = MenuNode.ForAction <FakeController>(key, x => x.GetFake());

            var chain1 = new BehaviorChain();

            chain1.AddToEnd(ActionCall.For <FakeController>(x => x.GetFake()));
            chain1.Route = new RouteDefinition("something");
            chain1.Route.AddHttpMethodConstraint("GET");

            var chain2 = new BehaviorChain();

            chain2.AddToEnd(ActionCall.For <FakeController>(x => x.GetFake()));
            chain2.Route = new RouteDefinition("something");
            chain2.Route.AddHttpMethodConstraint("POST");

            resolve(node, graph =>
            {
                graph.AddChain(chain1);
                graph.AddChain(chain2);
                graph.AddChain(new BehaviorChain());
                graph.AddChain(new BehaviorChain());
                graph.AddChain(new BehaviorChain());
                graph.AddChain(new BehaviorChain());
            });

            node.BehaviorChain.ShouldBeTheSameAs(chain1);
        }
Пример #18
0
        public void renders_the_template()
        {
            var theValue    = TemplateValue.For("field", "FirstName");
            var theTemplate = new Template(StringToken.FromKeyString("Test", "{field} is required"), theValue);

            theTemplate.Render().ShouldBe("FirstName is required");
        }
Пример #19
0
        public void add_roles_by_key()
        {
            var key = StringToken.FromKeyString("Menu1");

            var graph = buildGraph(x =>
            {
                x.Navigation(r =>
                {
                    r.ForMenu(key);
                    r.Add += MenuNode.ForAction <OneController>("something", c => c.Go());
                    r.Add += MenuNode.ForAction <OneController>("else", c => c.Query(null));
                    r.Add += MenuNode.ForAction <OneController>("different", c => c.Report());
                });

                x.ApplyConvention <NavigationRootPolicy>(policy =>
                {
                    policy.ForKey(key);
                    policy.RequireRole("role1");
                    policy.RequireRole("role2");
                });
            });

            // positive cases
            graph.BehaviorFor <OneController>(c => c.Go()).Authorization.AllowedRoles().ShouldHaveTheSameElementsAs("role1", "role2");
            graph.BehaviorFor <OneController>(c => c.Query(null)).Authorization.AllowedRoles().ShouldHaveTheSameElementsAs("role1", "role2");
            graph.BehaviorFor <OneController>(c => c.Report()).Authorization.AllowedRoles().ShouldHaveTheSameElementsAs("role1", "role2");


            graph.BehaviorFor <TwoController>(c => c.Go()).Authorization.AllowedRoles().Any().ShouldBeFalse();
            graph.BehaviorFor <ThreeController>(c => c.Go()).Authorization.AllowedRoles().Any().ShouldBeFalse();
        }
Пример #20
0
        public void valid()
        {
            var otherAccessor = ReflectionHelper.GetAccessor <IsValidTarget>(x => x.Other);

            theContext.Notification.RegisterMessage(otherAccessor, StringToken.FromKeyString("Test", "Test"));
            new IsValid().Matches(theAccessor, theContext).ShouldBeTrue();
        }
        public ClassValidationModelRules()
        {
            Property(x => x.GreaterThanZero).GreaterThanZero();
            Property(x => x.GreaterOrEqualToZero).GreaterOrEqualToZero();
            Property(x => x.LongerThanTen).MinimumLength(10);
            Property(x => x.NoMoreThanFiveCharacters).MaximumLength(5);
            Property(x => x.AtLeastFiveButNotTen).RangeLength(5, 10);
            Property(x => x.GreaterThanFive).MinValue(5);
            Property(x => x.LessThanFifteen).MaxValue(15);
            Property(x => x.Email).Email();
            Property(x => x.Required).Required();
            Property(x => x.Regex).RegEx("[a-zA-Z0-9]+$");

            Property(x => x.Custom).Rule <UniqueUsernameRule>();

            Property(x => x.Password)
            .Matches(x => x.ConfirmPassword)
            .ReportErrorsOn(x => x.Password)
            .ReportErrorsOn(x => x.ConfirmPassword);

            Property(x => x.Email)
            .Matches(x => x.ConfirmEmail)
            .ReportErrorsOn(x => x.ConfirmEmail)
            .UseToken(StringToken.FromKeyString("Test:Keys", "Emails must match"));
        }
Пример #22
0
        public void SetUp()
        {
            LocalizationManager.Stub();

            theNotification = new Notification(typeof(SampleInputModel));
            theNotification.RegisterMessage <SampleInputModel>(m => m.Field, StringToken.FromKeyString("Field", "Message"));
        }
        public void positive_case_of_setting_hide_if_type()
        {
            var node = MenuNode.ForCreatorOf <Address>(StringToken.FromKeyString("something"));

            node.HideIf(typeof(FakeConditional));

            node.HideIfConditional.ShouldEqual(typeof(FakeConditional));
        }
        public void positive_case_of_setting_is_enabled_type()
        {
            var node = MenuNode.ForCreatorOf <Address>(StringToken.FromKeyString("something"));

            node.IsEnabledBy(typeof(FakeConditional));

            node.IsEnabledBy().ShouldEqual(typeof(FakeConditional));
        }
        public void create_by_chain_by_itself()
        {
            var key   = StringToken.FromKeyString("Something");
            var chain = new BehaviorChain();
            var node  = MenuNode.ForChain(key, chain);

            node.BehaviorChain.ShouldBeTheSameAs(chain);
        }
Пример #26
0
        public void get_headers_returns_the_one_vlaue()
        {
            StringToken token = StringToken.FromKeyString("HeaderText");

            theColumn.HeaderFrom(token);

            theColumn.Headers().Single().ShouldEqual(token.ToString());
        }
Пример #27
0
        public void get_header_with_a_string_token()
        {
            StringToken token = StringToken.FromKeyString("HeaderText");

            theColumn.HeaderFrom(token);

            theColumn.GetHeader().ShouldEqual(token.ToString());
        }
        public void find_missing_text_if_the_key_does_not_have_default_text_and_it_is_the_default_culture()
        {
            var token = StringToken.FromKeyString("KEY1");

            ClassUnderTest.FindMissingText(token, theDefaultCulture).ShouldEqual("en-US_KEY1");

            MockFor <ILocalizationStorage>().AssertWasCalled(x => x.WriteMissing("KEY1", "en-US_KEY1", theDefaultCulture));
        }
Пример #29
0
            public IEnumerable <StringToken> FindTokens()
            {
                yield return(StringToken.FromKeyString("X", "x"));

                yield return(StringToken.FromKeyString("Y", "y"));

                yield return(StringToken.FromKeyString("Z", "z"));
            }
Пример #30
0
        // SAMPLE: ConventionalKeyUsage
        public static StringToken TemplateHeader <T>()
            where T : ICustomTemplate
        {
            var templateType = typeof(T);
            var defaultValue = breakUpPascalCasing(templateType.Name);
            var tokenKey     = "Template:{0}:Header".ToFormat(templateType.FullName);

            return(StringToken.FromKeyString(tokenKey, defaultValue));
        }