Ejemplo n.º 1
0
        public Guid Create(Stream stream)
        {
            if (stream is null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            Guid processIdentifier = processRepository.Create();
            int  blobIdentifier    = blobService.Load(stream, processIdentifier.ToString());

            processRepository.AssignBlob(processIdentifier, blobIdentifier);

            ProcessStatus processStatus = ProcessStatus.Started;

            processRepository.UpdateStatus(processIdentifier, processStatus);

            try
            {
                Stream processed = process.Process(processIdentifier);

                blobService.AssingBlobProcessed(blobIdentifier, processed);

                processStatus = ProcessStatus.Succeded;
            }
            catch (Exception ex)
            {
                processStatus = ProcessStatus.Failed;
            }
            finally
            {
                processRepository.UpdateStatus(processIdentifier, processStatus);
            }

            return(processIdentifier);
        }