public ImportResultItemModel(GCItem item, GCTemplate template, bool isImportSuccessful, string resultMessage) { Id = item.Id.ToString(); IsImportSuccessful = isImportSuccessful; ResultMessage = resultMessage; Status = item.Status.Data; Template = template; Title = item.Name; }
/// <summary> /// /// </summary> /// <param name="gcItem"></param> /// <param name="gcTemplate"></param> /// <param name="selectedMappingId"></param> /// <param name="result"></param> /// <param name="selectedLocationId"></param> private void TryMapItem(GCItem gcItem, GCTemplate gcTemplate, string selectedMappingId, out MappingResultModel result, string selectedLocationId = null) { bool isUpdate = gcItem is UpdateGCItem; List <Element> gcFields = gcItem.Config.SelectMany(i => i.Elements).ToList(); var template = FactoryRepository.Repositories.MappingRepository.GetMappingById(selectedMappingId); if (template == null) { string errorMessage = isUpdate ? "Update failed: Template not mapped" : "Import failed: Template not mapped"; result = new MappingResultModel(gcItem, null, gcTemplate.Name, null, string.Empty, errorMessage, false, selectedLocationId); return; } List <ImportCMSField> fields; IEnumerable <IGrouping <string, FieldMapping> > groupedFields = template.FieldMappings.GroupBy(i => i.CmsField.TemplateField.FieldId); var files = new List <File>(); if (gcItem.Config.SelectMany(config => config.Elements).Select(element => element.Type).Contains("files")) { foreach (var file in FactoryService.Services.ItemsService.GetItemFiles(gcItem.Id.ToString()).Data) { files.Add(new File { FileName = file.FileName, Url = file.Url, UpdatedDate = file.Updated }); } } TryMapItemState mapState = TryMapFields(gcFields, groupedFields, files, out fields); if (mapState == TryMapItemState.FieldError) { string errorMessage = isUpdate ? "Update failed: Template fields mismatch" : "Import failed: Template fields mismatch"; result = new MappingResultModel(gcItem, null, gcTemplate.Name, null, string.Empty, errorMessage, false, selectedLocationId); return; } string cmsId = string.Empty; string message = "Import Successful"; if (isUpdate) { cmsId = (gcItem as UpdateGCItem).CMSId; message = "Update Successful"; } result = new MappingResultModel(gcItem, fields, gcTemplate.Name, template.CmsTemplate.TemplateId, cmsId, message, true, selectedLocationId); }
public ImportListItem(GCItem item, GCTemplate template, List <GCItem> items, string dateFormat, IEnumerable <AvailableMapping> mappings) { Checked = false; AvailableMappings = new AvailableMappings(); Id = item.Id.ToString(); Title = item.Name; Status = item.Status.Data; Breadcrumb = GetBreadcrumb(item, items); LastUpdatedInGC = item.Updated.Date.ToString(dateFormat); AvailableMappings.Mappings.AddRange(mappings); Template = template; }
private List <MappingResultModel> TryMapItems(List <GCItem> items, List <TemplateMapping> templates) { var result = new List <MappingResultModel>(); var templatesDictionary = new Dictionary <int, GCTemplate>(); foreach (GCItem gcItem in items) { GCTemplate gcTemplate = GetTemplate(gcItem.TemplateId.Value, templatesDictionary); MappingResultModel cmsItem; TryMapItem(gcItem, gcTemplate, templates, out cmsItem); result.Add(cmsItem); } return(result); }
public List <MappingResultModel> MapItems(List <ImportItemModel> items) { var result = new List <MappingResultModel>(); var templatesDictionary = new Dictionary <int, GCTemplate>(); foreach (var importItem in items) { var gcItem = ItemsService.GetSingleItem(importItem.Id); if (gcItem != null && gcItem.Data != null && gcItem.Data.TemplateId != null) { GCTemplate gcTemplate = GetTemplate(gcItem.Data.TemplateId.Value, templatesDictionary); MappingResultModel cmsItem; TryMapItem(gcItem.Data, gcTemplate, importItem.SelectedMappingId, out cmsItem, importItem.DefaultLocation); result.Add(cmsItem); } } return(result); }