示例#1
0
        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);
                }
            }
        }
示例#2
0
        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?
        }
示例#3
0
 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;
 }
示例#4
0
 public Match GetMatch()
 {
     var match = new Match { MatchId = MatchId };
     Update(match);
     return match;
 }
示例#5
0
            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;
            }