Exemplo n.º 1
0
        /// <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>();
        }
Exemplo n.º 2
0
 /// <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));
 });
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        /// <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);
            }
        });