Пример #1
0
        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.")));
        }