private HangoutViewModel HangoutToHangoutViewModel(string userId, Hangout hangout) { var allAtendees = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.HangoutId == hangout.Id && u.IsRSVPd == true select u); var hostAverageRating = (from u in OrganizerRatings_db.OrganizerRatings where u.OrganizerId == hangout.UserCreator select u); double sum = 0; foreach (var r in hostAverageRating) { sum += (double) r.Rating; } var hostAvg = sum/hostAverageRating.Count(); bool isRsvp = false; var isRsvpUserHangout = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.AspNetUsers == userId && u.HangoutId == hangout.Id && u.IsRSVPd == true select u).SingleOrDefault(); if (isRsvpUserHangout != null) { isRsvp = isRsvpUserHangout.IsRSVPd; } var hangoutViewModel = new HangoutViewModel { Date = hangout.Date, Description = hangout.Description, Id = hangout.Id, Name = hangout.Name, Address = hangout.Address, ContactInfo = hangout.ContactInfo, OpenSpots = hangout.PartySize - allAtendees.Count(), HostName = GetUserName(hangout.UserCreator), MaleOpenSpots = (hangout.PartySize/2) - hangout.MaleAttendingCount, FemaleOpenSpots = (hangout.PartySize/2) - hangout.FemaleAttendingCount, GenderRatio = hangout.GenderRatio, HostAverageRating = Math.Round(hostAvg, 2), StartTime = hangout.StartTime, EndTime = hangout.EndTime, IsHost = hangout.UserCreator.Equals(userId) ? true : false, HostUser = GetUser(hangout.UserCreator), IsRsvp = isRsvp, Location = hangout.Location, ImageContent = hangout.ImageContent == null ? new byte[8] : hangout.ImageContent.ToArray(), ImageMimeType = hangout.ImageMimeType == null ? "none" : hangout.ImageMimeType }; foreach (var a in allAtendees) { var user = (from y in AspNetUsers_db.AspNetUsers where y.Id == a.AspNetUsers select y).SingleOrDefault(); hangoutViewModel.AttendingList.Add(GetUser(user.Id)); } return hangoutViewModel; }
public List<HangoutViewModel> ListMyHangouts(string userId) { var hangoutsAttending = from m in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where m.AspNetUsers == userId && m.IsRSVPd == true || m.IsWaitlist == true select m; //var myHangouts = from m in Hangout_db.Hangouts // where m.UserCreator == userId && new DateTime(m.Date.Value.Year, m.Date.Value.Month, m.Date.Value.Day, m.StartTime.Value.Hour, m.StartTime.Value.Minute, m.StartTime.Value.Second) > DateTime.UtcNow.AddHours(-7) // && m.IsCancelled == false // select m; var myHangouts = from m in Hangout_db.Hangouts where m.UserCreator == userId && new DateTime(m.Date.Value.Year, m.Date.Value.Month, m.Date.Value.Day, m.StartTime.Value.Hour, m.StartTime.Value.Minute, m.StartTime.Value.Second) > DateTime.UtcNow.AddHours(-7).AddDays(-7) && m.IsCancelled == false select m; var returnList = new List<HangoutViewModel>(); foreach(var h in myHangouts.ToList()) { var allAtendees = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.HangoutId == h.Id && u.IsRSVPd == true select u); var hostAverageRating = (from u in OrganizerRatings_db.OrganizerRatings where u.OrganizerId == h.UserCreator select u); double sum = 0; foreach (var r in hostAverageRating) { sum += (double)r.Rating; } // Use aggregate in future...it wasnt working before. var average = sum / hostAverageRating.Count(); var hangout = new HangoutViewModel { Date = h.Date, StartTime = h.StartTime, EndTime = h.EndTime, Description = h.Description, Id = h.Id, Name = h.Name, OpenSpots = h.PartySize - allAtendees.Count(), HostName = GetUserName(h.UserCreator), HostUser = GetUser(h.UserCreator), IsHost = true, IsRsvp = false, HostAverageRating = Math.Round(average, 2), Location = h.Location, ImageContent = h.ImageContent == null ? new byte[8] : h.ImageContent.ToArray(), ImageMimeType = h.ImageMimeType == null ? "none" : h.ImageMimeType }; foreach (var a in allAtendees) { var user = (from y in AspNetUsers_db.AspNetUsers where y.Id == a.AspNetUsers select y).SingleOrDefault(); hangout.AttendingList.Add(GetUser(user.Id)); } returnList.Add(hangout); } // Map to returnList if(hangoutsAttending.Any()) { foreach(var h in hangoutsAttending) { //var tempHangout = (from a in Hangout_db.Hangouts // where a.Id == h.HangoutId && new DateTime(a.Date.Value.Year, a.Date.Value.Month, a.Date.Value.Day, a.StartTime.Value.Hour, a.StartTime.Value.Minute, a.StartTime.Value.Second) > DateTime.UtcNow.AddHours(-7) // && a.IsCancelled == false // select a).SingleOrDefault(); var tempHangout = (from a in Hangout_db.Hangouts where a.Id == h.HangoutId && a.IsCancelled == false select a).SingleOrDefault(); if (tempHangout != null) { var rated = (from a in OrganizerRatings_db.OrganizerRatings where a.HangoutId == h.HangoutId && a.OrganizerId == tempHangout.UserCreator && a.AttendeeId == userId select a).SingleOrDefault(); if(rated == null) { var allAtendees = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.HangoutId == tempHangout.Id && u.IsRSVPd == true select u); var hostAverageRating = (from u in OrganizerRatings_db.OrganizerRatings where u.OrganizerId == tempHangout.UserCreator select u); double sum = 0; foreach (var r in hostAverageRating) { sum += (double)r.Rating; } // Use aggregate in future...it wasnt working before. var average = sum / hostAverageRating.Count(); var hangout = new HangoutViewModel { Date = tempHangout.Date, StartTime = tempHangout.StartTime, EndTime = tempHangout.EndTime, Description = tempHangout.Description, Id = tempHangout.Id, Name = tempHangout.Name, OpenSpots = tempHangout.PartySize - allAtendees.Count(), HostName = GetUserName(tempHangout.UserCreator), HostUser = GetUser(tempHangout.UserCreator), HostAverageRating = Math.Round(average, 2), IsRsvp = true, IsHost = false, Location = tempHangout.Location, ImageContent = tempHangout.ImageContent == null ? new byte[8] : tempHangout.ImageContent.ToArray(), ImageMimeType = tempHangout.ImageMimeType == null ? "none" : tempHangout.ImageMimeType }; foreach (var a in allAtendees) { var user = (from y in AspNetUsers_db.AspNetUsers where y.Id == a.AspNetUsers select y).SingleOrDefault(); hangout.AttendingList.Add(GetUser(user.Id)); } returnList.Add(hangout); } } } } // Sorts the list ascending var returnHangouts = from m in returnList orderby new DateTime(m.Date.Value.Year, m.Date.Value.Month, m.Date.Value.Day, m.StartTime.Value.Hour, m.StartTime.Value.Minute, m.StartTime.Value.Second) ascending select m; return returnHangouts.ToList(); }
public List<HangoutViewModel> ListPastHangouts(string userId) { var allPastHangouts = from m in Hangout_db.Hangouts where m.Date < DateTime.Now select m; var returnList = new List<HangoutViewModel>(); foreach (var h in allPastHangouts.ToList()) { var allAtendees = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.HangoutId == h.Id && u.IsRSVPd == true select u); var hangoutAverageRating = (from u in HangoutRatings_db.HangoutRatings where u.HangoutId == h.Id select u); double sum = 0; foreach (var r in hangoutAverageRating) { sum += (double)r.Rating; } // Use aggregate in future...it wasnt working before. var average = sum / hangoutAverageRating.Count(); bool isRsvp = false; var isRsvpUserHangout = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.AspNetUsers == userId && u.HangoutId == h.Id && u.IsRSVPd == true select u).SingleOrDefault(); if(isRsvpUserHangout != null) { isRsvp = isRsvpUserHangout.IsRSVPd; } var hangout = new HangoutViewModel { Date = h.Date, Description = h.Description, Id = h.Id, IsHost = h.UserCreator.Equals(userId) ? true : false, IsRsvp = isRsvp, Name = h.Name, HostName = GetUserName(h.UserCreator), HangoutAverageRating = Math.Round(average, 2), StartTime = h.StartTime, EndTime = h.EndTime }; foreach (var a in allAtendees) { var user = (from y in AspNetUsers_db.AspNetUsers where y.Id == a.AspNetUsers select y).SingleOrDefault(); hangout.AttendingList.Add(new UserViewModel { Name = user.UserName }); } returnList.Add(hangout); } return returnList; }
public HangoutViewModel GetRateHangoutById(int Id) { var h = GetHangoutById(Id); var allAtendees = (from u in AspNetUsers_Hangout_db.AspNetUsers_Hangouts where u.HangoutId == h.Id && u.IsRSVPd == true select u); var returnThis = new HangoutViewModel { Date = h.Date, StartTime = h.StartTime, EndTime = h.EndTime, Description = h.Description, Id = h.Id, Name = h.Name, OpenSpots = h.PartySize - allAtendees.Count(), HostName = GetUserName(h.UserCreator), HostUser = GetUser(h.UserCreator), IsHost = true, IsRsvp = false, Location = h.Location, ImageContent = h.ImageContent == null ? new byte[8] : h.ImageContent.ToArray(), ImageMimeType = h.ImageMimeType == null ? "none" : h.ImageMimeType }; foreach (var a in allAtendees) { var user = (from y in AspNetUsers_db.AspNetUsers where y.Id == a.AspNetUsers select y).SingleOrDefault(); returnThis.AttendingList.Add(GetUser(user.Id)); } return returnThis; }