/// <summary> /// Builds a scriban flex field object from a flex field exportable /// </summary> /// <param name="exportable">Exportable</param> /// <param name="exportSettings">Export settings</param> /// <param name="errorCollection">Error collection</param> /// <returns>Scriban flex field object</returns> public static ScribanFlexFieldObject ConvertScribanFlexFieldObject(IFlexFieldExportable exportable, ExportSettings exportSettings, ExportPlaceholderErrorCollection errorCollection) { ScribanFlexFieldObject flexFieldObject = null; if (exportable is StyrItem) { flexFieldObject = new ScribanExportItem(); } else if (exportable is EvneSkill) { flexFieldObject = new ScribanExportSkill(); } else if (exportable is KortistoNpc) { flexFieldObject = new ScribanExportNpc(); } else if (exportable is AikaQuest) { flexFieldObject = new ScribanExportQuest(); } flexFieldObject.Id = exportable.Id; flexFieldObject.Name = exportable.Name; flexFieldObject.Fields = new ScribanFlexFieldDictionary(flexFieldObject, errorCollection, exportable.Fields.Where(f => IsFlexFieldValidForExport(f, true)).SelectMany(f => ConvertFieldToExportField(flexFieldObject, f, exportSettings)).DistinctBy(f => f.Name).ToDictionary(f => f.Name)); flexFieldObject.UsedFieldIds = new HashSet <string>(); return(flexFieldObject); }
/// <summary> /// Returns the scriban flex field object for the export /// </summary> /// <param name="parsedData">Parsed condition</param> /// <param name="project">Project</param> /// <param name="errorCollection">Error Collection</param> /// <param name="flexFieldObject">Flex field object to which the dialog belongs</param> /// <param name="exportSettings">Export Settings</param> /// <returns>Scriban export object</returns> protected override async Task <ScribanFlexFieldObject> GetScribanFlexFieldObject(ValueFieldConditionData parsedData, GoNorthProject project, ExportPlaceholderErrorCollection errorCollection, FlexFieldObject flexFieldObject, ExportSettings exportSettings) { AikaQuest quest = await _cachedDbAccess.GetQuestById(parsedData.SelectedObjectId); if (quest == null) { errorCollection.AddDialogQuestNotFoundError(); return(null); } ScribanExportQuest convertedQuest = FlexFieldValueCollectorUtil.BuildFlexFieldValueObject <ScribanExportQuest>(null, null, quest, exportSettings, errorCollection); return(convertedQuest); }