Пример #1
0
        public List <BusinessViewModel> Search(SearchBusinessModel searchModel)
        {
            BusinessRepository repo = new BusinessRepository();

            var businesses = repo.GetBusinesses(searchModel.EntityId, searchModel.EntityName, searchModel.PrincipalAddress2, searchModel.PrincipalAddress1, searchModel.PrincipalCity, searchModel.PrincipalZipCode);

            var businessViewModels = Mapper.Map <List <BusinessViewModel> >(businesses);

            return(businessViewModels);
        }
Пример #2
0
        public List <YelpBusiness> GetBusinessByCriteria(SearchBusinessModel searchCriteria)
        {
            List <YelpBusiness> businesses = new List <YelpBusiness>();

            if (searchCriteria == null)
            {
                return(businesses);
            }

            using (StreamReader streamReader = new StreamReader(BUSINESS_FILE))
            {
                using (JsonTextReader reader = new JsonTextReader(streamReader))
                {
                    reader.SupportMultipleContent = true;

                    var serializer = new JsonSerializer();

                    while (reader.Read())
                    {
                        if (reader.TokenType == JsonToken.StartObject)
                        {
                            dynamic item = serializer.Deserialize(reader);

                            if (IsMatchingSearchCriteria(item, searchCriteria))
                            {
                                YelpBusiness business = new YelpBusiness();
                                business.BusinessId   = item.business_id;
                                business.Name         = item.name;
                                business.Neighborhood = item.neighborhood;
                                business.Address      = item.address;
                                business.City         = item.city;
                                business.State        = item.state;
                                business.PostalCode   = item.postal_code;
                                business.Stars        = item.stars;
                                business.ReviewCount  = item.review_count;
                                business.IsOpen       = item.is_open;
                                business.Categories   = ParseCategories(item.categories);

                                businesses.Add(business);
                            }
                        }
                    }
                }
            }

            return(businesses);
        }
Пример #3
0
        private bool IsMatchingSearchCriteria(dynamic businessRawRecord, SearchBusinessModel searchCriteria)
        {
            if (!string.IsNullOrEmpty(searchCriteria.Name))
            {
                string businessName = businessRawRecord.name;

                if (businessName.Contains(searchCriteria.Name) == false)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrEmpty(searchCriteria.Neighborhood))
            {
                string neighborhood = businessRawRecord.neighborhood;

                if (neighborhood != searchCriteria.Neighborhood)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrEmpty(searchCriteria.City))
            {
                string city = businessRawRecord.city;

                if (city != searchCriteria.City)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrEmpty(searchCriteria.Category))
            {
                List <string> categories = ParseCategories(businessRawRecord.categories);

                bool anyMatchingCategory = categories.Any(c => c.Contains(searchCriteria.Category));

                if (anyMatchingCategory == false)
                {
                    return(false);
                }
            }

            return(true);
        }