public TS_02DemolishItems[] GetTSDemolishItems(string turnId) { using (var dataContext = new AusterlitzDbContext()) { var listRepository = new GenericRepository <TS_02DemolishItems>(dataContext); var tsItems = listRepository.GetItems(x => x.TurnId == turnId).OrderBy(y => y.OrderNo); if (tsItems.Count() == 0) { var newItems = new TS_02DemolishItems[6]; for (var itemCount = 1; itemCount <= newItems.Count(); itemCount++) { TS_02DemolishItems item = new TS_02DemolishItems() { TurnId = turnId, OrderNo = itemCount }; newItems[itemCount - 1] = item; } listRepository.InsertRange(newItems); dataContext.SaveChanges(); tsItems = listRepository.GetItems(x => x.TurnId == turnId).OrderBy(y => y.OrderNo); } return(tsItems.ToArray()); } }
public TS_00TurnDetails[] GetTSTurnDetails(string turnId) { using (var dataContext = new AusterlitzDbContext()) { var listRepository = new GenericRepository <TS_00TurnDetails>(dataContext); var tsItems = listRepository.GetItems(x => x.TurnId == turnId); if (tsItems.Count() == 0) { var newItems = new TS_00TurnDetails[1]; for (var itemCount = 1; itemCount <= newItems.Count(); itemCount++) { TS_00TurnDetails item = new TS_00TurnDetails() { TurnId = turnId }; newItems[itemCount - 1] = item; } listRepository.InsertRange(newItems); dataContext.SaveChanges(); tsItems = listRepository.GetItems(x => x.TurnId == turnId); } return(tsItems.ToArray()); } }
public TS_00TurnDetails PostTSTurnDetails(TS_00TurnDetails tsPostedRecords) { using (var dataContext = new AusterlitzDbContext()) { var listRepository = new GenericRepository <TS_00TurnDetails>(dataContext); listRepository.Insert(tsPostedRecords); var result = listRepository.GetItems(x => x.TurnId == tsPostedRecords.TurnId); dataContext.SaveChanges(); return(result.ToArray()[0]); } }
//http://stackoverflow.com/questions/4029493/update-existing-entitycollection-in-entity-framework public virtual IEnumerable <T> SaveRange(T[] entities) { IEnumerable <T> result; foreach (var entity in entities) { var original = GetItems((x => x.TurnId == entity.TurnId && x.OrderNo == entity.OrderNo)).Single(); if (original != null) { _austerlitzDbContext.Entry(original).CurrentValues.SetValues(entity); } else { dbSet.Add(entity); _austerlitzDbContext.Entry(entity).State = EntityState.Added; } } _austerlitzDbContext.SaveChanges(); result = GetItemsByTurnId(entities[0].TurnId); return(result); }
private int loadPoliticalMap(ArrayList lineList, int lineLocation, AusterlitzDbContext auDB) { bool locationFound = false; int xStart = 0; var coordinatesOnALine = new REF_PoliticalMapCoordinates[40]; var y = 0; var mapBoundaryEurope1 = " 1 2 3 4 5 6 7 8 9"; var mapBoundaryEurope2 = " 41 42 43 44 45 46 47 48 49 50"; var mapBoundaryCarribean = " 1 2 3 4 5 6"; var mapBoundaryIndies = " 51 52 53 54 55"; var mapBoundaryText = mapBoundaryEurope1; // delete all the existing coordinate ... in future, dont do this as should only load once... var existingCoordinates = auDB.REF_PoliticalMapCoordinates; auDB.REF_PoliticalMapCoordinates.RemoveRange(existingCoordinates); for (; lineLocation < lineList.Count; lineLocation++) { var lineToProcess = lineList[lineLocation].ToString(); if (lineToProcess.IndexOf(mapBoundaryText) != -1) { if (locationFound) { locationFound = false; if (mapBoundaryText == mapBoundaryEurope1) { mapBoundaryText = mapBoundaryEurope2; } else if (mapBoundaryText == mapBoundaryEurope2) { mapBoundaryText = mapBoundaryCarribean; } else if (mapBoundaryText == mapBoundaryCarribean) { mapBoundaryText = mapBoundaryIndies; } else if (mapBoundaryText == mapBoundaryIndies) { break; // finished! } } else { locationFound = true; lineLocation = lineLocation + 1; //skip two lines and switch on brigadeCapture lineToProcess = lineList[lineLocation].ToString(); if (mapBoundaryText == mapBoundaryEurope1) { xStart = 1; y = 1; } else if (mapBoundaryText == mapBoundaryEurope2) { xStart = 41; y = 1; } else if (mapBoundaryText == mapBoundaryCarribean) { xStart = 1; y = 70; } else if (mapBoundaryText == mapBoundaryIndies) { xStart = 51; y = 70; } } } if (locationFound) { if (lineToProcess.IndexOf(mapBoundaryText) != -1) { break; } for (var x = xStart; x < xStart + 40; x++) { var newCoordinate = new REF_PoliticalMapCoordinates(); string coordinate = lineToProcess.Substring(3 + (x - xStart) * 3, 3); newCoordinate.X = x; newCoordinate.Y = y; newCoordinate.Owner = coordinate.Substring(0, 1); newCoordinate.Terrain = coordinate.Substring(1, 1); newCoordinate.Bonus = coordinate.Substring(2, 1); coordinatesOnALine[x - xStart] = newCoordinate; } auDB.REF_PoliticalMapCoordinates.AddRange(coordinatesOnALine); auDB.SaveChanges(); y++; } } return(lineLocation); }