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)); } }
public async Task <IActionResult> Add(ArticleView result) { if (await _articleService.CheckIfSlugExist(result.Slug)) { ModelState.AddModelError("", "Wpis o podanym linku istnieje"); } if (!ModelState.IsValid) { // 1. Pobieranie listy tagów oraz kategorii ViewBag.Categories = await _categoryService.GetAll(); ViewBag.Tags = await _tagService.GetAll(); return(View(result)); } // 2.Poprawnie zwalidowane post zapisuję do bazy danych // a. Pobranie dodatkowych informacji do artykułu | usera, url strony var user = await _userManager.GetUserAsync(User); var seoSettings = await _seoService.GetSeoSettings(); // b. Utworzenie wpisu var articleModel = ArticleHelpers.ConvertToModel(result, user, seoSettings.MainUrl); var article = await _articleService.Create(articleModel); if (article == false) { return(RedirectToAction("Index", "Admin")); } // TODO: przekieruj na stronę z błędem // c. Zapis zdjęcia var medium = await _cloudService.AddFile(result.FeaturedImg, articleModel); // d. Wygenerowanie taxonomies await _taxonomyService.SaveCategories(await _categoryService.GetCategoriesByNames(result.Categories), articleModel); await _taxonomyService.SaveTags(await _tagService.GetCategoriesByNames(result.Tags), articleModel); return(RedirectToAction("List")); }
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)); } }