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" })); }
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)); }