public async Task <ResponseDto <BaseModelDto> > AddNotification( AddNotificationBindingModel addNotificationBindingModel, int tvSeriesId, string userId) { var response = new ResponseDto <BaseModelDto>(); var tvSeriesExists = await _tvSeriesRepository.ExistAsync(x => x.Id == tvSeriesId); if (!tvSeriesExists) { response.AddError(Model.TvShow, Error.tvShow_NotFound); return(response); } if (userId == null) { response.AddError(Model.Account, Error.account_Login); return(response); } Notification notification = new Notification(); notification.CreateDateTime = DateTime.Now; notification.TvShowId = tvSeriesId; notification.UserId = userId; notification.Type = addNotificationBindingModel.Type; if (addNotificationBindingModel.Type == "watchedEpisode") { notification.FirstPart = "Dodano odcinek " + addNotificationBindingModel.EpisodeNumber + " serialu "; notification.SecondPart = " do obejrzanych"; } else if (addNotificationBindingModel.Type == "ratedTvSeries") { notification.FirstPart = "Oceniono serial "; notification.SecondPart = ""; } else if (addNotificationBindingModel.Type == "favouriteTvSeries") { notification.FirstPart = "Dodano serial "; notification.SecondPart = " do ulubionych"; } else if (addNotificationBindingModel.Type == "commentedTvSeries") { notification.FirstPart = "Dodano komentarz do serialu "; notification.SecondPart = ""; } var result = await _notificationRepository.AddAsync(notification); if (!result) { response.AddError(Model.Notification, Error.notification_Adding); return(response); } return(response); }
public async Task <IActionResult> AddNotification( [FromBody] AddNotificationBindingModel addNotificationBindingModel, int tvSeriesId) { string user = User.Identity.Name; var result = await _notificationService.AddNotification(addNotificationBindingModel, tvSeriesId, user); if (result.ErrorOccurred) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <ResponseDto <BaseModelDto> > AddTvSeriesUserRating(string userLogged, int tvSeriesId, AddTvSeriesRatingBindingModel tvSeriesRatingBindingModel) { var response = new ResponseDto <BaseModelDto>(); var tvSeriesExists = await _tvSeriesRepository.ExistAsync(x => x.Id == tvSeriesId); if (!tvSeriesExists) { response.AddError(Model.TvShow, Error.tvShow_NotFound); return(response); } var ratingExists = await _tvSeriesUserRatingRepository.ExistAsync(x => x.UserId == userLogged && x.TvShowId == tvSeriesId); if (ratingExists) { response.AddError(Model.Rating, Error.rating_Already_Added); return(response); } var userRating = _mapper.Map <TvSeriesUserRating>(tvSeriesRatingBindingModel); userRating.Average = (userRating.Effects + userRating.Music + userRating.Story) / 3; userRating.TvShowId = tvSeriesId; userRating.UserId = userLogged; var result = await _tvSeriesUserRatingRepository.AddAsync(userRating); if (!result) { response.AddError(Model.Rating, Error.rating_Adding); return(response); } else { if (userLogged != null) { AddNotificationBindingModel addNotificationBindingModel = new AddNotificationBindingModel(); addNotificationBindingModel.Type = "ratedTvSeries"; await _notificationService.AddNotification(addNotificationBindingModel, tvSeriesId, userLogged); } } response = await AddTvSeriesRating(userRating, response); return(response); }
public async Task <ResponseDto <BaseModelDto> > AddUserFavouriteTvSeries(int episodeId, string userId) { var response = new ResponseDto <BaseModelDto>(); var episodeExists = await _episodeRepository.ExistAsync(x => x.Id == episodeId); if (!episodeExists) { response.AddError(Model.TvShow, Error.tvShow_NotFound); return(response); } var watchedTvSeriesInDb = await _userWatchedEpisodeRepository.GetByAsync(x => x.EpisodeId == episodeId && x.UserId == userId); if (watchedTvSeriesInDb != null) { response.AddError(Model.WatchedEpisode, Error.watchedEpisode_Already_Exists); return(response); } UserWatchedEpisode watchedEpisode = new UserWatchedEpisode(); watchedEpisode.CreateDateTime = DateTime.Now; watchedEpisode.EpisodeId = episodeId; watchedEpisode.UserId = userId; var result = await _userWatchedEpisodeRepository.AddAsync(watchedEpisode); if (!result) { response.AddError(Model.FavouriteTvShow, Error.favouriteTvShow_Adding); return(response); } else { AddNotificationBindingModel addNotificationBindingModel = new AddNotificationBindingModel(); addNotificationBindingModel.Type = "watchedEpisode"; var episode = await _episodeRepository.GetByAsync(x => x.Id == episodeId, x => x.Season.TvShow); addNotificationBindingModel.EpisodeNumber = episode.EpisodeNumber; await _notificationService.AddNotification(addNotificationBindingModel, episode.Season.TvShow.Id, userId); } return(response); }
public async Task <ResponseDto <BaseModelDto> > AddComment(AddCommentBindingModel addCommentBindingModel, int tvSeriesId, string userId) { var response = new ResponseDto <BaseModelDto>(); var tvSeriesExists = await _tvSeriesRepository.ExistAsync(x => x.Id == tvSeriesId); if (!tvSeriesExists) { response.AddError(Model.TvShow, Error.tvShow_NotFound); return(response); } if (userId == null) { response.AddError(Model.Account, Error.account_Login); return(response); } Comment comment = new Comment(); comment.Content = addCommentBindingModel.Content; comment.TvSeriesId = tvSeriesId; comment.UserId = userId; comment.CreateDateTime = DateTime.Now; comment.UpdateDateTime = DateTime.Now; var result = await _commentRepository.AddAsync(comment); if (!result) { response.AddError(Model.Comment, Error.comment_Adding); return(response); } else { if (userId != null) { AddNotificationBindingModel addNotificationBindingModel = new AddNotificationBindingModel(); addNotificationBindingModel.Type = "commentedTvSeries"; await _notificationService.AddNotification(addNotificationBindingModel, tvSeriesId, userId); } } return(response); }
public async Task <ResponseDto <BaseModelDto> > AddUserFavouriteTvSeries(int tvSeriesId, string userId) { var response = new ResponseDto <BaseModelDto>(); var tvSeriesExists = await _tvSeriesRepository.ExistAsync(x => x.Id == tvSeriesId); if (!tvSeriesExists) { response.AddError(Model.TvShow, Error.tvShow_NotFound); return(response); } var favouriteTvSeriesInDb = await _userFavouriteTvShowsRepository.GetByAsync(x => x.TvShowId == tvSeriesId && x.UserId == userId); if (favouriteTvSeriesInDb != null) { response.AddError(Model.FavouriteTvShow, Error.favouriteTvShow_Already_Exists); return(response); } UserFavouriteTvShows favouriteTvShow = new UserFavouriteTvShows(); favouriteTvShow.TvShowId = tvSeriesId; favouriteTvShow.UserId = userId; var result = await _userFavouriteTvShowsRepository.AddAsync(favouriteTvShow); if (!result) { response.AddError(Model.FavouriteTvShow, Error.favouriteTvShow_Adding); return(response); } else { if (userId != null) { AddNotificationBindingModel addNotificationBindingModel = new AddNotificationBindingModel(); addNotificationBindingModel.Type = "favouriteTvSeries"; await _notificationService.AddNotification(addNotificationBindingModel, tvSeriesId, userId); } } return(response); }