public int AddNewDishBasic(string restId, int menuPartId, Dish dish) { log.InfoFormat("[AddNewDishBasic] RestaurantId={0}, MenuPartId={1}, Dish={2}.", restId, menuPartId.ToString(), dish.ToString()); try { dish.CreatedAt = DateTime.Now; dish.UpdatedAt = DateTime.Now; RestaurantBasicData tempRest = GetRestaurantBasicById(restId); if (tempRest.Menu.MenuParts.FirstOrDefault(mp => mp.Id == menuPartId).Dishes.Count == 0) dish.Id = 0; if (tempRest.Menu.MenuParts.FirstOrDefault(mp => mp.Id == menuPartId).Dishes.Count > 0) dish.Id = tempRest.Menu.MenuParts.FirstOrDefault(mp => mp.Id == menuPartId).Dishes.Max(c => c.Id) + 1; dish.ItemLocation = tempRest.ItemLocation; tempRest.Menu.MenuParts.FirstOrDefault(mp => mp.Id == menuPartId).Dishes.Add(dish); UpdateRestaurant(tempRest); return dish.Id; } catch (Exception ex) { log.InfoFormat("[AddNewDish] Exception={0}, RestaurantId={1}, MenuPartId={2}, Dish={3} ", ex.ToString(), restId, menuPartId, dish.ToString()); return -1; } }