示例#1
0
        private Encounter AddNew(Encounter aMatch)
        {
            EncounterEntity toAdd = matchConverter.ToEntity(aMatch);

            context.Entry(toAdd).State = EntityState.Added;
            AddComments(toAdd, aMatch.GetAllCommentaries());

            //We also need to ask if it is an Sql database, so that we can execute the sql scripts.
            if (aMatch.Id > 0 && context.Database.IsSqlServer())
            {
                SaveWithIdentityInsert();
            }
            else
            {
                context.SaveChanges();
            }
            Encounter added = factory.CreateEncounter(toAdd.Id, aMatch.GetParticipants(), aMatch.Date, aMatch.Sport);
            ICollection <EncounterTeam> playingTeams = matchConverter.ConvertParticipants(added);

            foreach (EncounterTeam team in playingTeams)
            {
                context.Entry(team).State = EntityState.Added;
            }
            context.SaveChanges();
            context.Entry(toAdd).State = EntityState.Detached;
            return(added);
        }
示例#2
0
        private void DeleteExistent(int anId)
        {
            EncounterEntity retrieved = context.Encounters.Include(m => m.Commentaries).First(m => m.Id == anId);

            context.Encounters.Remove(retrieved);
            context.Comments.RemoveRange(retrieved.Commentaries);
            context.SaveChanges();
        }
        public void MatchToEntityWithResultTest()
        {
            Result matchResult = GetFakeResult();

            match.Result = matchResult;
            EncounterEntity converted = testMapper.ToEntity(match);

            Assert.IsTrue(converted.HasResult);
        }
示例#4
0
        private Commentary CommentOnExistingMatch(int idMatch, Commentary aComment)
        {
            CommentEntity   comment   = commentConverter.ToEntity(aComment);
            EncounterEntity commented = context.Encounters.Include(m => m.Commentaries).First(m => m.Id == idMatch);

            commented.Commentaries.Add(comment);
            context.Attach(comment).State = EntityState.Added;
            context.SaveChanges();
            return(commentConverter.ToComment(comment));
        }
示例#5
0
        private void AddComments(EncounterEntity entity, ICollection <Commentary> commentaries)
        {
            IEnumerable <CommentEntity> commentEntities = commentaries.Select(c => commentConverter.ToEntity(c));

            foreach (CommentEntity ce in commentEntities)
            {
                entity.Commentaries.Add(ce);
                context.Entry(ce.Maker).State = EntityState.Unchanged;
            }
        }
        public Encounter Map(EncounterEntity entity)
        {
            IEnumerable <Team>    teams    = entity.Teams.Select(t => t.Team.ToModel());
            ICollection <Comment> comments = entity.Comments.ToList().Select(t => t.ToModel()).ToList();
            Sport sport = sportMapper.Map(entity.Sport);
            Dictionary <Team, int> results = new Dictionary <Team, int>();

            entity.Results.ToList().ForEach(p => results.Add(p.Team.ToModel(), p.Position));

            return(new Encounter(entity.Id, sport, teams, entity.DateTime, comments, results));
        }
示例#7
0
        public bool InsertEncounter(EncounterModel em)
        {
            //Mappers
            EncounterEntity ee = new EncounterEntity();

            ee.Id         = em.Id;
            ee.Name       = em.Name;
            ee.IdInstance = em.IdInstance;
            ee.Media      = em.Media;

            return(_encounterRepo.Insert(ee));
        }
        public EncounterEntity ToEntity(Encounter anEncounter)
        {
            SportEntity     sportEntity = sportConverter.ToEntity(anEncounter.Sport);
            EncounterEntity conversion  = new EncounterEntity()
            {
                Id           = anEncounter.Id,
                Date         = anEncounter.Date,
                Commentaries = TransformCommentaries(anEncounter.GetAllCommentaries()),
                SportEntity  = sportEntity,
                HasResult    = anEncounter.HasResult()
            };

            return(conversion);
        }
示例#9
0
        public bool InsertEncounterAndItem(EncounterModel em)
        {
            //Mappers
            EncounterEntity ee = new EncounterEntity();

            ee.Id           = em.Id;
            ee.Name         = em.Name;
            ee.IdInstance   = em.IdInstance;
            ee.Media        = em.Media;
            ee.ItemEntities = new List <ItemEntity>();


            foreach (var item in em.Items)
            {
                //ee.ItemEntities.Add(new ItemEntity()
                //{
                //    Id = item.Id,
                //    Name = item.Name,
                //    Type = item.Type,
                //    SubType = item.SubType,
                //    CreatureName = item.CreatureName,
                //    Icon = item.Icon,
                //    Media = item.Media,
                //});

                ItemEntity ie = new ItemEntity()
                {
                    Id           = item.Id,
                    Name         = item.Name,
                    Type         = item.Type,
                    SubType      = item.SubType,
                    CreatureName = item.CreatureName,
                    Icon         = item.Icon,
                    Media        = item.Media,
                };

                this._itemRepo.Insert(ie);

                EncounterItemEntity encounterItemEntity = new EncounterItemEntity()
                {
                    IdEncounter = em.Id,
                    IdItem      = item.Id,
                };


                this._encounterItemRepo.Insert(encounterItemEntity);
            }

            return(_encounterRepo.Insert(ee));
        }
        public Encounter ToEncounter(EncounterEntity anEncounter, ICollection <EncounterTeam> playingTeams)
        {
            ICollection <Commentary> comments = anEncounter.Commentaries.Select(ce => commentConverter.ToComment(ce)).ToList();
            ICollection <Team>       teams    = playingTeams.Select(tm => teamConverter.ToTeam(tm.Team)).ToList();
            DateTime  date    = anEncounter.Date;
            Sport     sport   = sportConverter.ToSport(anEncounter.SportEntity);
            Encounter created = factory.CreateEncounter(anEncounter.Id, teams, date, sport, comments);

            if (anEncounter.HasResult)
            {
                Result matchResult = ToResults(playingTeams);
                created.Result = matchResult;
            }
            return(created);
        }
示例#11
0
        public void ModifyExistent(Encounter aMatch)
        {
            EncounterEntity converted = matchConverter.ToEntity(aMatch);

            if (context.Encounters.Any(m => m.Id == aMatch.Id))
            {
                EncounterEntity old = context.Encounters.First(m => m.Id == aMatch.Id);
                context.Entry(old).State = EntityState.Detached;
            }
            context.Entry(converted).State = EntityState.Modified;
            ICollection <EncounterTeam> playingTeams = matchConverter.ConvertParticipants(aMatch);

            RemoveMissingParticipants(aMatch);
            AddNewParticipants(playingTeams);
            context.SaveChanges();
            context.Entry(converted).State = EntityState.Detached;
        }
        public void MatchToEntityCommentsCountTest()
        {
            UserId identity = new UserId
            {
                Name     = "aName",
                Surname  = "aSurname",
                UserName = "******",
                Password = "******",
                Email    = "*****@*****.**"
            };
            Mock <User> user = new Mock <User>(identity, false);

            match.AddCommentary(new Commentary("test comment", user.Object));
            EncounterEntity converted = testMapper.ToEntity(match);

            Assert.AreEqual(converted.Commentaries.Count, 1);
        }
        public void SetUp()
        {
            factory    = new EncounterFactory();
            testMapper = new EncounterMapper();
            SportEntity testSport = new SportEntity()
            {
                Name = "Soccer", IsTwoTeams = true
            };
            TeamEntity homeTest = new TeamEntity {
                TeamNumber = 3, SportEntityName = "Soccer", Sport = testSport, Name = "Nacional", Photo = "aPath"
            };
            TeamEntity awayTest = new TeamEntity {
                TeamNumber = 4, SportEntityName = "Soccer", Sport = testSport, Name = "Torque", Photo = "aPath"
            };

            entity = new EncounterEntity()
            {
                Id           = 3,
                Date         = DateTime.Now,
                SportEntity  = testSport,
                HasResult    = false,
                Commentaries = new List <CommentEntity>()
            };
            EncounterTeam homeRel = new EncounterTeam()
            {
                Team = homeTest, TeamNumber = 3, Encounter = entity, EncounterId = 3
            };
            EncounterTeam awayRel = new EncounterTeam()
            {
                Team = awayTest, TeamNumber = 4, Encounter = entity, EncounterId = 3
            };

            playingTeams = new List <EncounterTeam>()
            {
                homeRel, awayRel
            };
            homeMock = new Team(3, "Nacional", "aPath", new Sport("Soccer", true));
            awayMock = new Team(4, "Torque", "aPath", new Sport("Soccer", true));
            Sport sport = new Sport("Soccer", true);

            match = factory.CreateEncounter(new List <Team>()
            {
                homeMock, awayMock
            }, DateTime.Now, sport);
        }
示例#14
0
        public void Update(Encounter source, EncounterEntity destination)
        {
            List <TeamEntity> teams = source.Teams.Select(sourceTeam => new TeamEntity(sourceTeam)).ToList();

            destination.DateTime = source.DateTime;
            destination.Sport    = new SportEntity(source.Sport);
            destination.Id       = source.Id;
            destination.Comments = source.Comments.Select(c => new CommentEntity(c)).ToList();
            destination.Teams    = source.Teams.Select(t => new EncounterTeam(destination, new TeamEntity(t))).ToList();
            List <TeamResult> results = source.Results.Select(p => new TeamResult()
            {
                EncounterId = source.Id,
                Team        = new TeamEntity(p.Key),
                TeamId      = p.Key.Name + "_" + p.Key.Sport.Name,
                Position    = p.Value
            }).ToList();

            destination.Results = results;
        }
示例#15
0
        private Encounter GetExistentMatch(int anId)
        {
            EncounterEntity entity = context.Encounters
                                     .Include(m => m.SportEntity)
                                     .Include(m => m.Commentaries).ThenInclude(c => c.Maker)
                                     .First(me => me.Id == anId);

            ICollection <EncounterTeam> match_teams = context.EncounterTeams.Include(mt => mt.Team)
                                                      .ThenInclude(t => t.Sport)
                                                      .Where(mt => mt.EncounterId == anId)
                                                      .ToList();
            Encounter conversion = matchConverter.ToEncounter(entity, match_teams);

            context.Entry(entity).State = EntityState.Detached;
            foreach (EncounterTeam mt in match_teams)
            {
                context.Entry(mt).State = EntityState.Detached;
            }
            return(conversion);
        }
        public ICollection <EncounterTeam> ConvertParticipants(Encounter anEncounter)
        {
            EncounterEntity             matchEntity = ToEntity(anEncounter);
            ICollection <EncounterTeam> conversions = new List <EncounterTeam>();

            foreach (Team participant in anEncounter.GetParticipants())
            {
                TeamEntity    team = teamConverter.ToEntity(participant);
                EncounterTeam participantConversion = new EncounterTeam()
                {
                    Encounter   = matchEntity,
                    EncounterId = matchEntity.Id,
                    Team        = team,
                    TeamNumber  = team.TeamNumber
                };
                conversions.Add(participantConversion);
            }
            if (anEncounter.HasResult())
            {
                ResultsToEntity(conversions, anEncounter.Result);
            }
            return(conversions);
        }
示例#17
0
        public EncounterEntity Map(Encounter encounter)
        {
            IEnumerable <TeamEntity> teams           = encounter.Teams.Select(t => teamMapper.Map(t));
            EncounterEntity          encounterEntity = new EncounterEntity()
            {
                DateTime = encounter.DateTime,
                Sport    = sportMapper.Map(encounter.Sport),
                Id       = encounter.Id,
                Comments = encounter.Comments.Select(c => new CommentEntity(c)).ToList()
            };
            ICollection <TeamResult> results = new List <TeamResult>();

            encounter.Results.ToList().ForEach(p => results.Add(new TeamResult()
            {
                Team        = new TeamEntity(p.Key),
                Position    = p.Value,
                EncounterId = encounterEntity.Id
            }));

            encounterEntity.Results = results;
            encounterEntity.Teams   = encounter.Teams.Select(t => new EncounterTeam(encounterEntity, new TeamEntity(t))).ToList();

            return(encounterEntity);
        }
        public void MatchToEntityNoResultTest()
        {
            EncounterEntity converted = testMapper.ToEntity(match);

            Assert.IsFalse(converted.HasResult);
        }
        public void MatchToEntityDateTest()
        {
            EncounterEntity converted = testMapper.ToEntity(match);

            Assert.AreEqual(converted.Date.ToString(), entity.Date.ToString());
        }