public async Task <IActionResult> AddMusic(AddMusicModel model, int userId) { var dtNow = DateTime.Now; User user = await db.Users.FindAsync(userId); string dateTimeNow = $"{dtNow.Day}.{dtNow.Month}.{dtNow.Year} {dtNow.Hour}:{dtNow.Minute}:{dtNow.Second}"; string musicFileName = $"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName; string sharingLinkMusic = ""; string sharingLinkImage = ""; try { if (await cloudService.IfFileExists("", musicFileName)) { return(new OkObjectResult(new { msg = $"В вашем хранилище уже есть файл {model.MusicFile.FileName}" })); } if (model.MusicImageFile != null) { if (await cloudService.IfFileExists("", $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName)) { return(new OkObjectResult(new { msg = $"В вашем хранилище уже есть файл {model.MusicImageFile.FileName}" })); } sharingLinkImage = await cloudService.AddFile("", $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName, model.MusicImageFile.OpenReadStream()); } sharingLinkMusic = await cloudService.AddFile("", musicFileName, model.MusicFile.OpenReadStream()); var music = new Music { MusicName = model.MusicName, MusicFileName = musicFileName, MusicUrl = sharingLinkMusic, MusicImageName = model.MusicImageFile == null ? $"{options.Value.DefaultMusicImageFile}" : $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName, MusicImageUrl = model.MusicImageFile == null ? $"{options.Value.DefaultMusicImageFileLink}" : sharingLinkImage, UserId = user.UserId, DateOfPublication = dtNow, MusicGenreId = model.MusicGenreId }; db.Musics.Add(music); await db.SaveChangesAsync(); var notificationResult = notificationManager.AddNotification(new AddNotification { UserId = userId, SourceId = music.MusicId, NotificationType = NotificationType.AddedMusic, Message = $"Пользователь {user.Login} добавил новую песню под названием {music.MusicName}" }).Result; if (!notificationResult.OperationCompleted) { throw new Exception(notificationResult.ErrorMessage); } return(new OkObjectResult(new { id = music.MusicId })); } catch { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> AddPlaylist(AddPlaylistModel model, int userId) { var dateTimeNow = DateTime.Now; var createDate = $"{dateTimeNow.Day}.{dateTimeNow.Month}.{dateTimeNow.Year} {dateTimeNow.Hour}:{dateTimeNow.Minute}:{dateTimeNow.Second}"; var sharingLinkImage = ""; try { var user = await db.Users.FindAsync(userId); if (user == null) { return(new NotFoundObjectResult(new { msg = "Пользователь не найден" })); } if (model.PlaylistImage != null) { if (await cloudService.IfFileExists("", $"{user.Login}_playlist_{createDate}_" + model.PlaylistImage.FileName)) { return(new OkObjectResult(new { msg = $"В вашем хранилище уже есть файл {model.PlaylistImage.FileName}" })); } sharingLinkImage = await cloudService.AddFile("", $"{user.Login}_playlist_{createDate}_" + model.PlaylistImage.FileName, model.PlaylistImage.OpenReadStream()); } var playlist = new Playlist { PlaylistName = model.PlaylistName, PlaylistDescription = model.PlaylistDescription, PlaylistImageFile = model.PlaylistImage == null ? $"{options.Value.DefaultPlaylistImageFile}" : $"{user.Login}_playlist_{createDate}_" + model.PlaylistImage.FileName, PlaylistImageUrl = model.PlaylistImage == null ? $"{options.Value.DefaultPlaylistImageLink}" : sharingLinkImage, UserId = user.UserId, CreateDate = dateTimeNow }; db.Playlists.Add(playlist); await db.SaveChangesAsync(); var notificationResult = notificationManager.AddNotification(new AddNotification { UserId = userId, SourceId = playlist.PlaylistId, NotificationType = NotificationType.AddedPlaylist, Message = $"Пользователь {user.Login} добавил новый плейлист под названием {playlist.PlaylistName}" }).Result; if (!notificationResult.OperationCompleted) { throw new Exception(notificationResult.ErrorMessage); } return(new OkObjectResult(new { id = playlist.PlaylistId })); } catch { return(new StatusCodeResult(500)); } }