コード例 #1
0
        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;
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }