コード例 #1
0
        public async Task AddAsync(IFormFile audio)
        {
            var guid        = GenerateGuid();
            var storageName = guid + audio.FileName;

            await fileStorage.Upload(audio, storageName);

            var audioEntity = GenerateAudioEntity(audio.FileName, guid);
            await audioRepository.Add(audioEntity);

            await audioRepository.SaveChanges();

            AddAnalyzedAudioToDb(audio.FileName, guid, storageName);
        }
コード例 #2
0
        public async Task <ActionResult> AddAudio(IFormFile formFile)
        {
            var result = await _photoService.AddAudioAsync(formFile);

            if (result.Error != null)
            {
                return(BadRequest(result.Error));
            }
            var audio = new Audio
            {
                Url      = result.SecureUrl.AbsoluteUri,
                PublicId = result.PublicId
            };

            _audioRepository.Add(audio);

            if (await _audioRepository.SaveAll())
            {
                return(Ok(audio.Id));
            }

            return(BadRequest("Nie udało się dodać nagrania" + result.SecureUrl.AbsoluteUri));
        }
コード例 #3
0
 public Audio Add(Audio audio)
 {
     return(_audioRepository.Add(audio));
 }
コード例 #4
0
ファイル: AudioPublisher.cs プロジェクト: amanowar/storybook
 public void OnNext(IAudioRecording value)
 {
     audioRepository.Add(value);
 }
コード例 #5
0
        public async Task <IActionResult> UploadFile()
        {
            if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
            {
                return(BadRequest($"Expected a multipart request, but got {Request.ContentType}"));
            }

            var stationFile = await HandleMultipartRequest();

            var          formData = stationFile.formAccumulator.GetResults();
            StringValues filename;
            bool         ok = false;
            //Cuando se envian los audios se envia el APIKey con ese obtener el id y guardar en la base
            //APIKey para autenticar
            StringValues APIKey;
            StringValues Id;

            ok = formData.TryGetValue("APIKey", out APIKey);
            if (!ok)
            {
                return(BadRequest("Expected APIKey key"));
            }

            ok = formData.TryGetValue("Id", out Id);
            if (!ok)
            {
                return(BadRequest("Expected ID key"));
            }

            {
                string strStationId = "";
                int    id;
                var    StationResult = _StationRepository.Get(APIKey.ToString());
                var    stationCount  = _StationRepository.GetStationCount(APIKey);

                if (stationCount != 0)
                {
                    id           = StationResult.Result.Id;
                    strStationId = id.ToString(); //id 1 2 3
                    //string name=StationResult.Result.Name; //name folder with station name

                    //Authentication
                    if (strStationId != Id)
                    {
                        return(BadRequest("Authentication Failed"));
                    }

                    //other parameters
                    ok = formData.TryGetValue("filename", out filename);
                    if (!ok)
                    {
                        return(BadRequest("Expected filename key"));
                    }

                    StringValues recordingDate;
                    ok = formData.TryGetValue("RecordingDate", out recordingDate);
                    if (!ok)
                    {
                        return(BadRequest("Expected RecordingDate key"));
                    }

                    StringValues duration;
                    ok = formData.TryGetValue("Duration", out duration);
                    if (!ok)
                    {
                        return(BadRequest("Expected Duration key"));
                    }

                    StringValues format;
                    ok = formData.TryGetValue("Format", out format);
                    if (!ok)
                    {
                        return(BadRequest("Expected Format key"));
                    }

                    var audio = new Audio();
                    try {
                        audio.RecordingDate = DateTime.ParseExact(recordingDate, "d/M/yyyy HH:mm", CultureInfo.InvariantCulture);
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest("Expected date to be in format 'dd/mm/yyyy hh:mm'"));
                    }
                    audio.ArriveDate = DateTime.Now;
                    audio.StationId  = id;
                    audio.Duration   = duration;
                    audio.Format     = format;
                    audio.LabelList  = new List <String>();
                    await _AudioRepository.Add(audio);

                    var new_audio = await _AudioRepository.GetLastAudio();

                    string strfilename = "" + new_audio.Id + "." + new_audio.Format;

                    var filePath = "";
                    if (strStationId != null)
                    {
                        Core.MakeStationFolder(strStationId);
                        filePath = Path.Combine(Core.StationAudiosFolderPath(strStationId),
                                                strfilename);
                        Console.Write(filePath);
                    }

                    using (var stream = new FileStream(filePath, FileMode.Create)) {
                        await stationFile.memoryStream.CopyToAsync(stream);

                        stationFile.memoryStream.Close();
                    }

                    { // Convert Decompressed File to ogg and add to playlist
                        var process = new Process();
                        process.StartInfo.FileName = "ffmpeg";
                        var fileInfo            = new FileInfo(filePath);
                        var filenameNoExtension = fileInfo.Name.Remove((int)(fileInfo.Name.Length - fileInfo.Extension.Length));
                        // var milliseconds = long.Parse(filenameNoExtension);
                        // var date = DateTimeExtensions.DateTimeFromMilliseconds(milliseconds);
                        // var localDate = date.ToLocalTime();
                        var oggFilename = filenameNoExtension + ".ogg";
                        var oggFilePath = Path.Combine(Core.StationOggFolderPath(strStationId), oggFilename);
                        process.StartInfo.Arguments = "-i " + filePath + " " + oggFilePath;
                        process.Start();
                    }
                }
                else
                {
                    return(Content("Invalid APIKEY"));
                }
            }
            return(Content("File received"));
        }