public async Task ArchivosBusiness_ModificarArchivoStream_ShouldModify()
        {
            using (FileStream video = File.Open(@"C:\Users\Bloodnero\Documents\Visual Studio 2017\Presentación de campeón- Xayah - Jugabilidad - League of Legends.mp4", FileMode.Open, FileAccess.Read))
            {
                ArchivosBusiness archivoServices = new ArchivosBusiness();

                var hola = await archivoServices.ModificarArchivoStream(97, (int)TipoArchivo.Video, null);

                Assert.IsNotNull(hola);
            }
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> ModificarArchivoStream(int consecutivoArchivo, int codigoTipoArchivo)
        {
            if (consecutivoArchivo <= 0 || codigoTipoArchivo <= 0)
            {
                return(BadRequest("consecutivoArchivo o codigoTipoArchivo nulo o invalido!."));
            }

            try
            {
                using (Stream sourceStream = await Request.Content.ReadAsStreamAsync())
                {
                    if (sourceStream == null)
                    {
                        return(BadRequest("Stream del archivo nulo o invalido!."));
                    }

                    if (codigoTipoArchivo == (int)TipoArchivo.Video)
                    {
                        string fileNameToVerify     = Guid.NewGuid().ToString();
                        string fullFileNameToVerify = HttpContext.Current.Server.MapPath(string.Format("~/App_Data/{0}.mp4", fileNameToVerify));

                        string fileNameToCopy     = Guid.NewGuid().ToString();
                        string fullFileNameToCopy = HttpContext.Current.Server.MapPath(string.Format("~/App_Data/{0}.mp4", fileNameToCopy));

                        using (FileStream fileToVerify = new FileStream(fullFileNameToVerify, FileMode.Create))
                        {
                            await sourceStream.CopyToAsync(fileToVerify);
                        }

                        sourceStream.Dispose();

                        FFMpegConverter ffMpeg = new FFMpegConverter();
                        ffMpeg.ConvertMedia(fullFileNameToVerify, fullFileNameToCopy, Format.mp4);

                        using (FileStream fileToCopy = new FileStream(fullFileNameToCopy, FileMode.Open, FileAccess.Read))
                        {
                            WrapperSimpleTypesDTO wrapperModificarArchivoStream = await _archivoBusiness.ModificarArchivoStream(consecutivoArchivo, codigoTipoArchivo, fileToCopy);

                            fileToCopy.Dispose();
                            fileToCopy.Close();

                            if (File.Exists(fullFileNameToVerify))
                            {
                                File.Delete(fullFileNameToVerify);
                            }
                            if (File.Exists(fullFileNameToCopy))
                            {
                                File.Delete(fullFileNameToCopy);
                            }

                            return(Ok(wrapperModificarArchivoStream));
                        }
                    }
                    else
                    {
                        WrapperSimpleTypesDTO wrapperModificarArchivoStream = await _archivoBusiness.ModificarArchivoStream(consecutivoArchivo, codigoTipoArchivo, sourceStream);

                        return(Ok(wrapperModificarArchivoStream));
                    }
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }