示例#1
0
        public ActionResult Import(ImportCsvRequest request)
        {
            var master = Sitecore.Configuration.Factory.GetDatabase("master");
            var item   = master.GetItem(new ID(request.Id));

            var urlString = new UrlString
            {
                Query = item[Templates.RedirectMap.Fields.UrlMapping]
            };

            foreach (var kvp in request.Redirects)
            {
                urlString.Parameters.Set(kvp.Key, kvp.Value);
            }

            item.Editing.BeginEdit();
            try
            {
                item[Templates.RedirectMap.Fields.UrlMapping] = urlString.Query;
                item.Editing.AcceptChanges();
            }
            finally
            {
                item.Editing.EndEdit();
            }

            return(new HttpStatusCodeResult(HttpStatusCode.NoContent));
        }
        public ImportCsvResponse ImportCsv(ImportCsvRequest request)
        {
            ICsvDataImporter importer = null;

            try
            {
                importer = (ICsvDataImporter)
                           (new CsvDataImporterExtensionPoint()).CreateExtension(
                    delegate(ExtensionInfo info)
                {
                    return(info.Name == request.Importer || info.FormalName == request.Importer);
                });
            }
            catch (NotSupportedException)
            {
                throw new RequestValidationException(string.Format("{0} is not supported.", request.Importer));
            }

            importer.Import(request.Rows, (IUpdateContext)PersistenceContext);

            return(new ImportCsvResponse());
        }