public async Task <BannersGetByMenuIdResponse> BannerGetByMenuId(BannerGetByMenuIdRequest request)
        {
            BannersGetByMenuIdResponse response = new BannersGetByMenuIdResponse();

            try
            {
                var banners = await _bannerService.GetBannerByMenuId(request.MenuId);

                if (banners?.Length > 0)
                {
                    var bannerIds   = banners.Select(p => p.Id).Distinct().ToArray();
                    var bannerItems = (await _bannerService.GetBannerItemByBannerId(bannerIds)).GroupBy(p => p.BannerId).ToDictionary(p => p.Key, p => p.Select(q => q.ToModel()).ToArray());
                    response.Banners = banners.Select(p => p.ToModel()).ToArray();
                    foreach (var bannerViewModel in response.Banners)
                    {
                        bannerViewModel.BannerItems = bannerItems.ContainsKey(bannerViewModel.Id)
                            ? bannerItems[bannerViewModel.Id]
                            : new BannerItemViewModel[0];
                    }
                }
            }
            catch (Exception e)
            {
                response.SetFail(e);
                _logger.LogError(e, e.Message, request);
            }
            return(response);
        }
 public async Task <IActionResult> GetBanners([FromBody] BannerGetByMenuIdRequest request)
 {
     try
     {
         BannersGetByMenuIdResponse response = new BannersGetByMenuIdResponse();
         var results = BannersGetByMenuIdRequestValidate.ValidateModel(request);
         if (results.IsValid)
         {
             response = await _menuAppService.BannerGetByMenuId(request);
         }
         else
         {
             response.SetFail(results.Errors.Select(p => p.ToString()));
         }
         return(Json(response));
     }
     catch (Exception e)
     {
         _logger.LogError(e, Common.Common.GetMethodName(), request);
         throw;
     }
 }