Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        public ActionResult Edit(UserAudioViewModel userAudioViewModel)
        {
            UserAudio userAudioModel = new UserAudio();

            userAudioModel.UpdateUserAudio(userAudioViewModel);
            _userAudioService.Update(userAudioModel);
            _userAudioService.Save();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 4
0
 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());
 }
Exemplo n.º 5
0
        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"));
        }
Exemplo n.º 6
0
 public void Update(UserAudio userAudio)
 {
     _userAudioRepository.Update(userAudio);
 }
Exemplo n.º 7
0
 public UserAudio Add(UserAudio userAudio)
 {
     return(_userAudioRepository.Add(userAudio));
 }