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> AddMusic([FromForm] AddMusicModel model) { User user = await db.Users.FindAsync(UserId); string dateTimeNow = DateTime.Now.ToString(); if (await db.Musics.Where(m => m.UserId == user.UserId && m.MusicName == model.MusicName).FirstOrDefaultAsync() != null) { return(Ok(new { msg = $"У вас уже есть запись с названием {model.MusicName}" })); } try { if (CloudStorageAccount.TryParse(storageConfig.Value.ConnectionString, out CloudStorageAccount storageAccount)) { CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(storageConfig.Value.ContainerName); CloudBlockBlob musicBlockBlob = container.GetBlockBlobReference($"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName); if (await musicBlockBlob.ExistsAsync()) { return(Ok(new { msg = $"В вашем хранилище уже есть файл {model.MusicFile.FileName}" })); } if (model.MusicImageFile != null) { CloudBlockBlob imageBlockBlob = container.GetBlockBlobReference($"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName); if (await imageBlockBlob.ExistsAsync()) { return(Ok(new { msg = $"В вашем хранилище уже есть файл {model.MusicImageFile.FileName}" })); } await imageBlockBlob.UploadFromStreamAsync(model.MusicImageFile.OpenReadStream()); } await musicBlockBlob.UploadFromStreamAsync(model.MusicFile.OpenReadStream()); db.Musics.Add(new Music { MusicName = model.MusicName, MusicFileName = $"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName, MusicImageName = model.MusicImageFile == null?"default.png":$"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName, UserId = user.UserId, DateOfPublication = DateTime.Now.Date, MusicGenreId = model.MusicGenreId }); await db.SaveChangesAsync(); return(Ok(new { msg = "" })); } return(StatusCode(500)); } catch { return(StatusCode(500)); } }
public async Task <IActionResult> AddMusic([FromForm] AddMusicModel model) { User user = await db.Users.FindAsync(UserId); string dateTimeNow = $"{DateTime.Now.Day}.{DateTime.Now.Month}.{DateTime.Now.Year} {DateTime.Now.Hour}:{DateTime.Now.Minute}:{DateTime.Now.Second}"; if (await db.Musics.Where(m => m.UserId == user.UserId && m.MusicName == model.MusicName).FirstOrDefaultAsync() != null) { return(Ok(new { msg = $"У вас уже есть запись с названием {model.MusicName}" })); } string musicFileName = $"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName; string sharingLinkMusic = ""; string sharingLinkImage = ""; try { if (await cloud.IfFileExists("", musicFileName)) { return(Ok(new { msg = $"В вашем хранилище уже есть файл {model.MusicFile.FileName}" })); } if (model.MusicImageFile != null) { if (await cloud.IfFileExists("", $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName)) { return(Ok(new { msg = $"В вашем хранилище уже есть файл {model.MusicImageFile.FileName}" })); } sharingLinkImage = await cloud.AddFile("", $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName, model.MusicImageFile.OpenReadStream()); } sharingLinkMusic = await cloud.AddFile("", musicFileName, model.MusicFile.OpenReadStream()); db.Musics.Add(new Music { MusicName = model.MusicName, MusicFileName = musicFileName, MusicUrl = sharingLinkMusic, MusicImageName = model.MusicImageFile == null ? "default.png" : $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName, MusicImageUrl = model.MusicImageFile == null ? "https://www.dropbox.com/s/jattf04mjk4x903/default.png?dl=1" : sharingLinkImage, UserId = user.UserId, DateOfPublication = DateTime.Now.Date, MusicGenreId = model.MusicGenreId }); await db.SaveChangesAsync(); return(Ok(new { msg = "" })); } catch { return(StatusCode(500)); } }
public IActionResult AddMusic([FromForm] AddMusicModel model) { return(musicManager.AddMusic(model, UserId).Result); }