Spontaneous.WebApp.Services.CuisineMapServices.CuisineMapSearch C# (CSharp) Method

CuisineMapSearch() public method

public CuisineMapSearch ( RestaurantBasicData rest, string region = null ) : List
rest Spontaneous.DataModel.RestaurantBasicData
region string
return List
        public List<CuisineMap> CuisineMapSearch(RestaurantBasicData rest, string region = null)
        {
            if (rest != null)
            {
                string restName = rest.Name != null ? rest.Name : "";
                string regionStr = region != null ? region : "null";
                log.InfoFormat("[CuisineMapSearch] rest.Name={0}, rest.Id={1}, region={2}.", restName, rest.Id.ToString(), regionStr);

                List<CuisineMap> cuisineMaps = new List<CuisineMap>();

                if (rest.Cuisine != null && rest.Cuisine != "")
                {
                    if (IfCuisineContainsSimbols(rest.Cuisine))
                    {
                        CuisineToCuisinesList(rest);
                    }
                    cuisineMaps = CuisineMapSearch(rest.Cuisine, region);
                }
                if (rest.Cuisines != null && rest.Cuisines.Count > 0)
                {
                    foreach (var cuisineStr in rest.Cuisines)
                    {
                        var tempCuisineList = CuisineMapSearch(cuisineStr, region);
                        if (tempCuisineList != null && tempCuisineList.Count > 0)
                        {
                            foreach(var cuisine in tempCuisineList)
                            {
                                if (cuisineMaps == null) cuisineMaps = new List<CuisineMap>();
                                if(!cuisineMaps.Exists(c => c.Name == cuisine.Name)) cuisineMaps.Add(cuisine);
                            }
                        }
                    }
                }
                ////if Cuisine is null or not found default menu, try to parse Rest Name and find cuisine
                //cuisineMaps = FindCuisineMapsByRestName(rest);
                if (cuisineMaps != null && cuisineMaps.Count > 0)
                {
                    var cuisinesStr = CuisineMapsListToStringList(cuisineMaps);
                    if (cuisinesStr != null && cuisinesStr.Count > 0)
                    {
                        rest.Cuisine = cuisinesStr[0];
                        rest.Cuisines = cuisinesStr;
                    }
                    return cuisineMaps;
                }
            }
            log.InfoFormat("[CuisineMapSearch] CuisineMap not found.");
            return null;
        }

Same methods

CuisineMapServices::CuisineMapSearch ( string queryStr, string region = null ) : List