public async Task<ActionResult> FamilyEdit( FamilyView Family ) { if(!ModelState.IsValid) { return View(Family); } //Update Family var family = await db.Families.FirstOrDefaultAsync( c => c.RID == Family.RID ); if ( family != null ) { var fatherID = Family.Father.RID.ToString(); var motherID = Family.Mother.RID.ToString(); var gopherID = Family.Gopher.RID.ToString(); var father = await db.Users.FirstOrDefaultAsync( c => c.Id == fatherID ); var mother = await db.Users.FirstOrDefaultAsync( c => c.Id == motherID ); var gopher = await db.Users.FirstOrDefaultAsync( c => c.Id == gopherID ); if ( father != null ) { if ( mother != null ) { if ( gopher != null ) { family.Father.Family = null; family.Mother.Family = null; family.Gopher.Family = null; family.Father = father; family.Mother = mother; family.Gopher = gopher; father.Family = family; mother.Family = family; gopher.Family = family; family.Name = Family.Name; db.Entry(family).State = EntityState.Modified; await db.SaveChangesAsync(); var families = await db.Families.ToListAsync(); ICollection<FamilyView> Families = new Collection<FamilyView>(); foreach ( var f in families ) { Families.Add( new FamilyView( f ) ); } var users = await db.Users.ToListAsync(); var Retreaters = new Collection<UserView>(); foreach ( var user in users ) { Boolean result; result = ( user.Retreater || user.RetreaterPending ) && user.Family == null; if ( result ) { Retreaters.Add( new UserView( user ) ); } } ViewBag.Retreaters = new SelectList( Retreaters, "RID", "Name" ); return View( "Families", Families ); } } } } return HttpNotFound(); }
public async Task<ActionResult> FamilyCreate(FamilyView Family) { if(!ModelState.IsValid) { return View(Family); } var fatherID = Family.Father.RID.ToString(); var motherID = Family.Mother.RID.ToString(); var gopherID = Family.Gopher.RID.ToString(); var father = await db.Users.FirstOrDefaultAsync( c => c.Id == fatherID); var mother = await db.Users.FirstOrDefaultAsync( c => c.Id == motherID); var gopher = await db.Users.FirstOrDefaultAsync( c => c.Id == gopherID); if(father != null) { if(mother != null) { if(gopher != null) { var family = new Family(Family.Name, father, mother, gopher); father.Family = family; mother.Family = family; gopher.Family = family; db.Families.Add(family); await db.SaveChangesAsync(); } } } var users = await db.Users.ToListAsync(); var Retreaters = new Collection<UserView>(); foreach ( var user in users ) { Boolean result; result = ( user.Retreater || user.RetreaterPending ) && user.Family == null; if ( result ) { Retreaters.Add( new UserView( user ) ); } } ViewBag.Retreaters = new SelectList( Retreaters, "RID", "Name" ); var families = await db.Families.ToListAsync(); ICollection<FamilyView> Families = new Collection<FamilyView>(); foreach ( var family in families ) { Families.Add( new FamilyView( family ) ); } return View( "Families", Families ); }