private void AddOrUpdate(Lag lag, Match match, DataContext context, MatchImport.ExcelMatch excelMatch, List<Vaapen> våpen) { var existing = (from l in context.Lag where l.LagId == lag.LagId select l).FirstOrDefault(); if (existing == null) { context.Lag.Add(lag); } else { existing.Navn = lag.Navn; existing.HemmeligKode = lag.HemmeligKode; existing.Farge = lag.Farge; } if (!match.DeltakendeLag.Any(x => x.Lag.LagId == lag.LagId)) { var lagIMatch = match.LeggTil(existing ?? lag); // Legg til våpen bare på nye lag i matcher (dvs. ikke få flere våper ved flere importer) var felle = våpen.Single(x => x.VaapenId == Constants.Våpen.Felle); for (int i = 0; i < excelMatch.PrLagFelle.GetValueOrDefault(); i++) { lagIMatch.LeggTilVåpen(felle); } var bombe = våpen.Single(x => x.VaapenId == Constants.Våpen.Bombe); for (int i = 0; i < excelMatch.PrLagBombe.GetValueOrDefault(); i++) { lagIMatch.LeggTilVåpen(bombe); } } }
private void AddOrUpdate(List<ExcelPost> excelPoster, Match match, DataContext context) { foreach (var excelPost in excelPoster) { // en posts navn og område er nøkkel // dvs. at en match bør være i ett område // og at navn og område ikke kan endres var existing = (from p in context.Poster where p.Navn == excelPost.Navn && p.Omraade == excelPost.Omraade select p).SingleOrDefault(); var post = excelPost.GetPost(); if (existing == null) { context.Poster.Add(post); } else { excelPost.Update(existing); } var postIMatch = match.Poster.SingleOrDefault(x => x.Post.Navn == post.Navn && x.Post.Omraade == post.Omraade); if (postIMatch == null) { match.Poster.Add(new PostIMatch { Post = existing ?? post, PoengArray = excelPost.DefaultPoengArray, SynligFraTid = excelPost.SynligFra ?? match.StartTid, SynligTilTid = excelPost.SynligTil ?? match.SluttTid }); } else { postIMatch.PoengArray = excelPost.DefaultPoengArray; postIMatch.SynligFraTid = excelPost.SynligFra ?? match.StartTid; postIMatch.SynligTilTid = excelPost.SynligTil ?? match.SluttTid; } } // TODO: Slette poster som ikke lenger er i bruk? }
public void Update(Match match) { match.Navn = Navn; match.StartTid = StartTid; match.SluttTid = SluttTid; match.GeoboxNWLatitude = GeoboxNWLatitude; match.GeoboxNWLongitude = GeoboxNWLongitude; match.GeoboxSELatitude = GeoboxSELatitude; match.GeoboxSELongitude = GeoboxSELongitude; }
public Match GetMatch() { var match = new Match { MatchId = MatchId }; Update(match); return match; }
public static ExcelMatch FromMatch(Match match) { var excelMatch = new ExcelMatch(); if (match == null) return excelMatch; excelMatch.MatchId = match.MatchId; excelMatch.Navn = match.Navn; excelMatch.StartTid = match.StartTid; excelMatch.SluttTid = match.SluttTid; excelMatch.GeoboxNWLatitude = match.GeoboxNWLatitude; excelMatch.GeoboxNWLongitude = match.GeoboxNWLongitude; excelMatch.GeoboxSELatitude = match.GeoboxSELatitude; excelMatch.GeoboxSELongitude = match.GeoboxSELongitude; return excelMatch; }