コード例 #1
0
ファイル: RuleBuilder.cs プロジェクト: hebert26/NRules
 /// <summary>
 /// Constructs an empty rule builder.
 /// </summary>
 public RuleBuilder()
 {
     var rootScope = new SymbolTable();
     _dependencyBuilder = new DependencyGroupBuilder(rootScope);
     _groupBuilder = new GroupBuilder(rootScope, GroupType.And);
     _actionGroupBuilder = new ActionGroupBuilder(rootScope);
 }
コード例 #2
0
        public async Task Success_when_member_has_administrator_permission() => await Run(async sut =>
        {
            var group = await GroupBuilder.For(sut).CreateGroup("group1")
                        .AsOwner()
                        .CreateRole("role1").AddPermission("Administrator").Build()
                        .CreateMember().AssignRole(1).Build()
                        .CreateMember().Build()
                        .CreateChannel("channel1").Build()
                        .Build()
                        .Build();

            await sut.SendAsync(new AllowPermissionForMemberCommand(@group.Member(1).UserId, @group.GroupId, @group.Channel(1).ChannelId, @group.Member(2).UserId, "ReadMessages"));

            var overrides = await sut.QueryAsync(
                new GetChannelMemberPermissionOverridesQuery(@group.GroupId, @group.Channel(1).ChannelId, @group.Member(2).UserId)
                );
            overrides.Should().ContainEquivalentOf(
                new PermissionOverrideDto
            {
                Type       = OverrideTypeDto.Allow,
                Permission = "ReadMessages"
            }
                );
        });
コード例 #3
0
        public async Task Member_without_manage_roles_permission_but_with_allow_manage_roles_override_on_role_in_given_channel_can_change_all_permissions_in_channel() => await Run(async sut =>
        {
            var group = await GroupBuilder.For(sut).CreateGroup("group1")
                        .AsOwner()
                        .CreateRole("role1").Build()
                        .CreateMember().AssignRole(1).Build()
                        .CreateMember().Build()
                        .CreateChannel("channel1").AllowPermissionForMember(1, "ManageRoles").Build()
                        .Build()
                        .Build();

            await sut.SendAsync(new AllowPermissionForMemberCommand(@group.Member(1).UserId, @group.GroupId, @group.Channel(1).ChannelId, @group.Member(2).UserId, "SendMessages"));

            var overrides = await sut.QueryAsync(
                new GetChannelMemberPermissionOverridesQuery(@group.GroupId, @group.Channel(1).ChannelId, @group.Member(2).UserId)
                );
            overrides.Should().ContainEquivalentOf(
                new PermissionOverrideDto
            {
                Type       = OverrideTypeDto.Allow,
                Permission = "SendMessages"
            }
                );
        });
コード例 #4
0
        public async Task Member_with_manage_roles_permission_can_add_new_role() => await Run(async sut =>
        {
            //arrange
            var group = await GroupBuilder.For(sut).CreateGroup("group1")
                        .AsOwner()
                        .CreateRole("role1").AddPermission("ManageRoles").Build()
                        .CreateMember().AssignRole(1).Build()
                        .Build().Build();
            var role2Id = Guid.NewGuid();

            //act
            await sut.SendAsync(new AddRoleCommand(group.Member(1).UserId, group.GroupId, role2Id, "role2"));

            //assert
            var roles = await sut.QueryAsync(new GetRolesQuery(group.OwnerId, group.GroupId));
            roles.Should().SatisfyRespectively(
                x =>
            {
                x.RoleId.Should().Be(group.Role(1).RoleId);
                x.Priority.Should().Be(1);
                x.Name.Should().Be("role1");
            },
                x =>
            {
                x.RoleId.Should().Be(role2Id);
                x.Priority.Should().Be(0);
                x.Name.Should().Be("role2");
            },
                x =>
            {
                x.RoleId.Should().NotBeEmpty();
                x.Priority.Should().Be(-1);
                x.Name.Should().Be("@everyone");
            }
                );
        });
コード例 #5
0
        public async Task User_defined_role_cannot_be_moved_below_everyone_role() => await Run(async sut =>
        {
            var group = await GroupBuilder.For(sut).CreateGroup("group1")
                        .AsOwner()
                        .CreateRole("role1").Build().Build().Build();

            await sut.SendAsync(new MoveDownRoleInHierarchyCommand(group.OwnerId, group.GroupId, group.Role(1).RoleId));

            var roles = await sut.QueryAsync(new GetRolesQuery(group.OwnerId, group.GroupId));
            roles.Should().SatisfyRespectively(
                x =>
            {
                x.RoleId.Should().Be(group.Role(1).RoleId);
                x.Priority.Should().Be(0);
                x.Name.Should().Be("role1");
            },
                x =>
            {
                x.RoleId.Should().NotBeEmpty();
                x.Priority.Should().Be(-1);
                x.Name.Should().Be("@everyone");
            }
                );
        });
コード例 #6
0
        override public void Execute()
        {
            inviteUsersToMyAccount();
            displayAccountGroupsAndMembers();
            Group emptyGroup = GroupBuilder.NewGroup(Guid.NewGuid().ToString())
                               .WithId(new GroupId(Guid.NewGuid().ToString()))
                               .WithEmail("*****@*****.**")
                               .WithoutIndividualMemberEmailing()
                               .Build();

            createdEmptyGroup = ossClient.GroupService.CreateGroup(emptyGroup);
            List <GroupMember> retrievedEmptyGroup = ossClient.GroupService.GetGroupMembers(createdEmptyGroup.Id);

            GroupMember addMember = ossClient.GroupService.AddMember(createdEmptyGroup.Id,
                                                                     GroupMemberBuilder.NewGroupMember(email1)
                                                                     .AsMemberType(GroupMemberType.MANAGER)
                                                                     .Build());
            Group inviteMember = ossClient.GroupService.InviteMember(createdEmptyGroup.Id,
                                                                     GroupMemberBuilder.NewGroupMember(email3)
                                                                     .AsMemberType(GroupMemberType.MANAGER)
                                                                     .Build());

            Console.Out.WriteLine("GroupId: " + createdEmptyGroup.Id.Id);
            retrievedEmptyGroup = ossClient.GroupService.GetGroupMembers(createdEmptyGroup.Id);

            String groupName = Guid.NewGuid().ToString();
            Group  group1    = GroupBuilder.NewGroup(GROUP_NAME_PREFIX + groupName)
                               .WithId(new GroupId(Guid.NewGuid().ToString()))
                               .WithMember(GroupMemberBuilder.NewGroupMember(email1)
                                           .AsMemberType(GroupMemberType.MANAGER))
                               .WithMember(GroupMemberBuilder.NewGroupMember(email3)
                                           .AsMemberType(GroupMemberType.MANAGER))
                               .WithEmail(EMAIL)
                               .WithIndividualMemberEmailing()
                               .Build();

            createdGroup1 = ossClient.GroupService.CreateGroup(group1);
            Console.Out.WriteLine("GroupId #1: " + createdGroup1.Id.Id);

            ossClient.GroupService.AddMember(createdGroup1.Id,
                                             GroupMemberBuilder.NewGroupMember(email3)
                                             .AsMemberType(GroupMemberType.MANAGER)
                                             .Build());

            ossClient.GroupService.AddMember(createdGroup1.Id,
                                             GroupMemberBuilder.NewGroupMember(email4)
                                             .AsMemberType(GroupMemberType.REGULAR)
                                             .Build());

            retrievedGroup1 = ossClient.GroupService.GetGroup(createdGroup1.Id);
            // Retrieve by group name
            retrievedGroupByName1 = ossClient.GroupService.GetMyGroups(createdGroup1.Name);

            String groupName2 = Guid.NewGuid().ToString();
            Group  group2     = GroupBuilder.NewGroup(GROUP_NAME_PREFIX + groupName2)
                                .WithMember(GroupMemberBuilder.NewGroupMember(email2)
                                            .AsMemberType(GroupMemberType.MANAGER))
                                .WithEmail(EMAIL)
                                .WithIndividualMemberEmailing()
                                .Build();

            createdGroup2   = ossClient.GroupService.CreateGroup(group2);
            retrievedGroup2 = ossClient.GroupService.GetGroup(createdGroup2.Id);
            Console.Out.WriteLine("GroupId #2: " + createdGroup2.Id.Id);

            String groupName3 = Guid.NewGuid().ToString();
            Group  group3     = GroupBuilder.NewGroup(GROUP_NAME_PREFIX + groupName3)
                                .WithMember(GroupMemberBuilder.NewGroupMember(email3)
                                            .AsMemberType(GroupMemberType.MANAGER))
                                .WithEmail(EMAIL)
                                .WithIndividualMemberEmailing()
                                .Build();

            createdGroup3 = ossClient.GroupService.CreateGroup(group3);
            Console.Out.WriteLine("GroupId #3: " + createdGroup3.Id.Id);
            retrievedGroup3 = ossClient.GroupService.GetGroup(createdGroup3.Id);
            // Retrieve by group name
            retrievedByNamePrefix = ossClient.GroupService.GetMyGroups(GROUP_NAME_PREFIX);

            allGroupsBeforeDelete = ossClient.GroupService.GetMyGroups();

            allGroupsAfterDelete = ossClient.GroupService.GetMyGroups();

            Group updatedGroup = GroupBuilder.NewGroup(Guid.NewGuid().ToString())
                                 .WithMember(GroupMemberBuilder.NewGroupMember(email2)
                                             .AsMemberType(GroupMemberType.MANAGER))
                                 .WithMember(GroupMemberBuilder.NewGroupMember(email3)
                                             .AsMemberType(GroupMemberType.REGULAR))
                                 .WithMember(GroupMemberBuilder.NewGroupMember(email4)
                                             .AsMemberType(GroupMemberType.REGULAR))
                                 .WithEmail(EMAIL)
                                 .WithIndividualMemberEmailing()
                                 .Build();

            createdGroup3Updated = ossClient.GroupService.UpdateGroup(updatedGroup, createdGroup3.Id);

            groupMemberEmailsAfterUpdate = ossClient.GroupService.GetGroupMemberEmails(createdGroup3Updated.Id);

            DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed(PackageName)
                                                .WithSigner(SignerBuilder.NewSignerFromGroup(createdGroup1.Id)
                                                            .CanChangeSigner()
                                                            .DeliverSignedDocumentsByEmail())
                                                .WithDocument(DocumentBuilder.NewDocumentNamed("First Document")
                                                              .FromStream(fileStream1, DocumentType.PDF)
                                                              .WithSignature(SignatureBuilder.SignatureFor(createdGroup1.Id)
                                                                             .OnPage(0)
                                                                             .AtPosition(100, 100)))
                                                .Build();

            PackageId packageId = ossClient.CreatePackage(superDuperPackage);

            ossClient.SendPackage(packageId);

            ossClient.PackageService.NotifySigner(packageId, createdGroup1.Id);

            DocumentPackage result = ossClient.GetPackage(packageId);

            ossClient.GroupService.DeleteGroup(createdGroup1.Id);
            ossClient.GroupService.DeleteGroup(createdGroup2.Id);
            ossClient.GroupService.DeleteGroup(createdGroup3.Id);
        }
コード例 #7
0
 public GroupBuilderChain(GroupBuilder rootGroupBuilder)
 {
     _groupBuilders.Push(rootGroupBuilder);
 }
コード例 #8
0
 public LeftHandSideExpression(GroupBuilder builder, SymbolStack symbolStack)
 {
     _builder     = builder;
     _symbolStack = symbolStack;
 }
コード例 #9
0
        public void ShouldOrderByZToAAsSpecified()
        {
            // Arrange
            var groupCategory = new GroupCategory("name", "slug", "icon", "image");
            var location      = new MapPosition()
            {
                Lat = 5, Lon = -2
            };
            var contentfulGroupFirst  = new ContentfulGroupBuilder().Slug("slug1").Build();
            var contentfulGroupSecond = new ContentfulGroupBuilder().Slug("slug2").Build();
            var contentfulGroupThird  = new ContentfulGroupBuilder().Slug("slug3").Build();
            var collection            = new ContentfulCollection <ContentfulGroup>
            {
                Items = new List <ContentfulGroup> {
                    contentfulGroupFirst, contentfulGroupSecond, contentfulGroupThird
                }
            };

            var groupfirst = new GroupBuilder().Name("aGroup").Slug("slug1").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();
            var groupsecond = new GroupBuilder().Name("bGroup").Slug("slug2").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();
            var groupthird = new GroupBuilder().Name("cGroup").Slug("slug3").MapPosition(location).CategoriesReference(new List <GroupCategory>()
            {
                groupCategory
            }).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").Include(1).FieldEquals("fields.mapPosition[near]", Defaults.Groups.StockportLatitude + "," + Defaults.Groups.StockportLongitude + ",10").Build();

            _client.Setup(o => o.GetEntries <ContentfulGroup>(It.Is <string>(q => q.Contains(builder)),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            var noLatLngBuilder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").Include(1).Build();

            _client.Setup(o => o.GetEntries <ContentfulGroup>(It.Is <string>(q => q.Contains(noLatLngBuilder)),
                                                              It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            _groupFactory.Setup(o => o.ToModel(contentfulGroupFirst)).Returns(groupfirst);
            _groupFactory.Setup(o => o.ToModel(contentfulGroupSecond)).Returns(groupsecond);
            _groupFactory.Setup(o => o.ToModel(contentfulGroupThird)).Returns(groupthird);

            _cacheWrapper.Setup(o => o.GetFromCacheOrDirectlyAsync(It.Is <string>(s => s == "group-categories"), It.IsAny <Func <Task <List <GroupCategory> > > >(), It.Is <int>(s => s == 60))).ReturnsAsync(new List <GroupCategory>()
            {
                groupCategory
            });

            // Act
            var response = AsyncTestHelper.Resolve(_repository.GetGroupResults(new GroupSearch
            {
                Category      = string.Empty,
                GetInvolved   = string.Empty,
                Latitude      = 0.0d,
                Location      = string.Empty,
                Longitude     = 0.0d,
                Order         = "name z-a",
                Organisation  = string.Empty,
                SubCategories = string.Empty,
                Tag           = string.Empty,
                Tags          = string.Empty
            }, "slug"));
            var filteredGroupResults = response.Get <GroupResults>();

            // Assert
            filteredGroupResults.Groups.First().Should().Be(groupthird);
            filteredGroupResults.Groups[1].Should().Be(groupsecond);
            filteredGroupResults.Groups[2].Should().Be(groupfirst);
        }
コード例 #10
0
 public LeftHandSideExpression(RuleBuilder builder)
 {
     _builder      = builder;
     _groupBuilder = builder.LeftHandSide();
 }
コード例 #11
0
ファイル: QueryExpression.cs プロジェクト: zhrjin/NRules
 public QueryExpression(ParameterExpression symbol, GroupBuilder groupBuilder)
 {
     _symbol       = symbol;
     _groupBuilder = groupBuilder;
     Builder       = this;
 }
コード例 #12
0
 internal ValueBuilder(GroupBuilder groupBuilder, string key)
 {
     Assert.IsFalse(bound, "Already bound this Key");
     this.groupBuilder = groupBuilder;
     this.key          = key;
 }
コード例 #13
0
 void OnEnable()
 {
     groupBuilder = target as GroupBuilder;
 }
コード例 #14
0
ファイル: FormBuilder.cs プロジェクト: LorenVS/bacstack
 public GroupBuilder AddGroup(string text)
 {
     GroupBuilder group = new GroupBuilder(this, text);
     _layout.AddRow(group.Root);
     return group;
 }
コード例 #15
0
ファイル: Form2.cs プロジェクト: samuelyi/PK10Tracer
        private void btn_TestDayData_Click(object sender, EventArgs e)
        {
            //string code = "600519";
            ////if(!dtp.RuntimeInfo.SecurityCodes.Contains(code))
            ////{
            ////    MessageBox.Show(string.Format("证券{0}不存在!",code));
            ////    return;
            ////}
            int             MaxThrdCnt   = int.Parse(this.txt_maxThreadCnt.Text);
            int             GrpUnitCnt   = int.Parse(this.txt_GrpUnitCnt.Text);
            int             ThrdInterVal = int.Parse(this.txt_ThrdInterval.Text);
            CommMarketClass cmc          = new CommMarketClass(dtp);
            string          strendT      = this.txt_endT.Text;
            string          strbegT      = this.txt_begT.Text;

            if (useCodes == null)
            {
                useCodes = cmc.GetMarketsStocks("000001", strendT, 500, true, true, false);
            }
            string[] currCodes = new string[useCodes.Length];

            try
            {
                Array.Copy(useCodes, 0, currCodes, 0, currCodes.Length);
                List <string[]> codeGrps = GroupBuilder.ToGroup <string>(currCodes, currCodes.Length / dtp.ThreadUnitCnt);
                begT = DateTime.Now;
                DisplayCnt(currCodes.Length, codeGrps.Count, 0, 0, 0);

                SecurityGrpReader <StockMongoData> sgr = new SecurityGrpReader <StockMongoData>();
                sgr.CheckEvent = DisplayCnt;
                MongoDataDictionary <StockMongoData> data = sgr.GetResult(codeGrps, (a) =>
                {
                    SecurityReader sr = new SecurityReader(dtp.DataType, dtp.HistoryTable, a);
                    MongoDataDictionary <StockMongoData> res = sr.GetAllCodeDateSerialDataList <StockMongoData>(strbegT, strendT);
                    return(res);
                }, dtp.MaxThreadCnt, 1);
                DisplayCnt(currCodes.Length, codeGrps.Count, MaxThrdCnt, 0, data.Count);
                begT = DateTime.Now;
                List <MongoDataDictionary <StockMongoData> > datalist = GroupBuilder.ToGroup <StockMongoData>(data, currCodes.Length / dtp.ThreadUnitCnt);
                sgr.CheckEvent = DisplayCnt;

                data = sgr.GetResult(datalist, (a) =>
                {
                    return(new SecurityReader(dtp.DataType).FQ(a, dtp.RuntimeInfo.XDXRList));
                }, dtp.MaxThreadCnt, 1);
                DisplayCnt(currCodes.Length, codeGrps.Count, MaxThrdCnt, 0, data.Count);
                ////    reader.GetAllCodeDateSerialDataList<StockMongoData>("2015-07-15", "2019-03-27");
                ////data = reader.Stock_FQ(data, dtp.RuntimeInfo.XDXRList);

                ////MongoReturnDataList<StockMongoData> fqdata = reader.Stock_FQ(code, data);
                ////////int n = 0;
                ////////StockMongoData testobj = null;
                ////////var test = fqdata.Where(a => (a.date == "2015-07-15"));
                ////////testobj = test.First();
                ////////MessageBox.Show(string.Format("{0},{1}", testobj.date, testobj.close));
                ////////n = fqdata.Count/2;
                ////////MessageBox.Show(string.Format("{0},{1}", fqdata[n].date, fqdata[n].close));
                ////////n = fqdata.Count-1;
                ////////MessageBox.Show(string.Format("{0},{1}", fqdata[n].date, fqdata[n].close));
                ////EMA ema1 = new EMA(fqdata.ToList(a => a.close).ToArray(),12);
                ////EMA ema2 = new EMA(fqdata.ToList(a => a.close).ToArray(), 26);
                ////Matrix e1 = ema1.GetResult();
                ////Matrix e2 = ema2.GetResult();
                ////int n = fqdata.Count - 1;
                ////MessageBox.Show(string.Format("12:{0:f2},26:{1:f2}",e1[n-1,0],e2[n-1,0]));
                ////MACD macd = new MACD(fqdata.ToList(a => a.close).ToArray());
                ////Matrix ret = macd.GetResult();

                ////int cnt = 10;
                ////for (int i = 0; i < cnt; i++)
                ////{
                ////    MessageBox.Show(string.Format("{0}:{4:f2}=>Diff:{1:f2};DEA:{2:f2};MACD:{3:f2}", fqdata[n - i].date, ret.Detail[n - i, 0], ret.Detail[n - i, 1], ret.Detail[n - i, 2],fqdata[n-i].close));
                ////}
            }
            catch (Exception ce)
            {
                MessageBox.Show(ce.Message);
            }
        }
コード例 #16
0
        override public void Execute()
        {
            Placeholder     signer1Id         = new Placeholder(Guid.NewGuid().ToString());
            DocumentPackage superDuperPackage =
                PackageBuilder.NewPackageNamed("SignerManipulationExample: " + DateTime.Now)
                .DescribedAs("This is a package created using the e-SignLive SDK")
                .WithSigner(SignerBuilder.NewSignerWithEmail(email1)
                            .WithFirstName("firstName1")
                            .WithLastName("lastName1")
                            .WithTitle("Title1")
                            )
                .WithSigner(SignerBuilder.NewSignerWithEmail(email2)
                            .WithFirstName("firstName2")
                            .WithLastName("lastName2")
                            .WithTitle("Title2")
                            )
                .Build();

            packageId = eslClient.CreatePackage(superDuperPackage);

            DocumentPackage createdPackage = eslClient.GetPackage(packageId);

            string signerId  = createdPackage.Signers[email1].Id;
            string signer2Id = createdPackage.Signers[email2].Id;

//            eslClient.SignerService.UpdateSigner( packageId, signerId, SignerBuilder.NewSignerWithEmail(email1)
//                                                                    .WithFirstName("firstName1b")
//                                                                    .WithLastName("lastName1b")
//                                                                    .WithTitle("title1b") );

            string addedSignerId = eslClient.PackageService.AddSigner(packageId,
                                                                      SignerBuilder.NewSignerWithEmail(email3)
                                                                      .WithFirstName("firstName3")
                                                                      .WithLastName("lastName3")
                                                                      .WithTitle("Title3")
                                                                      .Lock()
                                                                      .Build()
                                                                      );

            string placeHolderId = eslClient.PackageService.AddSigner(packageId,
                                                                      SignerBuilder.NewSignerPlaceholder(new Placeholder("placeHolderRoleId"))
                                                                      .Build()
                                                                      );

            Group  avengers           = eslClient.GroupService.CreateGroup(GroupBuilder.NewGroup(Guid.NewGuid().ToString()).WithEmail("*****@*****.**").Build());
            string addedGroupSignerId = eslClient.PackageService.AddSigner(packageId,
                                                                           SignerBuilder.NewSignerFromGroup(avengers.Id)
                                                                           .Build());

            eslClient.PackageService.RemoveSigner(packageId, placeHolderId);
            eslClient.PackageService.RemoveSigner(packageId, signerId);

            eslClient.PackageService.UpdateSigner(packageId, SignerBuilder.NewSignerWithEmail("*****@*****.**")
                                                  .WithCustomId(signer2Id)
                                                  .WithFirstName("updateFirstName1")
                                                  .WithLastName("updateLastName1")
                                                  .WithTitle("UpdatedTitle1")
                                                  .Build());

            Signer retrievedSigner = eslClient.PackageService.GetSigner(packageId, addedSignerId);

            //eslClient.SendPackage(packageId);
            eslClient.PackageService.UnlockSigner(PackageId, addedSignerId);
        }
コード例 #17
0
 public CollectPatternExpression(RuleBuilder builder, GroupBuilder groupBuilder, PatternBuilder patternBuilder)
     : base(builder, groupBuilder)
 {
     _patternBuilder = patternBuilder;
 }
コード例 #18
0
        public static FormViewModel CreateForm()
        {
            var htmlContent = new HtmlElementBuilder().SetName("HtmlContent").SetContent(
                "<h2 style=\"text-align: center;\"><strong>Demo Form<br /></strong></h2>\r\n<p>Test HTML Content embedded in the demo form</p>\r\n<ul>\r\n<li>FirstName / LastName</li>\r\n<li>Years of experiance</li>\r\n<li>Accept Terms and Conditions</li>\r\n<li>Submit</li>\r\n</ul>")
                              .Build();

            var firstNameText = new TextElementBuilder()
                                .SetName("First Name")
                                .SetLabel(ElementLabel.Left("First Name: "))
                                .SetDefaultValue("First Name")
                                .AddRules(
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MaximumLength_Validator(10))
                .WithFailMessage("First Name must be less then 10 characters"),
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MinimunLength_Validator(2))
                .WithFailMessage("First Name must be greater then 2 characters"))
                                .Build();

            var lastNameText = new TextElementBuilder()
                               .SetName("Last Name")
                               .SetLabel(ElementLabel.Left("Last Name: "))
                               .SetDefaultValue("Last Name")
                               .AddRules(
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MaximumLength_Validator(10))
                .WithFailMessage("Last Name must be less then 10 characters"),
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MinimunLength_Validator(2))
                .WithFailMessage("Last Name must be greater then 2 characters"))
                               .Build();

            var personalDetails = new LinearLayoutBuilder().SetName("personalDetails")
                                  .AddChildren(firstNameText, lastNameText).SetOrientation(LayoutOrientation.Horizontal).Build();


            var experienceSelection = new SelectElementBuilder().SetName("experienceSelection")
                                      .SetLabel(ElementLabel.Left("How many years experience have you got?")).AddValues("0-1", "1-5", "5+")
                                      .SetDefaultValue("Select a value").Build();
            var termsAndConditions = new CheckElementBuilder().SetName("TermsAndConditions")
                                     .SetLabel(ElementLabel.Left("Do you accept the terms and conditions?")).SetContent("Yes / No").AddRules(
                ValidationRule <ICheckElementViewModel> .Create(new CheckElement_IsChecked_Validator())
                .WithFailMessage("You must accept the terms and conditions")).Build();

            var submitButton = new ButtonElementBuilder().SetName("Submit Button").SetContent("Submit")
                               .SetVerticalAlignment(VerticalAlignment.Bottom).Build();

            var submitEventListenerAcceptsTerms = new EventListener("submit",
                                                                    new ElementNameEventSpecification("Submit Button").And(
                                                                        new TypeNameEventSpecification(nameof(ButtonElementClickedEvent))),
                                                                    new ElementPropertyFormSpecification("TermsAndConditions", "IsChecked", "True"));

            var submitEventListenerExperience = new EventListener("tooLittleExperiance",
                                                                  new ElementNameEventSpecification("Submit Button").And(
                                                                      new TypeNameEventSpecification(nameof(ButtonElementClickedEvent))),
                                                                  new ElementPropertyFormSpecification("experienceSelection", "SelectedItem", "0-1"));

            var rowGroup1 = new LinearLayoutBuilder().SetName("Data Entry Rows")
                            .AddChildren(htmlContent, personalDetails, experienceSelection, termsAndConditions).Build();

            var rootGroup = new GroupBuilder().SetName("Test Group 1").SetTitle("Demo Form Title")
                            .AddChildren(rowGroup1, submitButton).Build();

            var newForm = new FormBuilder().SetName("Demo Form").SetTitle("Demo Form Title").SetRoot(rootGroup)
                          .AddEventListeners(submitEventListenerAcceptsTerms, submitEventListenerExperience)
                          .Build();

            return(new FormViewModel(newForm));
        }
コード例 #19
0
        public PkConversa(PkUsuarioConversa usuario, List <ChatProfess> mensagensDoUsuario, int codigoDoCliente, GroupBuilder groupBuilder, bool deveOrdenar = true)
        {
            this.Codigo = usuario.Codigo;
            this.Nome   = usuario.Nome.GetPrimeiroEUltimoNome();
            this.Foto   = FotoTrata.ToBase64String(usuario.Foto);
            this.Status = usuario.Status;
            this.Tipo   = usuario.Tipo;
            if (this.Status == this.Tipo)
            {
                this.Status = TipoDeUsuarioDoChatTrata.TipoExtenso(this.Tipo);
            }

            this.CodigoDaEscola = codigoDoCliente;
            this.GroupName      = groupBuilder.BuildGroupName(codigoDoCliente, usuario.Tipo, usuario.Codigo);
            this.Mensagens      = mensagensDoUsuario
                                  .Select(mensagem => new PkMensagem(mensagem, groupBuilder, codigoDoCliente))
                                  .ToList();

            if (deveOrdenar)
            {
                this.Mensagens = this.Mensagens
                                 .OrderBy(x => x.DataDaMensagem)
                                 .ToList();
            }

            this.SetDataDaUltimaMensagem();
        }
コード例 #20
0
 /// <summary>
 /// Gets a group for a given material
 /// </summary>
 /// <param name="material">Group material</param>
 /// <returns>Returns an existing unretired group that matches the specified material, or a new group</returns>
 public GroupBuilder GetGroup( GroupMaterial material )
 {
     foreach ( GroupBuilder group in m_Groups )
     {
         if ( group.Material == material )
         {
             return group;
         }
     }
     GroupBuilder newGroup = new GroupBuilder( material );
     m_Groups.Add( newGroup );
     return newGroup;
 }
コード例 #21
0
 public LeftHandSideExpression(RuleBuilder builder, GroupBuilder groupBuilder)
 {
     _builder      = builder;
     _groupBuilder = groupBuilder;
 }
コード例 #22
0
 public void Fill(GroupBuilder builder)
 {
     builder.BuildIdClause("year", "{ '$year': '$StartDate' }");
     builder.BuildIdClause("month", "{ '$month': '$StartDate' }");
     builder.BuildIdClause("day", "{ '$dayOfMonth': '$StartDate' }");
 }
コード例 #23
0
        public void ShouldReturnListOfGroupsWhereAdministratorMatchesEmailAddress()
        {
            // Arrange
            var emailAddress             = "*****@*****.**";
            var contentfulGroupsReturned = new List <ContentfulGroup>();
            var correctContentfulGroup   = new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems>()
                {
                    new GroupAdministratorItems()
                    {
                        Email = emailAddress, Permission = "A"
                    }
                }
            }).Build();

            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "E"
                    }
                }
            }).Build());
            contentfulGroupsReturned.Add(correctContentfulGroup);
            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "A"
                    }
                }
            }).Build());
            contentfulGroupsReturned.Add(new ContentfulGroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems> {
                    new GroupAdministratorItems()
                    {
                        Email = "*****@*****.**", Permission = "A"
                    }
                }
            }).Build());
            var collection = new ContentfulCollection <ContentfulGroup>();

            collection.Items = contentfulGroupsReturned;

            var groupReturned = new GroupBuilder().GroupAdministrators(new GroupAdministrators()
            {
                Items = new List <GroupAdministratorItems>()
                {
                    new GroupAdministratorItems()
                    {
                        Email = emailAddress, Permission = "A"
                    }
                }
            }).Build();

            var builder = new QueryBuilder <ContentfulGroup>().ContentTypeIs("group").FieldExists("fields.groupAdministrators")
                          .Include(1)
                          .Limit(ContentfulQueryValues.LIMIT_MAX);

            _client.Setup(
                o => o.GetEntries(It.Is <QueryBuilder <ContentfulGroup> >(q => q.Build() == builder.Build()),
                                  It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            _groupFactory.Setup(o => o.ToModel(correctContentfulGroup)).Returns(groupReturned);

            // Act
            var response       = AsyncTestHelper.Resolve(_repository.GetAdministratorsGroups(emailAddress));
            var filteredGroups = response.Get <List <Group> >();

            // Assert
            filteredGroups.Count().Should().Be(1);
        }
コード例 #24
0
 void OnEnable()
 {
     groupBuilder = target as GroupBuilder;
 }