public bool UpdateChallenge(Challenge challenge) { Data.Entities.Challenge cha = Mapper.Map(challenge); if (cha == null) { return(false); } Data.Entities.Challenge dbcha; if ((dbcha = _db.Challenge.Find(cha.Id)) != null) { _db.Entry(dbcha).State = Microsoft.EntityFrameworkCore.EntityState.Detached; } foreach (var side in cha.Sides) { Data.Entities.Sides rmSide; if ((rmSide = _db.Sides.Find(side.Id)) != null) { _db.Entry(rmSide).State = Microsoft.EntityFrameworkCore.EntityState.Detached; } } _db.Challenge.Update(cha); _db.SaveChanges(); return(true); }
public bool DeleteChallenge(Challenge challenge) { Data.Entities.Challenge cha = Mapper.Map(challenge); if (cha == null) { return(false); } List <Data.Entities.Sides> sides = _db.Sides.ToList(); foreach (var side in sides) { if (side.Challengeid == cha.Id) { _db.Sides.Remove(side); } } _db.SaveChanges(); Data.Entities.Challenge dbcha; if ((dbcha = _db.Challenge.Find(cha.Id)) != null) { _db.Entry(dbcha).State = Microsoft.EntityFrameworkCore.EntityState.Detached; } cha.Sides.Clear(); _db.Challenge.Remove(cha); _db.SaveChanges(); return(true); }
public void DataToDomainTest() { //Arrange Data.Entities.Sides sideA = new Data.Entities.Sides(); Data.Entities.Team teamA = new Data.Entities.Team(); teamA.Teamname = "Good"; teamA.Id = 4; sideA.Team = teamA; sideA.Winreport = true; Data.Entities.Sides sideB = new Data.Entities.Sides(); Data.Entities.Team teamB = new Data.Entities.Team(); teamB.Teamname = "Bad"; teamB.Id = 7; sideB.Team = teamB; Data.Entities.Sides sideC = new Data.Entities.Sides(); Data.Entities.Challenge ch1 = new Data.Entities.Challenge(); ch1.Sides.Add(sideA); ch1.Sides.Add(sideB); ch1.GameModeId = 3; Data.Entities.Challenge ch2 = new Data.Entities.Challenge(); ch2.Sides.Add(sideA); ch2.Sides.Add(sideB); ch2.Id = 5; ch2.GameModeId = 4; Data.Entities.Challenge ch3 = new Data.Entities.Challenge(); ch3.Sides.Add(sideA); ch3.Sides.Add(sideB); ch3.Sides.Add(sideC); Data.Entities.Challenge ch4 = new Data.Entities.Challenge(); //Act Domain.Challenge r1 = Mapper.Map(ch1); Domain.Challenge r2 = Mapper.Map(ch2); Domain.Challenge r3 = Mapper.Map(ch3); Domain.Challenge r4 = Mapper.Map(ch4); //Arrange Assert.AreEqual(0, r1.id); Assert.AreEqual("Good", r1.Team1.teamname); Assert.AreEqual("Bad", r1.Team2.teamname); Assert.AreEqual(4, r1.Team1.id); Assert.AreEqual(7, r1.Team2.id); Assert.AreEqual(3, r1.GameModeId); Assert.AreEqual(5, r2.id); Assert.IsNull(r3); Assert.IsNull(r4); }
public Challenge GetChallengeById(int id) { Data.Entities.Challenge cha = _db.Challenge.Where(c => c.Id == id).Include("Sides.Team").FirstOrDefault(); if (cha == null) { return(null); } Domain.Challenge outCha = Mapper.Map(cha); return(outCha); }
public bool AddChallenge(Challenge challenge) { Data.Entities.Challenge cha = Mapper.Map(challenge); if (cha == null) { return(false); } if (_db.Challenge.Find(cha.Id) != null) { return(false); } _db.Challenge.Add(cha); _db.SaveChanges(); return(true); }
////Todo Complete public static Domain.Challenge Map(Data.Entities.Challenge deChallenge) { if (deChallenge.Sides.Count != 2) { return(null); } List <Domain.Team> teams = new List <Domain.Team>(); List <bool?> results = new List <bool?>(); foreach (var side in deChallenge.Sides) { teams.Add(Map(side.Team)); results.Add(side.Winreport); } Domain.Challenge dmChallenge = new Domain.Challenge(deChallenge.Id, teams[0], teams[1], (int)deChallenge.GameModeId, results[0], results[1]); dmChallenge.sideAId = deChallenge.Sides.ToList()[0].Id; dmChallenge.sideBId = deChallenge.Sides.ToList()[1].Id; return(dmChallenge); }
public void TestDomainToData() { //Arrange Domain.Team t1 = new Domain.Team(); Domain.Team t2 = new Domain.Team(); t1.id = 5; t2.id = 1; //Create a fresh challenge to add to the database Domain.Challenge ch1 = new Domain.Challenge(t1, t2, 1); //Update an existing challenge to the database Domain.Challenge ch2 = new Domain.Challenge(1, t1, t2, 1, null, null); ch2.sideAId = 2; ch2.sideBId = 5; Domain.Challenge ch3 = new Domain.Challenge(1, t1, t2, 1, true, null); Domain.Challenge ch4 = new Domain.Challenge(1, t1, t2, 1, null, true); Domain.Challenge ch5 = new Domain.Challenge(1, t1, t2, 1, true, false); //Act Data.Entities.Challenge r1 = Mapper.Map(ch1); Data.Entities.Challenge r2 = Mapper.Map(ch2); Data.Entities.Challenge r3 = Mapper.Map(ch3); Data.Entities.Challenge r4 = Mapper.Map(ch4); Data.Entities.Challenge r5 = Mapper.Map(ch5); //Assert //ch1 Assert.AreEqual(0, r1.Id); int i = 0; foreach (var side in r1.Sides) { if (i == 0) { Assert.AreEqual(t1.id, side.Teamid); } if (i == 1) { Assert.AreEqual(t2.id, side.Teamid); } i++; } Assert.AreEqual(1, r1.GameModeId); //ch2 Assert.AreEqual(1, r2.Id); i = 0; foreach (var side in r2.Sides) { Assert.IsNull(side.Winreport); if (i == 0) { Assert.AreEqual(t1.id, side.Teamid); } if (i == 1) { Assert.AreEqual(t2.id, side.Teamid); } i++; } Assert.AreEqual(1, r2.GameModeId); //ch3 Assert.AreEqual(1, r3.Id); i = 0; foreach (var side in r3.Sides) { if (i == 0) { Assert.AreEqual(t1.id, side.Teamid); Assert.IsTrue((bool)side.Winreport); } if (i == 1) { Assert.AreEqual(t2.id, side.Teamid); Assert.IsNull(side.Winreport); } i++; } Assert.AreEqual(1, r3.GameModeId); //ch4 Assert.AreEqual(1, r4.Id); i = 0; foreach (var side in r4.Sides) { if (i == 0) { Assert.AreEqual(t1.id, side.Teamid); Assert.IsNull(side.Winreport); } if (i == 1) { Assert.AreEqual(t2.id, side.Teamid); Assert.IsTrue((bool)side.Winreport); } i++; } Assert.AreEqual(1, r4.GameModeId); //ch5 Assert.AreEqual(1, r5.Id); i = 0; foreach (var side in r5.Sides) { if (i == 0) { Assert.AreEqual(t1.id, side.Teamid); Assert.IsTrue((bool)side.Winreport); } if (i == 1) { Assert.AreEqual(t2.id, side.Teamid); Assert.IsFalse((bool)side.Winreport); } i++; } Assert.AreEqual(1, r5.GameModeId); }