コード例 #1
0
        public async void GetOrganizationAsync_Works()
        {
            // return guidestar as search result.  expecting 200 result
            var payload = SearchPayloadBuilder.Create()
                          .WithSearchTerms("guidestar")
                          .Filters(
                filterBuilder => filterBuilder
                .Organization(
                    organizationBuilder => organizationBuilder.IsOnBMF(true)
                    .SpecificExclusions(
                        seBuilder => seBuilder.ExcludeDefunctOrMergedOrganizations()
                        .ExcludeRevokedOrganizations()
                        )
                    )
                .Geography(
                    g => g.HavingCounty(new string[] { "James City" })
                    )
                ).Build();
            var essentials = await EssentialsResource.GetOrganizationAsync(payload);

            var result = JsonDocument.Parse(essentials);

            result.RootElement.TryGetProperty("code", out var response);
            Assert.True(response.TryGetInt32(out int code));
            Assert.True(code == 200);

            Assert.NotNull(essentials);
        }
コード例 #2
0
 public void PayloadToFails()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => SearchPayloadBuilder.Create()
                                                 .WithSearchTerms("test")
                                                 .Size(-1)
                                                 .Build());
 }
コード例 #3
0
        public void Affiliations(bool headquarters, bool parent, bool subordinate, bool independent)
        {
            var payload = SearchPayloadBuilder.Create().Build();

            //Independent orgs should have no other flags in this category
            if (independent)
            {
                var payloadind = SearchPayloadBuilder.Create()
                                 .WithSearchTerms("test")
                                 .Filters(FilterBuilder =>
                                          FilterBuilder.Organization(OrganizationBuilder =>
                                                                     OrganizationBuilder.AffiliationType(AffiliationTypeBuilder => AffiliationTypeBuilder.OnlyIndependent())))
                                 .Build();
                payload = payloadind;
            }

            //Subordinate orgs should have no other flags in this category
            if (subordinate)
            {
                var payloadsub = SearchPayloadBuilder.Create()
                                 .WithSearchTerms("test")
                                 .Filters(FilterBuilder =>
                                          FilterBuilder.Organization(OrganizationBuilder =>
                                                                     OrganizationBuilder.AffiliationType(AffiliationTypeBuilder => AffiliationTypeBuilder.OnlySubordinate())))
                                 .Build();
                payload = payloadsub;
            }

            //This logic is assuming that all headquarters should be parents but not all parents are headquarters
            if (parent)
            {
                if (headquarters)
                {
                    var payloadhq = SearchPayloadBuilder.Create()
                                    .WithSearchTerms("test")
                                    .Filters(FilterBuilder =>
                                             FilterBuilder.Organization(OrganizationBuilder =>
                                                                        OrganizationBuilder.AffiliationType(AffiliationTypeBuilder => AffiliationTypeBuilder.OnlyParents())));

                    payloadhq.Filters(FilterBuilder =>
                                      FilterBuilder.Organization(OrganizationBuilder =>
                                                                 OrganizationBuilder.AffiliationType(AffiliationTypeBuilder => AffiliationTypeBuilder.OnlyHeadquarters())));

                    payload = payloadhq.Build();
                }
                else
                {
                    var payloadpar = SearchPayloadBuilder.Create()
                                     .WithSearchTerms("test")
                                     .Filters(FilterBuilder =>
                                              FilterBuilder.Organization(OrganizationBuilder =>
                                                                         OrganizationBuilder.AffiliationType(AffiliationTypeBuilder => AffiliationTypeBuilder.OnlyParents())))
                                     .Build();
                    payload = payloadpar;
                }
            }

            //TestPayload(payload);
        }
コード例 #4
0
 public void PayloadFrom()
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .From(10)
                   .Build();
     //TestPayload(payload);
 }
コード例 #5
0
 public void GeographyWithinZipRadiusFails(int zipRadius)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => SearchPayloadBuilder.Create()
                                                 .WithSearchTerms("test")
                                                 .Filters(filterBuilder =>
                                                          filterBuilder.Geography(geographyBuilder => geographyBuilder.WithinZipRadius(zipRadius))
                                                          )
                                                 .Build());
 }
コード例 #6
0
 public void GeographyZipCodeFails(string zipcode)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => SearchPayloadBuilder.Create()
                                                 .WithSearchTerms("test")
                                                 .Filters(filterBuilder =>
                                                          filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingZipCode(zipcode))
                                                          )
                                                 .Build());
 }
コード例 #7
0
 public void GeographyWithinZipRadius(int zipRadius)
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .Filters(filterBuilder =>
                            filterBuilder.Geography(geographyBuilder => geographyBuilder.WithinZipRadius(zipRadius))
                            )
                   .Build();
     //TestPayload(payload);
 }
コード例 #8
0
 public void GeographyHavingState(IEnumerable <string> states)
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .Filters(filterBuilder =>
                            filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingState(states))
                            )
                   .Build();
     //TestPayload(payload);
 }
コード例 #9
0
 public void GeographyZipCode(string zipcode)
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .Filters(filterBuilder =>
                            filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingZipCode(zipcode))
                            )
                   .Build();
     //TestPayload(payload);
 }
コード例 #10
0
 public void GeographyHavingZipcodeAndWithinZipRadius(string zipcode, int zipradius)
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .Filters(filterBuilder =>
                            filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingZipCode(zipcode)
                                                    .WithinZipRadius(zipradius))
                            )
                   .Build();
     //TestPayload(payload);
 }
コード例 #11
0
        public void GeographyHavingMSAFails(IEnumerable <string> msas)
        {
            var payload = SearchPayloadBuilder.Create()
                          .WithSearchTerms("test")
                          .Filters(filterBuilder =>
                                   filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingMSA(msas))
                                   )
                          .Build();

            Assert.Throws <ApiException>(() => EssentialsResource.GetOrganization(payload));
        }
コード例 #12
0
 public void ExcludeRevokedOrganizations_Works()
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.SpecificExclusions(auditBuilder => auditBuilder.ExcludeRevokedOrganizations())
             )
         ).Build();
     //TestPayload(payload);
 }
コード例 #13
0
 public void HavingFoundationCode_Works(List <string> foundationCodes)
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.HavingFoundationCode(foundationCodes)
             )
         ).Build();
     //TestPayload(payload);
 }
コード例 #14
0
 public void HavingProfileLevel_Works(List <string> profileLevels)
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.HavingProfileLevel(profileLevels)
             )
         ).Build();
     //TestPayload(payload);
 }
コード例 #15
0
 public void OnlyF990PF()
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.FormTypes(auditBuilder => auditBuilder.OnlyF990PF())
             )
         ).Build();
     //TestPayload(payload);
 }
コード例 #16
0
 public void IsOnBMF_Works(bool bmfStatus)
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.IsOnBMF(bmfStatus)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #17
0
 public void AuditBuilder()
 {
     // return guidestar as search result.  expecting 200 result
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.Audits(auditBuilder => auditBuilder.HavingA133Audit())
             )
         ).Build();
     //TestPayload(payload);
 }
コード例 #18
0
        public void HavingSubsectionCode_Fails(List <string> subsections)
        {
            var payload = SearchPayloadBuilder.Create()
                          .Filters(
                filterBuilder => filterBuilder
                .Organization(
                    organizationBuilder =>
                    organizationBuilder.HavingSubsectionCode(subsections)
                    )
                ).Build();

            Assert.Throws <ApiException>(() => EssentialsResource.GetOrganization(payload));
        }
コード例 #19
0
 public void IsPub78Verified_Works(bool IsPub78Verified)
 {
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.IsPub78Verified(IsPub78Verified)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #20
0
 public void AffiliationType_Works()
 {
     Action <AffiliationTypeBuilder> action = (AffiliationTypeBuilder) =>
     {
         AffiliationTypeBuilder.OnlyParents();
     };
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.AffiliationType(action)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #21
0
 public void SpecificExclusions_Works()
 {
     Action <SpecificExclusionBuilder> action = (SpecificExclusionBuilder) =>
     {
         SpecificExclusionBuilder.ExcludeDefunctOrMergedOrganizations();
     };
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.SpecificExclusions(action)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #22
0
 public void FormTypes_Works()
 {
     Action <FormTypeBuilder> action = (FormTypeBuilder) =>
     {
         FormTypeBuilder.Only990tRequired();
     };
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.FormTypes(action)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #23
0
 public void Audits_Works()
 {
     Action <AuditBuilder> action = (AffiliationTypeBuilder) =>
     {
         AffiliationTypeBuilder.HavingA133Audit();
     };
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.Audits(action)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #24
0
 public void NumberOfEmployees_Works(int min, int max)
 {
     Action <MinMaxBuilder> action = (MinMaxBuilder) =>
     {
         MinMaxBuilder.HavingMinimum(min);
         MinMaxBuilder.HavingMaximum(max);
     };
     var payload = SearchPayloadBuilder.Create()
                   .Filters(
         filterBuilder => filterBuilder
         .Organization(
             organizationBuilder =>
             organizationBuilder.NumberOfEmployees(action)
             )
         )
                   .Build();
     //TestPayload(payload);
 }
コード例 #25
0
        public void Financials990AssetsMaximum(long value, IEnumerable <string> states)
        {
            var payload = SearchPayloadBuilder.Create()
                          .WithSearchTerms("test")
                          .Filters(filterBuilder =>
            {
                filterBuilder.Financials(finBuilder =>
                                         finBuilder.Form990Assets(assets => assets.HavingMaximum(value))
                                         );

                filterBuilder.Geography(geographyBuilder => geographyBuilder.HavingState(states));

                filterBuilder.Organization(organizationBuilder =>
                                           organizationBuilder.FormTypes(auditBuilder => auditBuilder.Only990tRequired())
                                           );
            }
                                   )
                          .Build();
        }
コード例 #26
0
 public void SortBuilderTheory(SortOptions sort, bool sortAscending)
 {
     var payload = SearchPayloadBuilder.Create()
                   .WithSearchTerms("test")
                   .Sort(sortBuilder =>
     {
         sortBuilder.SortBy(sort);
         if (sortAscending)
         {
             sortBuilder.SortByDescending();
         }
         else
         {
             sortBuilder.SortByDescending();
         }
     })
                   .Build();
     //TestPayload(payload);
 }
コード例 #27
0
        public void NumberOfEmployees_Fails(int min, int max)
        {
            Action <MinMaxBuilder> action = (MinMaxBuilder) =>
            {
                MinMaxBuilder.HavingMinimum(min);
                MinMaxBuilder.HavingMaximum(max);
            };
            var payload = SearchPayloadBuilder.Create()
                          .Filters(
                filterBuilder => filterBuilder
                .Organization(
                    organizationBuilder =>
                    organizationBuilder.NumberOfEmployees(action)
                    )
                )
                          .Build();

            Assert.Throws <ApiException>(() => EssentialsResource.GetOrganization(payload));
        }
コード例 #28
0
 public void NumberOfEmployees_Throws_HavingMaximumGreaterThanZero()//System.Exception : HavingMaximum must be greater than 0
 {
     Assert.Throws <ArgumentOutOfRangeException>(() =>
     {
         Action <MinMaxBuilder> action = (MinMaxBuilder) =>
         {
             MinMaxBuilder.HavingMinimum(1);
             MinMaxBuilder.HavingMaximum(-1);
         };
         var payload = SearchPayloadBuilder.Create()
                       .Filters(
             filterBuilder => filterBuilder
             .Organization(
                 organizationBuilder =>
                 organizationBuilder.NumberOfEmployees(action)
                 )
             )
                       .Build();
     });
 }
コード例 #29
0
        public void BuilderAllExplicit()
        {
            const string searchterms = "";
            const int    from        = 1;
            const int    size        = 25;
            const string sortby      = "organization_name";

            string[]     state  = { "ny" };
            const string zip    = "";
            const int    radius = 50;

            string[]   msa           = { "" };
            string[]   city          = { "" };
            string[]   county        = { "" };
            string[]   profilelevel  = { "Platinum", "Bronze" };
            string[]   nteemajor     = { "" };
            string[]   nteeminor     = { "" };
            string[]   subsection    = { "" };
            string[]   foundation    = { "" };
            const bool bmfstatus     = true;
            const bool pub78verified = true;
            const int  minemployees  = 0;
            const int  maxemployees  = 1000000000;
            const int  minrevenue    = 0;
            const int  maxrevenue    = 1000000000;
            const int  minexpenses   = 0;
            const int  maxexpesnes   = 1000000000;
            const int  minassets     = 0;
            const int  maxassets     = 100000000;

            var payload = SearchPayloadBuilder.Create()
                          //search terms is a string used as a keyword search
                          .WithSearchTerms(searchterms)
                          //from is an integer to specify which record to start at for pagination
                          .From(from)
                          //size is an integer to specify how many records to return
                          .Size(size)
                          .Sort(SortBuilder =>
            {
                //sortby is a string to specify how to sort the records
                SortBuilder.SortBy(sortby);
                //sortbyascending is used to sort the records alphabectically. The sort is set to true when this is present in the form.
                SortBuilder.SortByAscending();
                //sortbydescending is used to sort the records reverse alphabectically. The sort is set to true when this is present in the form.
                //SortBuilder.SortByDescending();
            }
                                )
                          .Filters(filterBuilder =>
            {
                filterBuilder.Geography(geographyBuilder =>
                {
                    //state is a string array to filter on multiple states
                    geographyBuilder.HavingState(state);
                    //zip is a string to filter on 1 zip code
                    //geographyBuilder.HavingZipCode(zip);
                    //radius is an integer to include up to 50 miles from the zip
                    geographyBuilder.WithinZipRadius(radius);
                    //msa is an string array to filter on multiple msa codes
                    geographyBuilder.HavingMSA(msa);
                    //city is a string array to filter on multiple cities
                    geographyBuilder.HavingCity(city);
                    //county is a string array to filter on multiple counties
                    geographyBuilder.HavingCounty(county);
                }
                                        );
                filterBuilder.Organization(OrganizationBuilder =>
                {
                    //profilelevel is a string array to filter on the seal of transparencies
                    OrganizationBuilder.HavingProfileLevel(profilelevel);
                    //nteemajor is a string array to filter on major ntee codes
                    OrganizationBuilder.HavingNTEEMajorCode(nteemajor);
                    //nteeminor is a string array to filter on minor ntee codes
                    OrganizationBuilder.HavingNTEEMinorCode(nteeminor);
                    //subsection is a string array to filer on subsection codes
                    OrganizationBuilder.HavingSubsectionCode(subsection);
                    //foundation is a string array to filer on foundation codes
                    OrganizationBuilder.HavingFoundationCode(foundation);
                    //bmfstatus is a boolean to filter on bmf status
                    OrganizationBuilder.IsOnBMF(bmfstatus);
                    //pub78verified is a boolean to filter on verification on pub 78
                    OrganizationBuilder.IsPub78Verified(pub78verified);
                    OrganizationBuilder.AffiliationType(AffiliationTypeBuilder =>
                    {
                        //only parents is used to filter parent organizations. The search is set to true when this is present in the form.
                        //AffiliationTypeBuilder.OnlyParents();
                        //only subordinate is used to filter subordinate organizations. The search is set to true when this is present in the form.
                        //AffiliationTypeBuilder.OnlySubordinate();
                        //only independent is used to filter independent organizations. The search is set to true when this is present in the form.
                        //AffiliationTypeBuilder.OnlyIndependent();
                        //only headquarters is used to filter headquarter organizations. The search is set to true when this is present in the form.
                        //AffiliationTypeBuilder.OnlyHeadquarters();
                    }
                                                        );
                    OrganizationBuilder.SpecificExclusions(SpecificExclusionBuilder =>
                    {
                        //exclude revoked organizations is used to filter out any revoked organizations. The search is set to true when this is present in the form.
                        SpecificExclusionBuilder.ExcludeRevokedOrganizations();
                        //exclude defunct or merged organizations is used to filter out any defunct or merged organizations. the search is set to true when this is present in the form.
                        SpecificExclusionBuilder.ExcludeDefunctOrMergedOrganizations();
                    }
                                                           );
                    OrganizationBuilder.NumberOfEmployees(MinMaxBuilder =>
                    {
                        //maxemployees is an integer to include organizations with the number of employees less than the specified amount
                        MinMaxBuilder.HavingMaximum(maxemployees);
                        //minemployees is an integer to include organizations with the number of employees more than the specified amount
                        MinMaxBuilder.HavingMinimum(minemployees);
                    }
                                                          );
                    OrganizationBuilder.FormTypes(FormTypeBuilder =>
                    {
                        //only f990 is used to filter organizations who filed a form 990. The search is set to true when this is present in the form.
                        FormTypeBuilder.OnlyF990();
                        //only f990pf is used to filter organizations who filed a form 990-pf. The search is set to true when this is present in the form.
                        //FormTypeBuilder.OnlyF990PF();
                        //only f990t required is used to filter organizations who are required to filed a form 990-t. The search is set to true when this is present in the form.
                        //FormTypeBuilder.Only990tRequired();
                    }
                                                  );
                    OrganizationBuilder.Audits(AuditBuilder =>
                    {
                        // having a133 audit is used to filter organizations who have completed an a133 audit. The search is set to true when this is present in the form.
                        AuditBuilder.HavingA133Audit();
                    }
                                               );
                }
                                           );
                filterBuilder.Financials(finBuilder =>
                {
                    finBuilder.Form990Assets(assets =>
                    {
                        //maxassets is an integer to include organizations with assets less than the specified amount
                        assets.HavingMaximum(maxassets);
                        //minassets is an integer to include organizations with assets more than the specified amount
                        assets.HavingMinimum(minassets);
                    }
                                             );
                    finBuilder.Form990Expenses(expenses =>
                    {
                        //maxexpenses is an integer to include organizations with expenses less than the specified amount
                        expenses.HavingMaximum(maxexpesnes);
                        //minexpenses is an integer to include organizations with expenses more than the specified amount
                        expenses.HavingMinimum(minexpenses);
                    }
                                               );
                    finBuilder.Form990Revenue(revenue =>
                    {
                        //maxrevenue is an integer to include organizations with revenue less than the specified amount
                        revenue.HavingMaximum(maxrevenue);
                        //minrevenue is an integer to include organizations with revenue more than the specified amount
                        revenue.HavingMinimum(minrevenue);
                    }
                                              );
                }
                                         );
            }
                                   )
                          .Build();

            GuideStarClient.SubscriptionKeys.Add(Domain.EssentialsV2, ESSENTIALS_KEY);
            var essentials = EssentialsResource.GetOrganization(payload);
        }