Exemplo n.º 1
0
        /// <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 Task <ScribanFlexFieldObject> GetScribanFlexFieldObject(ValueFieldConditionData parsedData, GoNorthProject project, ExportPlaceholderErrorCollection errorCollection, FlexFieldObject flexFieldObject, ExportSettings exportSettings)
        {
            ScribanExportItem convertedItem = FlexFieldValueCollectorUtil.BuildFlexFieldValueObject <ScribanExportItem>(null, null, flexFieldObject, exportSettings, errorCollection);

            return(Task.FromResult <ScribanFlexFieldObject>(convertedItem));
        }