public IHttpActionResult CreateDynamicContent(webModel.DynamicContentItem contentItem)
        {
            var coreItem = contentItem.ToCoreModel();

            _dynamicContentService.SaveContentItems(new[] { coreItem });
            return(GetDynamicContentById(coreItem.Id));
        }
        public void DoImport(Stream backupStream, Action <ExportImportProgressInfo> progressCallback)
        {
            var backupObject   = backupStream.DeserializeJson <BackupObject>();
            var originalObject = GetBackupObject(progressCallback);

            var progressInfo = new ExportImportProgressInfo();

            progressInfo.Description = String.Format("{0} promotions importing...", backupObject.Promotions.Count());
            progressCallback(progressInfo);
            _promotionService.SavePromotions(backupObject.Promotions.ToArray());

            progressInfo.Description = String.Format("{0} folders importing...", backupObject.ContentFolders.Count());
            progressCallback(progressInfo);
            _dynamicContentService.SaveFolders(backupObject.ContentFolders.ToArray());

            progressInfo.Description = String.Format("{0} places importing...", backupObject.ContentPlaces.Count());
            progressCallback(progressInfo);
            _dynamicContentService.SavePlaces(backupObject.ContentPlaces.ToArray());

            progressInfo.Description = String.Format("{0} contents importing...", backupObject.ContentItems.Count());
            progressCallback(progressInfo);
            _dynamicContentService.SaveContentItems(backupObject.ContentItems.ToArray());

            progressInfo.Description = String.Format("{0} publications importing...", backupObject.ContentPublications.Distinct().Count());
            progressCallback(progressInfo);
            _dynamicContentService.SavePublications(backupObject.ContentPublications.Distinct().ToArray());

            var pageSize     = 500;
            var couponsTotal = backupObject.Coupons.Count();

            Paginate(couponsTotal, pageSize, (x) =>
            {
                progressInfo.Description = String.Format($"{Math.Min(x * pageSize, couponsTotal)} of {couponsTotal} coupons imported");
                progressCallback(progressInfo);
                _couponService.SaveCoupons(backupObject.Coupons.Skip((x - 1) * pageSize).Take(pageSize).ToArray());
            });

            var usagesTotal = backupObject.Usages.Count();

            Paginate(usagesTotal, pageSize, (x) =>
            {
                progressInfo.Description = String.Format($"{Math.Min(x * pageSize, usagesTotal)} of {usagesTotal} usages imported");
                progressCallback(progressInfo);
                _usageService.SaveUsages(backupObject.Usages.Skip((x - 1) * pageSize).Take(pageSize).ToArray());
            });
        }
Пример #3
0
 public void SaveContentItems(DynamicContentItem[] items)
 {
     _contentService.SaveContentItems(items);
     ClearCache();
 }
 protected virtual void SaveContentItems(DynamicContentItem[] dynamicContentItems)
 {
     _dynamicContentService.SaveContentItems(dynamicContentItems);
 }