/// <summary> /// Builds the daily routine functions /// </summary> /// <param name="inputNpc">Npc</param> /// <param name="dailyRoutine">Daily routine list</param> /// <returns>Function list</returns> private async Task <List <ScribanExportDailyRoutineFunction> > BuildDailyRoutineFunctions(KortistoNpc inputNpc, List <KortistoNpcDailyRoutineEvent> dailyRoutine) { if (dailyRoutine == null || !dailyRoutine.Any()) { return(new List <ScribanExportDailyRoutineFunction>()); } _dailyRoutineFunctionRenderer.SetErrorCollection(_errorCollection); _dailyRoutineFunctionRenderer.SetExportTemplatePlaceholderResolver(_templatePlaceholderResolver); List <DailyRoutineFunction> functions = await _dailyRoutineFunctionRenderer.RenderDailyRoutineFunctions(dailyRoutine, inputNpc); return(functions.Select(f => new ScribanExportDailyRoutineFunction(f)).ToList()); }
/// <summary> /// Replaces the function list /// </summary> /// <param name="project">Current project</param> /// <param name="npc">Npc for which the daily routine functions must be rendered</param> /// <returns>Rendered function list</returns> private async Task <string> ReplaceFunctionList(GoNorthProject project, KortistoNpc npc) { ExportTemplate dailyRoutineFunctionListTemplate = await _defaultTemplateProvider.GetDefaultTemplateByType(project.Id, TemplateType.ObjectDailyRoutineFunctionList); if (dailyRoutineFunctionListTemplate.RenderingEngine == ExportTemplateRenderingEngine.Scriban) { _dailyRoutineFunctionRenderer.SetErrorCollection(_errorCollection); List <DailyRoutineFunction> functions = await _dailyRoutineFunctionRenderer.RenderDailyRoutineFunctions(npc.DailyRoutine, npc); ExportObjectData objectData = new ExportObjectData(); objectData.ExportData.Add(ExportConstants.ExportDataObject, functions); ExportPlaceholderFillResult fillResult = await _placeholderResolver.FillPlaceholders(TemplateType.ObjectDailyRoutineFunctionList, dailyRoutineFunctionListTemplate.Code, objectData, dailyRoutineFunctionListTemplate.RenderingEngine); _errorCollection.Merge(fillResult.Errors); return(fillResult.Code); } else { return(dailyRoutineFunctionListTemplate.Code); } }
/// <summary> /// Sets the error collection /// </summary> /// <param name="errorCollection">Error collection</param> public void SetErrorCollection(ExportPlaceholderErrorCollection errorCollection) { _dailyRoutineFunctionRenderer.SetErrorCollection(errorCollection); }