public async Task <IActionResult> Profile([Bind("Username,Email,Firstname,Lastname,Birthdate,ExternalId,PictureUrl,UserId")] User user) { ViewData["CurrentUser"] = user; if (ModelState.IsValid) { try { _context.Update(user); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserExists(user.UserId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Profile))); } return(View(user)); }
public async Task <IViewComponentResult> InvokeAsync(int teamId, int userId) { ViewData["CurrentUser"] = GetCurrentUser(); var team = _context.Team.Find(teamId); ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == team.FkOwner).FirstOrDefault(); if (userId > 0) { var user = _context.TeamMember.FirstOrDefault(x => x.FkUser == userId && x.FkTeam == teamId); if (user == null) { var invites = _context.TeamInvitation.Where(x => x.FkUser == userId); _context.RemoveRange(invites); _context.TeamMember.Add(new TeamMember { FkTeam = teamId, FkUser = userId }); await _context.SaveChangesAsync(); } else { _context.TeamMember.Remove(user); await _context.SaveChangesAsync(); } } var teamMemberList = _context.TeamMember.Where(p => p.FkTeam == teamId).Include(x => x.FkUserNavigation); return(View(teamMemberList)); }
public async Task <IActionResult> Create([Bind("Name,Description,TeamId,FkGameType")] Team team) { if (ModelState.IsValid) { var currentUserId = GetCurrentUser().UserId; team.FkOwner = currentUserId; _context.Add(team); await _context.SaveChangesAsync(); var teamMember = new TeamMember() { FkTeam = team.TeamId, FkUser = currentUserId }; _context.Add(teamMember); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["FkGameType"] = new SelectList(_context.GameType, "GameTypeId", "Name"); var sportbookDatabaseContext = _context.Team.Include(t => t.FkGameTypeNavigation).Include(t => t.FkOwnerNavigation); var teamsParticipations = _context.TeamMember.Where(t => t.FkUser == GetCurrentUser().UserId); var data = from first in sportbookDatabaseContext join second in teamsParticipations on first.TeamId equals second.FkTeam select first; ViewData["Teams"] = data; return(View("Index", team)); }
public async Task <IViewComponentResult> InvokeAsync(int eventId, int userId) { ViewData["CurrentUser"] = GetCurrentUser(); var eventItem = _context.Event.Find(eventId); ViewData["EventMax"] = eventItem.MaxParticipantAmt; ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == eventItem.FkOwner).FirstOrDefault(); var eventMemberList = _context.Participant.Where(p => p.FkEvent == eventId).Include(x => x.FkUserNavigation); if (eventItem.MaxParticipantAmt > eventMemberList.Count()) { if (userId > 0) { var user = _context.Participant.FirstOrDefault(x => x.FkUser == userId && x.FkEvent == eventId); if (user == null) { var invites = _context.EventInvitation.Where(x => x.FkUser == userId); _context.RemoveRange(invites); _context.Participant.Add(new Participant { FkEvent = eventId, FkUser = userId }); await _context.SaveChangesAsync(); } else { _context.Participant.Remove(user); await _context.SaveChangesAsync(); } } } return(View(eventMemberList)); }
public async Task <Task> CreateOnSignUp(TicketReceivedContext ticketReceivedContext) { string username = null; string firstName = null; string lastName = null; string email = null; bool isNewUser = false; List <Claim> claims = ticketReceivedContext.Principal.Claims.ToList(); var claim = claims.FirstOrDefault(x => x.Type.EndsWith("isNewUser")); string userOId = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; var userInfo = _context.User.FirstOrDefault(s => s.ExternalId == userOId); if ((userInfo == null) || bool.Parse(claim.Value)) { isNewUser = true; } if (isNewUser) { ticketReceivedContext.ReturnUri = "/Users/Profile"; username = claims.FirstOrDefault(x => x.Type.EndsWith("nickname")).Value; //claims.First(x => x.Type == ClaimTypes.) if (claims.Find(c => (c.Type == ClaimTypes.NameIdentifier)).Value.StartsWith("google")) { if (claims.FirstOrDefault(x => x.Type.Contains("givenname")) != null) { firstName = claims.FirstOrDefault(x => x.Type.Contains("givenname")).Value; } if (claims.FirstOrDefault(x => x.Type.Contains("surname")) != null) { lastName = (claims.FirstOrDefault(x => x.Type.Contains("surname")).Value); } email = username + "@gmail.com"; } // claims.FirstOrDefault(x => x.Type.EndsWith("name")).Value; if (claims.Find(c => (c.Type == ClaimTypes.NameIdentifier)).Value.StartsWith("auth0")) { email = claims.FirstOrDefault(x => x.Type.StartsWith("name")).Value; } var pictureURL = claims.FirstOrDefault(x => x.Type.EndsWith("picture")).Value; if (String.IsNullOrEmpty(pictureURL)) { pictureURL = "http://ssl.gstatic.com/accounts/ui/avatar_2x.png"; } User user = new User() { Firstname = firstName, Lastname = lastName, ExternalId = userOId, Username = username, Email = email, PictureUrl = pictureURL }; //insert new value into DB _context.Add(user); await _context.SaveChangesAsync(); } return(Task.CompletedTask); }
public async Task <IActionResult> Create([Bind("Title,MaxParticipantAmt,StartTime,EndTime,IsPrivate,FkLocation,FkGameType")] Event @event) { @event.IsTeamEvent = false; var user = GetCurrentUser(); @event.FkOwner = user.UserId; if (ModelState.IsValid) { _context.Add(@event); await _context.SaveChangesAsync(); _context.Participant.Add(new Models.Participant() { FkEvent = @event.EventId, FkUser = user.UserId }); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Sports))); } var sportbookDatabaseContext = _context.Location.Include(t => t.FkGameTypeNavigation).Where(e => e.FkGameTypeNavigation.IsOnline == false); List <LocationData> locations = new List <LocationData>(); foreach (var item in sportbookDatabaseContext) { locations.Add(new LocationData(item.Longitude, item.Latitude, item.Address, item.FkGameTypeNavigation.Name, item.LocationId, item.FkGameType)); } ViewData["Locations"] = locations; ViewData["GoogleApi"] = google_key; return(View(@event)); }
//[ValidateAntiForgeryToken] public async Task <IActionResult> CreateEvent([Bind("Title,MaxParticipantAmt,StartTime,EndTime,IsPrivate,IsTeamEvent,FkOwner,FkGameType")] Event @event) { var user = GetCurrentUser(); int teamId = 0; if (@event.IsTeamEvent) { var team = _context.Team.FirstOrDefault(x => x.TeamId == @event.FkOwner); teamId = team.TeamId; @event.FkGameType = team.FkGameType; @event.FkOwner = user.UserId; } if (ModelState.IsValid) { _context.Add(@event); await _context.SaveChangesAsync(); if ([email protected]) { _context.Participant.Add(new Models.Participant() { FkEvent = @event.EventId, FkUser = @event.FkOwner }); } else { _context.Participant.Add(new Models.Participant() { FkEvent = @event.EventId, FkUser = user.UserId, FkTeam = teamId }); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Esports))); } User currentUser = (from s in _context.User select s).Where(s => s.ExternalId == HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value).FirstOrDefault(); var sportsGameTypes = _context.GameType.Where(x => x.IsOnline == true); ViewData["FkGameType"] = new SelectList(sportsGameTypes, "GameTypeId", "Name"); ViewData["FkOwner"] = currentUser; var sportbookDatabaseContext = _context.Team.Include(t => t.FkGameTypeNavigation).Include(t => t.FkOwnerNavigation); var teamsParticipations = _context.TeamMember.Where(t => t.FkUser == currentUser.UserId); var data = from first in sportbookDatabaseContext join second in teamsParticipations on first.TeamId equals second.FkTeam select first; ViewData["Teams"] = data; if ([email protected]) { ViewData["SecondFailed"] = false; } else { ViewData["SecondFailed"] = true; ViewData["teamId"] = teamId; } return(View(@event)); }
public async Task <IViewComponentResult> InvokeAsync(int teamId, int userId) { ViewData["CurrentUser"] = GetCurrentUser(); var team = _context.Team.Find(teamId); ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == team.FkOwner).FirstOrDefault(); if (userId > 0) // if Invite is clicked { var user = _context.TeamMember.FirstOrDefault(x => x.FkUser == userId && x.FkTeam == teamId); if (user == null) { // user is not a team member var userAlreadyInvited = _context.TeamInvitation.Any(x => x.FkUser == userId && x.IsAccepted); // FALSE if user hasn't accepted an invitation if (!userAlreadyInvited) { _context.TeamInvitation.Add(new TeamInvitation() { FkTeam = teamId, FkUser = userId }); await _context.SaveChangesAsync(); } } } //var participantList = _context.User.Where(u => u.UserId == eventId).Include(x => x.FkUserNavigation); var alreadyParticipants = from users in _context.User join teamMembers in _context.TeamMember.Where(x => x.FkTeam == teamId) on users.UserId equals teamMembers.FkUser select users; var notAcceptedInvite = from users in _context.User join invitations in _context.TeamInvitation.Where(x => x.IsAccepted == false && x.FkTeam == teamId) on users.UserId equals invitations.FkUser select users; var userList = _context.User.Except(alreadyParticipants).Except(notAcceptedInvite); return(View(userList)); }
public async Task <IViewComponentResult> InvokeAsync(int eventId, int teamId) { var team = _context.Team.Find(teamId); var scrimEvent = _context.Event.Find(eventId); var owner = _context.User.Find(scrimEvent.FkOwner); var currentUser = GetCurrentUser(); var participant = _context.Participant.FirstOrDefault(x => x.FkTeam == teamId && x.FkEvent == eventId); if (participant == null) { if (team != null && owner != null) { var emailModel = new EmailModel(owner.Email, // To "Scrim opponent accepted match", // Subject String.Format("Your event <a href=\"https://sportbook.azurewebsites.net/Esports/TeamEvent?id={4}\" target=\"_blank\"><b>{0}</b></a> was accepted by opponent team <b>{1}</b> <br> Event start time: {2} <br> Event end time: {3}", scrimEvent.Title, team.Name, scrimEvent.StartTime, scrimEvent.EndTime, scrimEvent.EventId) // Message ); _emailHelper.SendEmail(emailModel); } _context.Participant.Add(new Models.Participant() { FkEvent = eventId, FkTeam = teamId, FkUser = currentUser.UserId }); var teamMembers = _context.TeamMember.Where(x => x.FkTeam == teamId).Include(x => x.FkUserNavigation); ViewData["teamMembers"] = teamMembers; ViewData["team"] = team; ViewData["create"] = true; } else { _context.Participant.Remove(participant); ViewData["create"] = false; } await _context.SaveChangesAsync(); return(View()); }
public async Task <IActionResult> CitiesCreate([Bind("Name,CityId")] City city) { if (ModelState.IsValid) { _context.Add(city); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Cities))); } return(View("~/Views/Admin/Cities/Create.cshtml", city)); }