Exemplo n.º 1
0
        /// <summary>
        /// 添加在研人员
        /// </summary>
        /// <param name="researchers"></param>
        /// <returns></returns>
        public bool InsertResearchers(Researchers researchers)
        {
            var sql  = @"insert into Researchers(ResearchProjectsID,PersonID,Personneltype) values(@ResearchProjectsID,@PersonID,@Personneltype)";
            var par1 = new SqlParameter()
            {
                ParameterName = "@ResearchProjectsID",
                SqlDbType     = System.Data.SqlDbType.Int

                ,
                Value = researchers.ResearchProjectsID
            };
            var par2 = new SqlParameter()
            {
                ParameterName = "@PersonID",
                SqlDbType     = System.Data.SqlDbType.Int

                ,
                Value = researchers.PersonID
            };
            var par3 = new SqlParameter()
            {
                ParameterName = "@Personneltype", SqlDbType = System.Data.SqlDbType.VarChar, Value = researchers.Personneltype
            };

            return(_dbHelper.SavaData(sql, par1, par2, par3) > 0 ? true : false);
        }
Exemplo n.º 2
0
 //Silme fonksiyonunu yazalım
 public void Delete(Researchers researchers)
 {
     using (InstituteDbEntities context = new InstituteDbEntities())
     {
         var entity = context.Entry(researchers);
         entity.State = EntityState.Deleted;
         context.SaveChanges();
     }
 }
Exemplo n.º 3
0
        //Ekleme fonksiyonunu yazalım
        public void Add(Researchers researchers)
        {
            using (InstituteDbEntities context = new InstituteDbEntities())
            {
                context.Researchers.Add(researchers);
                context.SaveChanges();

                //var entity = context.Entry(researchers);
                //entity.State = EntityState.Added;
                //context.SaveChanges();
            }
        }
Exemplo n.º 4
0
        public void VoteEndTurn(Player player)
        {
            RemovePlayerVote(player);

            CurrentTurn.EndTurnVotes.Add(new PlayerVote(player.Team, player.Number, player.Name));

            AddPublicEvent(GameEvent.PlayerVotedEndTurn(player, DateTime.Now));

            if (CurrentTurn.EndTurnVotes.Count == Researchers.Count(p => p.Team == player.Team))
            {
                CurrentTurn.SetToTallying();
            }
        }
Exemplo n.º 5
0
        public void AddDefaultResearcher()
        {
            Researcher res = new Researcher();

            res.AddProjects(new Project());
            res.AddProjects(new Project());
            res.AddProjects(new Project());
            Researchers.AddResearcher(res);
            res = new Researcher("OLOLOLO", "F**K");
            CurrentResearcher = res;
            res.AddProjects(new Project());
            Researchers.AddResearcher(res);
            SelectedProject = res.Projects.First();
        }
Exemplo n.º 6
0
        public void TallyVotes()
        {
            if (Status != GameStatus.InProgress)
            {
                throw new InvalidOperationException();
            }

            if (CurrentTurn?.Status != TurnStatus.Tallying)
            {
                throw new InvalidOperationException();
            }

            if (CurrentTurn.EndTurnVotes.Count == Researchers.Count(p => p.Team == CurrentTurn.Team))
            {
                EndCurrentTurn();
            }
            else if (WordTiles.SingleOrDefault(t => t.Votes.Count == Researchers.Count(p => p.Team == CurrentTurn.Team)) is WordTile tile)
            {
                CurrentTurn.Guesses.Add(new Guess(tile.Word, CurrentTurn.Guesses.Count, tile.Team));
                tile.Votes.Clear();
                tile.IsRevealed = true;

                if (tile.Team == CurrentTurn.Team)
                {
                    AddPublicEvent(GameEvent.TeamGuessedCorrectly(CurrentTurn.Team, DateTime.Now));

                    if (CurrentTurn.GuessesRemaining <= 0 ||
                        GetTilesRemaining(CurrentTurn.Team) <= 0)
                    {
                        EndCurrentTurn();
                    }
                    else
                    {
                        CurrentTurn.GuessAgain();
                    }
                }
                else
                {
                    AddPublicEvent(GameEvent.TeamGuessedIncorrectly(CurrentTurn.Team, DateTime.Now));
                    EndCurrentTurn();
                }
            }
            else
            {
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 7
0
        public void SetPlayerVote(Player player, WordTile tile)
        {
            RemovePlayerVote(player);

            if (tile.IsRevealed)
            {
                throw new InvalidOperationException();
            }

            tile.Votes.Add(new PlayerVote(player.Team, player.Number, player.Name));

            AddPublicEvent(GameEvent.PlayerVotedWord(player, DateTime.Now, tile.Word));

            if (tile.Votes.Count == Researchers.Count(p => p.Team == player.Team))
            {
                CurrentTurn.SetToTallying();
            }
        }
Exemplo n.º 8
0
        public IActionResult InsertResearchers(int ResearchProjectsID, int[] idArray, int?id)
        {
            var researchers = new Researchers();

            foreach (var i in idArray)
            {
                researchers.ResearchProjectsID = ResearchProjectsID;
                researchers.PersonID           = i;
                researchers.Personneltype      = "";
                if (_IResearch.InsertResearchers(researchers))
                {
                    if (id != null)
                    {
                        _IResearch.UpdatePersonType(id, ResearchProjectsID);
                    }
                }
                else
                {
                    return(new JsonResult(new { result = 0, message = $"添加失败!" }));
                }
            }
            return(new JsonResult(new { result = 1, message = "添加成功" }));
        }
Exemplo n.º 9
0
 /// <summary>
 /// If they need recovering, recover them until they are "rested".
 /// If they are done recovering, put them to work.
 /// Expend energy and progress the research as needed
 /// </summary>
 public void ProcessResearchers() => Researchers.ForEach(wk => Compose(wk,
                                                                       DoRecovery,
                                                                       cit => Perform(Active != null && IsQualified(cit), () => ConvertResearcherEnergy(cit))
                                                                       ));