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;
}