public async Task <ActionResult> Add(FormCollection collection) { string movieTitle = collection?.GetValue(nameof(AppDAL.pocos.Movies.Title))?.AttemptedValue; if (string.IsNullOrWhiteSpace(movieTitle)) { throw new HttpException(400, "Title cannot be empty"); } using (var dbc = new AppDAL.AppDataDbContext()) { dbc.Movies.Add(new AppDAL.pocos.Movies() { Title = movieTitle, Description = collection.GetValue(nameof(AppDAL.pocos.Movies.Description)).AttemptedValue, UserId = User.Identity.GetUserId() }); try { await dbc.SaveChangesAsync(); } catch (Exception ex) { throw new HttpException(500, $"Could not save data. {ex.Message}"); } } return(View()); }
public void UpdateFromSourceForUser(string userId, string currentUserId) { if (string.IsNullOrEmpty(userId) && string.IsNullOrEmpty(currentUserId)) { return; } IsByCurrentUser = userId.Equals(currentUserId, StringComparison.OrdinalIgnoreCase); using (var dbc = new Models.ApplicationDbContext()) { try { UserName = dbc.Users .Where(x => x.Id.Equals(userId)) .Select(x => x.UserName) .ToList() .First(); } catch (Exception ex) when(ex is ArgumentNullException || ex is InvalidOperationException) { UserName = "******"; } } using (var dbc = new AppDAL.AppDataDbContext()) { Movies = dbc.Movies .Where(x => x.UserId.Equals(userId, StringComparison.OrdinalIgnoreCase)) .OrderByDescending(x => x.DateAdded) .ToList(); } }
public async Task <ActionResult> UserDisposition() { // Get items from query string if (!int.TryParse(Convert.ToString(Request.QueryString["movieId"]), out int iRequestMovieId)) { throw new HttpException(400, "Invalid Movie"); } if (!int.TryParse(Convert.ToString(Request.QueryString["value"]), out int iRequestDisposition)) { throw new HttpException(400, "Invalid Disposition"); } // var currentUserId = User.Identity.GetUserId(); // using (var dbc = new AppDAL.AppDataDbContext()) { // get user who added requested movie var IsFromCurrentUser = dbc.Movies .Where(x => x.Id == iRequestMovieId && x.UserId.Equals(currentUserId)) .Any(); if (IsFromCurrentUser) { return(RedirectToAction(nameof(Index))); } // Get current user disposition try { var currentUserDispositionForMovie = dbc.MoviesUsersDisposition .Where(x => x.MovieId == iRequestMovieId && x.UserId.Equals(currentUserId)) .First(); // currentUserDispositionForMovie.DateTimeSet = DateTime.UtcNow; currentUserDispositionForMovie.MovieId = iRequestMovieId; currentUserDispositionForMovie.UserId = currentUserId; currentUserDispositionForMovie.Like = iRequestDisposition == (int)NHome.Definitions.DispositionResult.Like; } catch (Exception ex) when(ex is ArgumentNullException || ex is InvalidOperationException) { dbc.MoviesUsersDisposition.Add(new AppDAL.pocos.MoviesUsersDisposition() { DateTimeSet = DateTime.UtcNow, MovieId = iRequestMovieId, UserId = currentUserId, Like = iRequestDisposition == (int)NHome.Definitions.DispositionResult.Like, }); } catch (Exception ex) { throw new HttpException(500, $"Something went wrong. {ex.Message}"); } // try { await dbc.SaveChangesAsync(); } catch (Exception ex) { throw new HttpException(500, $"Could not save data. {ex.Message}"); } } return(RedirectToAction(nameof(Index))); }
public static IEnumerable <Index> Get(string currentUserId, string orderBy) { if (string.IsNullOrWhiteSpace(currentUserId)) { return(new List <Index>()); } // using (var Appdbc = new Models.ApplicationDbContext()) using (var dbc = new AppDAL.AppDataDbContext()) { var res = (from m in dbc.Movies select new ModelsView.MoviesSetup.Index { Movies = m, }).ToList(); foreach (var item in res) { { var user = (from u in Appdbc.Users where u.Id == item.Movies.UserId select new Common.SimpleUserData { UserName = u.UserName, Id = u.Id }) .ToList() .DefaultIfEmpty(new Common.SimpleUserData { UserName = "******", Id = null }) .First(); if ((user.Id?.Equals(currentUserId, System.StringComparison.OrdinalIgnoreCase)) ?? false) { item.PostedByUser = "******"; item.FromCurrentUser = true; } else { item.PostedByUser = user.UserName; item.FromCurrentUser = false; } item.UserId = user.Id; } { var resDisposition = dbc.MoviesUsersDisposition .Where(x => x.MovieId.Equals(item.Movies.Id) && x.UserId.Equals(currentUserId)) .Select(x => x.Like); item.UserDisposition = (byte)DispositionResult.NotAvailable; if (resDisposition.Any()) { item.UserDisposition = resDisposition.First() ? (byte)DispositionResult.Like : (byte)DispositionResult.Hate; } } var resLikes = dbc.MoviesUsersDisposition .Where(x => x.MovieId.Equals(item.Movies.Id)) .GroupBy(x => x.Like) .Select(x => new { disposition = x.Key, count = x.Count() }).ToDictionary(x => x.disposition, x => x.count); // int iVal; item.Likes = 0; item.Hates = 0; if (resLikes.TryGetValue(true, out iVal)) { item.Likes = iVal; } if (resLikes.TryGetValue(false, out iVal)) { item.Hates = iVal; } } // return(SortData(orderBy, res)); } }
public static IEnumerable <Index> Get(string currentUserId, string orderBy) { if (string.IsNullOrWhiteSpace(currentUserId)) { return(new List <Index>()); } // using (var Appdbc = new Models.ApplicationDbContext()) using (var dbc = new AppDAL.AppDataDbContext()) { var res = (from m in dbc.Movies select new ModelsView.Home.Index { Movies = m, }).ToList(); foreach (var item in res) { { var user = (from u in Appdbc.Users where u.Id == item.Movies.UserId select u.UserName) .DefaultIfEmpty("Unknow User") .First(); item.PostedByUser = user; } { var resDisposition = dbc.MoviesUsersDisposition .Where(x => x.MovieId.Equals(item.Movies.Id) && x.UserId.Equals(currentUserId)) .Select(x => x.Like); item.UserDisposition = (byte)DispositionResult.NotAvailable; if (resDisposition.Any()) { item.UserDisposition = resDisposition.First() ? (byte)DispositionResult.Like : (byte)DispositionResult.Hate; } } item.FromCurrentUser = string.Compare(item.Movies.UserId, currentUserId, true) == 0; var resLikes = dbc.MoviesUsersDisposition .Where(x => x.MovieId.Equals(item.Movies.Id)) .GroupBy(x => x.Like) .Select(x => new { disposition = x.Key, count = x.Count() }).ToDictionary(x => x.disposition, x => x.count); // int iVal; item.Likes = 0; item.Hates = 0; if (resLikes.TryGetValue(true, out iVal)) { item.Likes = iVal; } if (resLikes.TryGetValue(false, out iVal)) { item.Hates = iVal; } } // return(SortData(orderBy, res)); } }