Пример #1
0
        public async Task <ActionResult> Schedule(int id, ScheduleViewModel model)
        {
            var currentUserId = User.Identity.GetUserId();
            var kheechEvent   = new KheechEvent();

            kheechEvent.EventName         = model.EventName;
            kheechEvent.ApplicationUserId = currentUserId;
            kheechEvent.StartDate         = model.WhenToMeet;
            kheechEvent.EndDate           = kheechEvent.StartDate.AddHours(2);
            kheechEvent.IsGroupEvent      = false;
            kheechEvent.InsertDate        = DateTime.UtcNow;

            var googleLocation = model.WhereToMeet.Split(',').ToList();
            var locationToMeet = googleLocation[0];
            var Counter        = googleLocation.Count;

            var location = await _context.Locations.FirstOrDefaultAsync(l => l.Name == locationToMeet);

            if (location == null)
            {
                location = new Location
                {
                    Name       = locationToMeet,
                    address1   = googleLocation[Counter - 4],
                    Country    = googleLocation[Counter - 1],
                    City       = googleLocation[Counter - 3],
                    State      = googleLocation[Counter - 2],
                    InsertDate = DateTime.UtcNow
                };
                _context.Locations.Add(location);
                //_context.SaveChanges();,
            }

            kheechEvent.LocationId = location.Id;

            _context.KheechEvents.Add(kheechEvent);

            foreach (var kuser in model.WhoToMeet)
            {
                var kheechUser = new KheechUser
                {
                    KheechEventId     = kheechEvent.Id,
                    ApplicationUserId = kuser,
                    IsAccepted        = false
                };

                _context.KheechUsers.Add(kheechUser);
            }
            await _context.SaveChangesAsync();

            TempData["ScheduleMessage"] = "Congratulations, you have successfully added a Kheech. Keep going!";
            return(RedirectToRoute("SendKheechNotification", new { id = kheechEvent.Id, returnFrom = "Schedule" }));
        }
Пример #2
0
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            KheechEvent kheechEvent = await _context.KheechEvents.Include(k => k.ApplicationUser)
                                      .Include(k => k.KheechComments)
                                      .Include(k => k.KheechUsers)
                                      .Include(k => k.KheechMoments)
                                      .Include(k => k.Location)
                                      .Include(k => k.Group)
                                      .FirstOrDefaultAsync(k => k.Id == id);

            if (kheechEvent == null)
            {
                return(HttpNotFound());
            }

            var  currentUserId   = User.Identity.GetUserId();
            bool isRelatedKheech = false;

            if (kheechEvent.ApplicationUserId == currentUserId)
            {
                isRelatedKheech = true;
            }

            foreach (var user in kheechEvent.KheechUsers)
            {
                if (user.ApplicationUserId == currentUserId)
                {
                    isRelatedKheech = true;
                }
                var kheechUser = await _context.Users.FirstOrDefaultAsync(u => u.Id == user.ApplicationUserId);

                if (kheechUser == null)
                {
                    return(HttpNotFound());
                }

                user.ApplicationUser = kheechUser;
            }

            if (!isRelatedKheech)
            {
                TempData["NotRelated"] = "This kheech does not belongs to you. Hence, you cannot see the details";
                return(RedirectToRoute("HomePage"));
            }

            foreach (var comment in kheechEvent.KheechComments)
            {
                var commentUser = await _context.Users.FirstOrDefaultAsync(u => u.Id == comment.CreatorId);

                if (commentUser == null)
                {
                    return(HttpNotFound());
                }

                comment.ApplicationUser = commentUser;
            }
            return(View(kheechEvent));
        }