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