public async Task <IActionResult> Add(Guid?id) { var user = await _userManager.GetUserAsync(User); var currentFile = await _db.UserAudios.Where(p => p.Id.Equals(user.Id)).FirstOrDefaultAsync(p => p.AudioId.Equals(id)); if (currentFile != null) { return(RedirectToAction("MyAudio")); } var file = _db.Audios.FirstOrDefault(p => p.AudioId.Equals(id)); if (file == null) { return(NotFound()); } var userAudio = new UserAudio { User = user, Audio = file, Status = Status.Added }; _db.UserAudios.Add(userAudio); _db.SaveChanges(); return(RedirectToAction("MyAudio")); }
public static void UpdateUserAudio(this UserAudio userAudio, UserAudioViewModel userAudioVM) { userAudio.Id = userAudioVM.Id; userAudio.UserId = userAudioVM.UserId; userAudio.AudioTitle = userAudioVM.AudioTitle; userAudio.Path = userAudioVM.Path; userAudio.CreatedDate = userAudioVM.CreatedDate; userAudio.Text = userAudioVM.Text; }
public ActionResult Edit(UserAudioViewModel userAudioViewModel) { UserAudio userAudioModel = new UserAudio(); userAudioModel.UpdateUserAudio(userAudioViewModel); _userAudioService.Update(userAudioModel); _userAudioService.Save(); return(RedirectToAction("Index")); }
public ActionResult Create(UserAudioViewModel userAudioViewModel) { if (ModelState.IsValid) { UserAudio userAudioModel = new UserAudio(); userAudioModel.UpdateUserAudio(userAudioViewModel); userAudioModel.CreatedDate = DateTime.Now; userAudioModel.UserId = User.Identity.GetUserId(); _userAudioService.Add(userAudioModel); _userAudioService.Save(); return(RedirectToAction("Index")); } return(View()); }
public async Task <IActionResult> UploadFile(IFormFile uploadFile) { if (uploadFile != null) { var user = await _userManager.GetUserAsync(User); if (!Directory.Exists(Path.Combine("wwwroot", "Files", $"{user.Id}"))) { // Create the directory. Directory.CreateDirectory(Path.Combine("wwwroot", "Files", $"{user.Id}")); } var filePath = Path.Combine(Directory.GetCurrentDirectory(), Path.Combine("wwwroot", "Files", $"{user.Id}"), uploadFile.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await uploadFile.CopyToAsync(fileStream); } var audioFile = TagLib.File.Create(filePath); TagLib.IPicture pic = null; if (audioFile.Tag.Pictures.Length >= 1) { pic = audioFile.Tag.Pictures[0]; //pic contains data for image. } if (pic != null) { using (var stream = new MemoryStream(pic.Data.Data)) { Audio file = new Audio { Name = uploadFile.FileName, Path = Path.Combine("Files", $"{user.Id}", $"{uploadFile.FileName}"), AudioId = new Guid(), AuthorId = user.Id, Label = stream.ToArray(), Song = audioFile.Tag.Album }; var userAudio = new UserAudio { User = user, Audio = file, Status = Status.Added }; _db.UserAudios.Add(userAudio); _db.Audios.Add(file); _db.SaveChanges(); } } else { Audio file = new Audio { Name = uploadFile.FileName, Path = Path.Combine("Files", $"{user.Id}", $"{uploadFile.FileName}"), AudioId = new Guid(), AuthorId = user.Id, Label = null, Song = audioFile.Tag.Album }; var userAudio = new UserAudio { User = user, Audio = file, Status = Status.Added }; _db.UserAudios.Add(userAudio); _db.Audios.Add(file); _db.SaveChanges(); } } return(RedirectToAction("Index")); }
public void Update(UserAudio userAudio) { _userAudioRepository.Update(userAudio); }
public UserAudio Add(UserAudio userAudio) { return(_userAudioRepository.Add(userAudio)); }