public async Task <IActionResult> Update(string id, [FromBody] BannerMeta bannerMeta) { var result = await _bannerService.Update(CurrentUser.TenantId, id, bannerMeta); if (result.Code <= 0) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <ActionResultResponse> Insert(string tenantId, BannerMeta bannerMeta) { var bannerId = Guid.NewGuid().ToString(); //var isExistsInPosition = await _bannerRepository.CheckExistsByPosition(tenantId, bannerMeta.Position); //if (isExistsInPosition) // return new ActionResultResponse(-1, _resourceService.GetString("Banner already exists in position")); var banner = new Banner { Id = bannerId, ConcurrencyStamp = bannerId, TenantId = tenantId, Name = bannerMeta.Name, Type = bannerMeta.Type, Description = bannerMeta.Description, UnsignName = bannerMeta.Name.StripVietnameseChars().ToUpper(), DisplayType = bannerMeta.DisplayType, EffectType = bannerMeta.EffectType, IsActive = bannerMeta.IsActive, IsPopUp = bannerMeta.IsPopUp, Position = bannerMeta.Position, }; var result = await _bannerRepository.Insert(banner); if (result <= 0) { return(new ActionResultResponse(result, _sharedResourceService.GetString("Something went wrong. Please contact with administrator."))); } if (!bannerMeta.BannerItems.Any() || bannerMeta.BannerItems == null) { await RollbackInsert(bannerId); return(new ActionResultResponse(-4, _resourceService.GetString("Please inser banner item"))); } var lstBannerItem = new List <BannerItem>(); foreach (var bannerItemMeta in bannerMeta.BannerItems) { var pannerItem = new BannerItem { Id = Guid.NewGuid().ToString(), BannerId = banner.Id, Name = bannerItemMeta.Name, Url = bannerItemMeta.Url, Image = bannerItemMeta.Image, Order = bannerItemMeta.Order, Alt = bannerItemMeta.Alt, Description = bannerItemMeta.Description }; lstBannerItem.Add(pannerItem); } var resultBannerItem = await _bannerItemRepository.Inserts(lstBannerItem); if (resultBannerItem <= 0) { await RollbackInsert(bannerId); return(new ActionResultResponse(-5, _resourceService.GetString("Can not insert new Banner. Please contact with administrator."))); } return(new ActionResultResponse(1, _resourceService.GetString("Add new new banner successful."))); }
public async Task <ActionResultResponse> Update(string tenantId, string bannerId, BannerMeta bannerMeta) { var bannerInfo = await _bannerRepository.GetInfo(bannerId); if (bannerInfo == null) { return(new ActionResultResponse(-1, _resourceService.GetString("Banner does not exists."))); } if (bannerInfo.TenantId != tenantId) { return(new ActionResultResponse(-2, _sharedResourceService.GetString("You do not have permission to to this action."))); } if (bannerInfo.ConcurrencyStamp != bannerMeta.ConcurrencyStamp) { return(new ActionResultResponse(-3, _resourceService.GetString("The Banner already updated by other people. You can not update this Banner."))); } //if (bannerInfo.Position != bannerMeta.Position) //{ // var isExistsInPosition = await _bannerRepository.CheckExistsByPosition(tenantId, bannerMeta.Position); // if (isExistsInPosition) // return new ActionResultResponse(-1, _resourceService.GetString("Banner already exists in position")); //} bannerInfo.LastUpdate = DateTime.Now; bannerInfo.ConcurrencyStamp = Guid.NewGuid().ToString(); bannerInfo.Name = bannerMeta.Name; bannerInfo.Type = bannerMeta.Type; bannerInfo.Description = bannerMeta.Description; bannerInfo.UnsignName = bannerMeta.Name.StripVietnameseChars().ToUpper(); bannerInfo.DisplayType = bannerMeta.DisplayType; bannerInfo.EffectType = bannerMeta.EffectType; bannerInfo.IsActive = bannerMeta.IsActive; bannerInfo.IsPopUp = bannerMeta.IsPopUp; bannerInfo.Position = bannerMeta.Position; var result = await _bannerRepository.Update(bannerInfo); if (result < 0) { return(new ActionResultResponse(result, _sharedResourceService.GetString("Something went wrong. Please contact with administrator."))); } var listBannerItem = await _bannerItemRepository.GetByBanner(bannerInfo.Id); if (listBannerItem != null && listBannerItem.Any()) { foreach (var bannerItem in listBannerItem) { var bannerItemExists = bannerMeta.BannerItems.Where(x => x.Id == bannerItem.Id).ToList(); if (bannerItemExists == null || bannerItemExists.Count() == 0) { await _bannerItemRepository.ForceDelete(bannerItem.Id); } } } foreach (var bannerItemMeta in bannerMeta.BannerItems) { var bannerItem = await _bannerItemRepository.GetInfo(bannerItemMeta.Id); if (bannerItem != null) { bannerItem.Name = bannerItemMeta.Name; bannerItem.Url = bannerItemMeta.Url; bannerItem.Image = bannerItemMeta.Image; bannerItem.Order = bannerItemMeta.Order; bannerItem.Alt = bannerItemMeta.Alt; bannerItem.Description = bannerItemMeta.Description; await _bannerItemRepository.Update(bannerItem); } else { bannerItem = new BannerItem() { Id = Guid.NewGuid().ToString(), BannerId = bannerId, Name = bannerItemMeta.Name, Url = bannerItemMeta.Url, Image = bannerItemMeta.Image, Order = bannerItemMeta.Order, Alt = bannerItemMeta.Alt, Description = bannerItemMeta.Description }; await _bannerItemRepository.Insert(bannerItem); } } return(new ActionResultResponse(result, _resourceService.GetString("Update Banner successful."))); }