public static IEnumerable <Strain> LookupStrain(string query)
        {
            var urlGenerator = new UrlGenerator();

            urlGenerator.GenerateCannabisReportsUrl(PrimaryObjectType.Strain, query);

            IEnumerable <Strain> strains = DataRequester.GetObjects <Strain>(urlGenerator.URL);

            return(strains);
        }
        public static IEnumerable <Strain> GetStrainGenetics(string ucpc)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.Strain);

            urlGenerator.GenerateCannabisReportsUrl(ucpcObject, SecondaryObjectType.Genetics);

            IEnumerable <Strain> strains = DataRequester.GetObjects <Strain>(urlGenerator.URL);

            return(strains);
        }
        public static IEnumerable <Product> GetProducerProducts(string ucpc)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.Producer);

            urlGenerator.GenerateCannabisReportsUrl(ucpcObject, SecondaryObjectType.Product);

            IEnumerable <Product> products = DataRequester.GetObjects <Product>(urlGenerator.URL);

            return(products);
        }
        public static IEnumerable <Extract> GetExtracts(int pageNumber = 0, SortOption sortingOption = SortOption.Unassigned)
        {
            var urlGenerator = new UrlGenerator();

            urlGenerator.GenerateCannabisReportsUrl(PrimaryObjectType.Extract);

            urlGenerator.AddQueryParameters(pageNumber, sortingOption);//ADD SORTING/PAGE OPTIONS

            IEnumerable <Extract> extracts = DataRequester.GetObjects <Extract>(urlGenerator.URL);

            return(extracts);
        }
        public static IEnumerable <Review> GetExtractReviews(string ucpc, int pageNumber = 0)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.Extract);

            urlGenerator.GenerateCannabisReportsUrl(ucpcObject, SecondaryObjectType.Review);
            urlGenerator.AddQueryParameters(pageNumber);

            IEnumerable <Review> reviews = DataRequester.GetObjects <Review>(urlGenerator.URL);

            return(reviews);
        }
        public static IEnumerable <Extract> GetExtractByType(SecondaryObjectType type, int pageNumber = 0, SortOption sortingOption = SortOption.Unassigned)
        {
            var urlGenerator = new UrlGenerator();

            urlGenerator.GenerateCannabisReportsUrl(PrimaryObjectType.Extract, type);

            urlGenerator.AddQueryParameters(pageNumber, sortingOption);

            IEnumerable <Extract> extracts = DataRequester.GetObjects <Extract>(urlGenerator.URL);

            return(extracts);
        }
        public static IEnumerable <MenuItem> GetDispensaryProductMenuItems(string state, string city, string slug, int pageNumber = 0, SortOption sortingOption = SortOption.Unassigned)
        {
            var urlGenerator = new UrlGenerator();

            urlGenerator.GenerateCannabisReportsUrl(state, city, slug, PrimaryObjectType.Product);

            urlGenerator.AddQueryParameters(pageNumber, sortingOption);//ADD SORTING/PAGE OPTIONS

            IEnumerable <MenuItem> menuItems = DataRequester.GetObjects <MenuItem>(urlGenerator.URL);

            return(menuItems);
        }
        public static IEnumerable <Strain> GetStrainChildren(string ucpc, int pageNumber = 0)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.Strain);

            urlGenerator.GenerateCannabisReportsUrl(ucpcObject, SecondaryObjectType.Children);
            urlGenerator.AddQueryParameters(pageNumber);

            IEnumerable <Strain> strains = DataRequester.GetObjects <Strain>(urlGenerator.URL);

            return(strains);
        }
        public static IEnumerable <Strain> GetSeedCompanyStrains(string ucpc, int pageNumber = 0)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.SeedCompany);

            urlGenerator.GenerateCannabisReportsUrl(ucpcObject, SecondaryObjectType.Strain, isPlural: true);
            urlGenerator.AddQueryParameters(pageNumber);

            IEnumerable <Strain> reviews = DataRequester.GetObjects <Strain>(urlGenerator.URL);

            return(reviews);
        }
        public static IEnumerable <MenuItemSummary> GetExtractAvailability(string ucpc, decimal latitude, decimal longitude, int radiusInMiles, int pageNumber = 0)
        {
            var urlGenerator = new UrlGenerator();
            var ucpcObject   = new UCPC(ucpc, PrimaryObjectType.Extract);

            urlGenerator.GenerateCannabisReportsUrl
            (
                ucpcObject,
                latitude,
                longitude,
                radiusInMiles
            );
            urlGenerator.AddQueryParameters(pageNumber);

            IEnumerable <MenuItemSummary> menuItemSummaries = DataRequester.GetObjects <MenuItemSummary>(urlGenerator.URL);

            return(menuItemSummaries);
        }