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); }
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)); }
public Audio Add(Audio audio) { return(_audioRepository.Add(audio)); }
public void OnNext(IAudioRecording value) { audioRepository.Add(value); }
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")); }