private ImportRecordTypesResponse ImportRecordTypes(IDictionary <int, ImportRecordMetadata> metadata, LogController controller, CustomisationImportResponse response) { var thisResponse = new ImportRecordTypesResponse(); var numberToDo = metadata.Count(); var numberCompleted = 0; for (var i = 0; i < metadata.Count(); i++) { var keyValue = metadata.ElementAt(i); var excelRow = keyValue.Key; var recordMetadata = keyValue.Value; try { controller.UpdateProgress(numberCompleted++, numberToDo, string.Format("Importing {0}", EntityTabName)); var isUpdate = RecordService.RecordTypeExists(recordMetadata.SchemaName); RecordService.CreateOrUpdate(recordMetadata); if (!isUpdate) { thisResponse.AddCreatedRecordType(recordMetadata.SchemaName); response.AddResponseItem(recordMetadata.GetPrimaryFieldMetadata(), false); } response.AddResponseItem(excelRow, recordMetadata, isUpdate); } catch (Exception ex) { response.AddResponseItem(excelRow, recordMetadata, ex); } } return(thisResponse); }
private ImportRecordTypesResponse ImportRecordTypes(IDictionary <int, ImportRecordMetadata> metadata, LogController controller, CustomisationImportResponse response) { var thisResponse = new ImportRecordTypesResponse(); var numberToDo = metadata.Count(); var numberCompleted = 0; for (var i = 0; i < metadata.Count(); i++) { var keyValue = metadata.ElementAt(i); var excelRow = keyValue.Key; var recordMetadata = keyValue.Value; try { controller.UpdateProgress(numberCompleted++, numberToDo, string.Format("Importing {0}", EntityTabName)); var isUpdate = RecordService.RecordTypeExists(recordMetadata.SchemaName); RecordService.CreateOrUpdate(recordMetadata); if (!isUpdate) { thisResponse.AddCreatedRecordType(recordMetadata.SchemaName); response.AddImportedItem(recordMetadata.GetPrimaryFieldMetadata(), false); } response.AddImportedItem(excelRow, recordMetadata, isUpdate); } catch (Exception ex) { response.AddResponseItem(excelRow, recordMetadata, ex); } } if (numberCompleted > 0) { controller.LogLiteral("Publishing Record Types"); var publishXml = $"<importexportxml><entities>{string.Join("", metadata.Select(m => "<entity>" + m.Value.SchemaName + "</entity>"))}</entities></importexportxml>"; RecordService.Publish(publishXml); } return(thisResponse); }