public async Task <IActionResult> EditMusic(EditMusicModel model, int UserId) { string musicFileName, imageFileName; User user = await db.Users.FindAsync(UserId); Music music = await db.Musics.FindAsync(model.Id); string dateTimeNow = $"{DateTime.Now.Day}.{DateTime.Now.Month}.{DateTime.Now.Year} {DateTime.Now.Hour}:{DateTime.Now.Minute}:{DateTime.Now.Second}"; try { if (model.MusicFile != null) { musicFileName = $"{user.Login}_{dateTimeNow}_" + model.MusicFile.FileName; music.MusicUrl = await cloudService.EditFile("", music.MusicFileName, "", musicFileName, model.MusicFile.OpenReadStream()); music.MusicFileName = musicFileName; } if (model.MusicImageFile != null) { imageFileName = $"{user.Login}_music_{dateTimeNow}_" + model.MusicImageFile.FileName; if (music.MusicImageName != $"{options.Value.DefaultMusicImageFile}") { music.MusicImageUrl = await cloudService.EditFile("", music.MusicImageName, "", imageFileName, model.MusicImageFile.OpenReadStream()); music.MusicImageName = imageFileName; } else { music.MusicImageUrl = await cloudService.AddFile("", imageFileName, model.MusicImageFile.OpenReadStream()); music.MusicImageName = imageFileName; } } music.MusicName = model.MusicName; music.MusicGenreId = model.MusicGenreId; await db.SaveChangesAsync(); return(new OkResult()); } catch { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> EditProfile(EditProfile model, int userId) { string imageFileName; var dateTimeNow = DateTime.Now; var createDate = $"{dateTimeNow.Day}.{dateTimeNow.Month}.{dateTimeNow.Year} {dateTimeNow.Hour}:{dateTimeNow.Minute}:{dateTimeNow.Second}"; try { var user = await db.Users.FindAsync(userId); if (user == null) { return(new NotFoundObjectResult(new { msg = "Пользователь не найден" })); } if (model.Avatar != null) { imageFileName = $"{user.Login}_user_{createDate}_" + model.Avatar.FileName; if (user.AvatarFile != options.Value.DefaultUserImageFile) { user.Avatar = await cloudService.EditFile("", user.AvatarFile, "", imageFileName, model.Avatar.OpenReadStream()); user.AvatarFile = imageFileName; } else { user.Avatar = await cloudService.AddFile("", imageFileName, model.Avatar.OpenReadStream()); user.AvatarFile = imageFileName; } } user.City = model.City; user.Country = model.Country; user.Name = model.Name; user.Surname = model.Surname; await db.SaveChangesAsync(); return(new OkObjectResult(new { avatar = user.Avatar })); } catch { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> EditPlaylist(PlaylistEditor model, int userId) { var playlist = await db.Playlists.FindAsync(model.PlaylistId); if (playlist == null) { return(new NotFoundObjectResult(new { msg = "Плейлист не найден" })); } if (playlist.UserId != userId) { return(new ForbidResult()); } if (model.Musics == null) { model.Musics = new List <int>(); } var user = await db.Users.FindAsync(userId); string imageFileName; var dateTimeNow = DateTime.Now; var createDate = $"{dateTimeNow.Day}.{dateTimeNow.Month}.{dateTimeNow.Year} {dateTimeNow.Hour}:{dateTimeNow.Minute}:{dateTimeNow.Second}"; try { if (model.ImageFile != null) { imageFileName = $"{user.Login}_playlist_{createDate}_" + model.ImageFile.FileName; if (playlist.PlaylistImageFile != options.Value.DefaultPlaylistImageFile) { playlist.PlaylistImageUrl = await cloudService.EditFile("", playlist.PlaylistImageFile, "", imageFileName, model.ImageFile.OpenReadStream()); playlist.PlaylistImageFile = imageFileName; } else { playlist.PlaylistImageUrl = await cloudService.AddFile("", imageFileName, model.ImageFile.OpenReadStream()); playlist.PlaylistImageFile = imageFileName; } } playlist.PlaylistName = model.PlaylistName; playlist.PlaylistDescription = model.PlaylistDescription; var pm = await db.PlaylistsMusics.Where(pm => pm.PlaylistId == model.PlaylistId).ToListAsync(); var sub = model.Musics.Except(pm.Select(pm => pm.MusicId)); if (model.Musics.Count != pm.Count || sub.Count() != 0) { db.PlaylistsMusics.RemoveRange(pm); var playlistMusics = new List <PlaylistsMusic>(); foreach (var m in model.Musics) { playlistMusics.Add(new PlaylistsMusic { PlaylistId = model.PlaylistId, MusicId = m }); } await db.PlaylistsMusics.AddRangeAsync(playlistMusics); } await db.SaveChangesAsync(); return(new OkResult()); } catch { return(new StatusCodeResult(500)); } }