public async Task<ActionResult> JoinFamily( Guid FamilyID ) { var name = HttpContext.User.Identity.Name; var User = await db.Users.FirstOrDefaultAsync( c => c.UserName == name ); var allowed = false; ViewBag.IsInPSite = false; foreach ( var role in User.Roles ) { //Check to see if User is a member of Parent, Gophers, or P-Site if ( role.Role.Name == "P-Site" ) { allowed = true; ViewBag.IsInPSite = true; } } if(!allowed) { return new HttpUnauthorizedResult(); } var family = await db.Families.FirstOrDefaultAsync( c => c.RID == FamilyID ); if ( family != null ) { User.Family = family; family.PSite.Add( User ); await db.SaveChangesAsync(); } var familyView = new FamilyInput( family ); var families = await db.Families.ToListAsync(); /* ICollection<FamilyView> Families = new Collection<FamilyView>(); foreach ( var f in families ) { Families.Add( new FamilyView( f ) ); } ViewBag.Families = Families; */ return View( "Family", familyView ); }
public async Task<ActionResult> Family() { var name = HttpContext.User.Identity.Name; var User = await db.Users.FirstOrDefaultAsync( c => c.UserName == name ); var allowed = false; //Go through User Roles foreach(var role in User.Roles) { //Check to see if User is a member of Parent, Gophers, or P-Site if(role.Role.Name == "Parent" || role.Role.Name == "Gophers" || role.Role.Name == "P-Site" ) { allowed = true; ViewBag.IsInPSite = role.Role.Name == "P-Site"; if(ViewBag.IsInPSite == true) { //If we succesfully found a P-Site Role, then we can leave. break; } } } if(!allowed) { return new HttpUnauthorizedResult(); } FamilyInput familyView = null; if(User.Family != null) { familyView = new FamilyInput( User.Family ); } var families = await db.Families.ToListAsync(); ICollection<FamilyView> Families = new Collection<FamilyView>(); foreach ( var family in families ) { Families.Add( new FamilyView( family ) ); } ViewBag.Families = Families; return View( familyView ); }