public JsonResult ContentExport(ExportModel model) { string fileName = string.Empty; try { var _sourceLanguage = LanguageManager.GetLanguage(model.SelectedLanguage); Item rootItem = ScHelpers.GetItem(model.RootItem, _sourceLanguage, Constants.DatabaseNames.Master); if (rootItem != null && rootItem.Versions.Count > 0) { var items = new List <Item>(); if (rootItem.HasChildren && model.IncludeChildren) { items = ScHelpers.GetItemsByTemplate(rootItem, new ID(model.SelectedTemplate)); } else { items.Add(rootItem); } if (items != null && items.Any()) { var firstItem = items.FirstOrDefault(); var dataTable = new DataTable(); if (model.SelectedFields.Any()) { dataTable = ScHelpers.BuildColumns(model.SelectedFields); ScHelpers.BuildContents(items, ref dataTable, model.SelectedFields); } else { var fields = ScHelpers.GetTemplateFields(firstItem)?.Where(x => !x.Name.StartsWith("_")); dataTable = ScHelpers.BuildColumns(fields); ScHelpers.BuildContents(items, ref dataTable); } fileName = ScHelpers.DownloadExcel(dataTable, firstItem.TemplateName.Replace(' ', '-')); } } return(Json(new { fileName = fileName, message = "Export Completed Successfully" })); } catch (Exception ex) { return(Json(new { fileName = fileName, message = ex.Message })); } }
public ActionResult ContentExport(string id) { var model = new ExportModel(); try { if (!string.IsNullOrEmpty(id)) { model.ID = id; LanguageCollection languages = LanguageManager.GetLanguages(_masterDb); List <SelectListItem> list = new List <SelectListItem>(); foreach (Language item in (Collection <Language>)(object) languages) { SelectListItem val = new SelectListItem { Text = item.CultureInfo.DisplayName, Value = item.CultureInfo.Name }; list.Add(val); } if (list?.Any() ?? false) { model.AvailableLanguages = list; } List <SelectListItem> templates = new List <SelectListItem>(); foreach (var item in ScHelpers.GetTemplates()) { SelectListItem val = new SelectListItem { Text = item.DisplayName.ToString(), Value = item.ID.ToString() }; templates.Add(val); } if (templates?.Any() ?? false) { model.Templates = templates; } } } catch (Exception ex) { Log.Error("Export", ex, (object)model); } return(View("~/Views/ContentAuthoring/ContentExport.cshtml", model)); }
public ActionResult ContentImport(string language, string displayName) { try { HttpPostedFileBase httpPostedFileBase = Request.Files[0]; DataTable dtExcel = ScHelpers.GetExcelData(httpPostedFileBase.InputStream); if (httpPostedFileBase != null && Path.GetExtension(httpPostedFileBase.FileName).Equals(".xlsx")) { ScHelpers.SitecoreContentImport(dtExcel, language, displayName); } } catch (Exception ex) { Log.Error("ContentImport", ex, this); return(Json(new { message = ex.Message })); } return(Json((object)new { message = "Content Imported Successfully" })); }
public JsonResult GetTemplateFields(string id) { var fields = ScHelpers.GetTemplateFields(id, true).Select(x => new { Name = x.Name }); return(Json(fields, JsonRequestBehavior.AllowGet)); }
public GEExportController() { _masterDb = ScHelpers.GetDatabase(Constants.DatabaseNames.Master); }