/// <summary> /// Constructeur. /// </summary> /// <param name="context">Le contexte.</param> /// <param name="import">La décomposition vidéo à importer.</param> /// <param name="targetScenario">Le scénario cible.</param> public VideoDecompositionImporter(KsmedEntities context, VideoDecompositionImport import, Scenario targetScenario) { _context = context; _import = import; _targetScenario = targetScenario; _referentialsToRemap = new Dictionary <IActionReferential, IActionReferential>(); }
/// <summary> /// Importe décomposition d'une vidéo d'un scénario dans le scénario initial existant d'un projet. /// </summary> /// <param name="videoDecomposition">Les données à importer.</param> /// <param name="mergeReferentials"><c>true</c> pour fusionner les référentiels.</param> /// <param name="videosDirectory">Le dossier qui contient les vidéos.</param> /// <param name="targetProjectId">L'identifiant du projet cible.</param> public virtual async Task <bool> ImportVideoDecomposition(VideoDecompositionImport videoDecomposition, bool mergeReferentials, string videosDirectory, int targetProjectId) => await Task.Run(async() => { dynamic param = new ExpandoObject(); param.videoDecomposition = videoDecomposition; param.mergeReferentials = mergeReferentials; param.videosDirectory = videosDirectory; param.targetProjectId = targetProjectId; return(await _apiHttpClient.ServiceAsync <bool>(KL2_Server.API, nameof(ImportExportService), nameof(ImportVideoDecomposition), param)); });
public async Task <IHttpActionResult> ImportVideoDecomposition([DynamicBody] dynamic param) { try { VideoDecompositionImport videoDecomposition = param.stream.ToObject <VideoDecompositionImport>(); bool mergeReferentials = param.mergeReferentials; string videosDirectory = param.videosDirectory; int targetProjectId = param.targetProjectId; var result = await _importExportService.ImportVideoDecomposition(videoDecomposition, mergeReferentials, videosDirectory, targetProjectId); return(Ok(result)); } catch (Exception ex) { _traceManager.TraceError(ex, ex.Message); return(InternalServerError(ex)); } }
/// <summary> /// Importe décomposition d'une vidéo d'un scénario dans le scénario initial existant d'un projet. /// </summary> /// <param name="videoDecomposition">Les données à importer.</param> /// <param name="mergeReferentials"><c>true</c> pour fusionner les référentiels.</param> /// <param name="videosDirectory">Le dossier qui contient les vidéos.</param> /// <param name="targetProjectId">L'identifiant du projet cible.</param> public virtual async Task <bool> ImportVideoDecomposition(VideoDecompositionImport videoDecomposition, bool mergeReferentials, string videosDirectory, int targetProjectId) => await Task.Run(async() => { using (var context = ContextFactory.GetNewContext()) { var scenario = await context.Scenarios .Include("Project") .FirstOrDefaultAsync(s => s.ProjectId == targetProjectId && s.StateCode == KnownScenarioStates.Draft && s.NatureCode == KnownScenarioNatures.Initial); await Queries.LoadScenariosDetails(context, EnumerableExt.Concat(scenario), null); if (scenario == null) { return(false); } await new VideoDecompositionImporter(context, videoDecomposition, scenario).ImportVideoDecomposition(mergeReferentials, videosDirectory); return(true); } });