コード例 #1
0
 public static Debate CreateDebate(Debate debate)
 {
     using (var repo = new CRUDRepository <Debate>())
     {
         return(repo.Add(debate));
     }
 }
コード例 #2
0
        public IActionResult ViewBallot(int id)
        {
            var            teams           = BuildTeamList(id);
            Ballot         ballot          = _context.Ballot.FirstOrDefault(b => b.BallotId == id);
            Debate         debate          = _context.Debate.FirstOrDefault(d => d.DebateId == ballot.DebateId);
            IndividualTeam affirmativeTeam = _context.IndividualTeam.FirstOrDefault(i => i.IndividualTeamId == debate.AffirmativeTeamId);
            IndividualTeam negativeTeam    = _context.IndividualTeam.FirstOrDefault(i => i.IndividualTeamId == debate.NegativeTeamId);
            var            currentUserId   = this.User.FindFirstValue(ClaimTypes.NameIdentifier).ToString();
            Judge          judge           = _context.Judge.FirstOrDefault(t => t.ApplicationUserId == currentUserId);
            Round          round           = _context.Round.FirstOrDefault(r => r.RoundId == ballot.RoundId);

            JudgesBallotViewModel ballotVM = new JudgesBallotViewModel()
            {
                Ballot          = ballot,
                AffirmativeTeam = affirmativeTeam,
                NegativeTeam    = negativeTeam,
                Round           = round,
                Debate          = debate,
                Judge           = judge,
                Winner          = "Team",
                Loser           = "Team",
                TeamsInRound    = teams,
            };

            return(View(ballotVM));
        }
コード例 #3
0
        public async Task <Debate> EditDebate(string id, DebateRequestDto debate)
        {
            Debate debateToEdit = await _context.Debates
                                  .Where(d => d.Id == id)
                                  .Where(d => d.CreatedById == debate.CreatedById)
                                  .FirstAsync();

            if (debate == null)
            {
                return(null);
            }

            debateToEdit.Description = debate.Description;
            debate.Topic             = debate.Topic;

            try
            {
                _context.Debates.Update(debateToEdit);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                return(null);
            }
            return(debateToEdit);
        }
コード例 #4
0
ファイル: Debates.cs プロジェクト: xiongeee/BBX
        private static StringBuilder IsValidDebates(int tid, string message, bool ispost)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
            if (!ispost || ForumUtils.IsCrossSitePost())
            {
                stringBuilder.Append("<error>您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。</error>");
                return(stringBuilder);
            }
            Regex           regex           = new Regex("\\[area=([\\s\\S]+?)\\]([\\s\\S]+?)\\[/area\\]", RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection matchCollection = regex.Matches(message);

            if (matchCollection.Count == 0)
            {
                stringBuilder.Append("<error>评论内容不能为空</error>");
                return(stringBuilder);
            }
            var topicInfo = Topic.FindByID(tid);

            if (tid == 0 || topicInfo.Special != 4)
            {
                stringBuilder.Append("<error>本主题不是辩论帖,无法点评</error>");
                return(stringBuilder);
            }
            var db = Debate.FindByTid(tid);

            if (db.TerminalTime > DateTime.Now)
            {
                stringBuilder.Append("<error>本辩论帖结束时间未到,无法点评</error>");
                return(stringBuilder);
            }
            return(stringBuilder);
        }
コード例 #5
0
ファイル: InitDebat.cs プロジェクト: alikondie/Robospectif
    //sp = sm = ep = em = up = um = 0;

    void Start()
    {
        bouton_retour.gameObject.SetActive(false);
        clienthasstart  = false;
        persosAndDebate = new Dictionary <int, string>();
        FillPersoDict();
        debate = new Debate();
        //givenJetons = new Dictionary<int,  int[]{ 0, 0, 0, 0, 0, 0 } > ();
        jetons = new List <GameObject> [6];

        for (int i = 0; i < jetons.Length; i++)
        {
            jetons[i] = new List <GameObject>();
        }

        for (int i = 0; i < jetons.Length; i++)
        {
            for (int j = 0; j < persos[i].transform.GetChild(1).childCount; j++)
            {
                jetons[i].Add(persos[i].transform.GetChild(1).GetChild(j).gameObject);
            }
        }

        NetworkServer.RegisterHandler(jeton, onJetonReceived);
        NetworkServer.RegisterHandler(hasstartID, onClientStart);

        button.onClick.AddListener(() => ButtonClicked());
        help.onClick.AddListener(() => HelpClicked());
        bouton_retour.onClick.AddListener(() => RetourButtonClicked());
    }
コード例 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Debate debate = db.Debate.Find(id);

            db.Debate.Remove(debate);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #7
0
        public NonQueryResult InsertDebate(Debate debate)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("INSERT INTO debate (debate_id, round_id, venue_id) ");
            query.AppendFormat("VALUES ('{0}','{1}', '{2}')", debate.DebateId, debate.RoundId, debate.VenueId);
            return(ExecuteNonQuery(query.ToString(), true));
        }
コード例 #8
0
 public ActionResult Edit([Bind(Include = "DebateId,Subject,Description,ChatText,CreatorVotes,ChallengerVotes,Live,DateTime")] Debate debate)
 {
     if (ModelState.IsValid)
     {
         db.Entry(debate).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(debate));
 }
コード例 #9
0
        public NonQueryResult UpdateDebate(Debate debate)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine("UPDATE debate ");
            query.AppendFormat("SET round_id = '{0}', ", debate.RoundId);
            query.AppendFormat("venue_id = '{0}' ", debate.VenueId);
            query.AppendFormat("WHERE debate_id = '{0}'", debate.DebateId);
            return(ExecuteNonQuery(query.ToString(), true));
        }
コード例 #10
0
        public void SaveMessage(String sender, String message, int debateId)
        {
            message = message.Replace("\n", "");
            String formattedMessage = "\n" + "[" + DateTime.Now + "] " + sender + " : " + message;
            Debate debate           = _debateRepository.FindDebate(debateId);

            debate.ChatText += formattedMessage;
            _debateRepository.UpdateDebate(debate);
            _debateRepository.Save();
        }
コード例 #11
0
ファイル: postreply.cs プロジェクト: xiongeee/BBX
        //private void UpdateTopicInfo(string postmessage)
        //{
        //	int num = (ForumUtils.IsHidePost(postmessage) && this.usergroupinfo.AllowHideCode) ? 1 : 0;
        //	if (num == 1 && this.topic.Hide != 1)
        //	{
        //		this.topic.Hide = num;
        //		Topics.UpdateTopicHide(this.topicid);
        //	}
        //	if (Moderators.IsModer(this.useradminid, this.userid, this.topic.Fid) && this.topic.Attention == 1)
        //	{
        //		Topic.UpdateTopicAttentionByTidList(0, topicid);
        //	}
        //	else
        //	{
        //		if (this.topic.PosterID != -1 && this.userid == this.topic.PosterID)
        //		{
        //			Topic.UpdateTopicAttentionByTidList(1, topicid);
        //		}
        //	}
        //	Topics.UpdateTopicReplyCount(this.topicid);
        //}

        private void NormalValidate(AdminGroup admininfo, string postmessage, IUser user)
        {
            if (ForumUtils.IsCrossSitePost())
            {
                base.AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。");
                return;
            }
            if (this.posttitle.Length > 60)
            {
                base.AddErrLine("标题最大长度为60个字符,当前为 " + this.posttitle.Length + " 个字符");
            }
            if (Utils.StrIsNullOrEmpty(postmessage.Replace("\u3000", "")))
            {
                base.AddErrLine("内容不能为空");
            }
            if (admininfo != null && !admininfo.DisablePostctrl)
            {
                if (postmessage.Length < this.config.Minpostsize)
                {
                    base.AddErrLine("您发表的内容过少, 系统设置要求帖子内容不得少于 " + this.config.Minpostsize + " 字多于 " + this.config.Maxpostsize + " 字");
                }
                else
                {
                    if (postmessage.Length > this.config.Maxpostsize)
                    {
                        base.AddErrLine("您发表的内容过多, 系统设置要求帖子内容不得少于 " + this.config.Minpostsize + " 字多于 " + this.config.Maxpostsize + " 字");
                    }
                }
            }
            if (this.topic.Special == 4 && DNTRequest.GetInt("debateopinion", 0) == 0)
            {
                base.AddErrLine("请选择您在辩论中的观点");
            }
            if (this.topic.Special == 4)
            {
                var debateTopic = Debate.FindByTid(this.topic.ID);
                if (debateTopic.Terminaled)
                {
                    base.AddErrLine("此辩论主题已经到期");
                }
            }
            if (this.config.DisablePostAD && this.useradminid < 1 && ((this.config.DisablePostADPostCount != 0 && user.Posts <= this.config.DisablePostADPostCount) || (this.config.DisablePostADRegMinute != 0 && DateTime.Now.AddMinutes((double)(-(double)this.config.DisablePostADRegMinute)) <= user.JoinDate.ToDateTime())))
            {
                string[] array = this.config.DisablePostADRegular.Replace("\r", "").Split('\n');
                for (int i = 0; i < array.Length; i++)
                {
                    string regular = array[i];
                    if (Posts.IsAD(regular, this.posttitle, postmessage))
                    {
                        base.AddErrLine("发帖失败,内容中有不符合新用户强力广告屏蔽规则的字符,请检查标题和内容,如有疑问请与管理员联系");
                    }
                }
            }
        }
コード例 #12
0
ファイル: Debates.cs プロジェクト: xiongeee/BBX
        private static List <Post> GetDebatePostList(PostpramsInfo pi, out List <Attachment> attachList, bool isModer, int debateOpinion, PostOrderType postOrderType)
        {
            var sb = new StringBuilder();
            //var list = BBX.Data.Debates.GetDebatePostList(pi, debateOpinion, postOrderType);
            var list = Post.SearchDebate(pi.Tid, debateOpinion, (pi.Pageindex - 1) * pi.Pagesize, pi.Pagesize);

            if (list.Count == 0 && pi.Pageindex > 1)
            {
                //var count = BBX.Data.Debates.GetRealDebatePostCount(pi.Tid, debateOpinion);
                var count = Post.SearchDebateCount(pi.Tid, debateOpinion);
                pi.Pageindex = ((count % pi.Pagesize == 0) ? (count / pi.Pagesize) : (count / pi.Pagesize + 1));
                //list = BBX.Data.Debates.GetDebatePostList(pi, debateOpinion, postOrderType);
                list = Post.SearchDebate(pi.Tid, debateOpinion, (pi.Pageindex - 1) * pi.Pagesize, pi.Pagesize);
            }
            var list2 = list.ToList();
            // 设置楼层
            var start = (pi.Pageindex - 1) * pi.Pagesize;
            var db    = Debate.FindByTid(pi.Tid);

            foreach (var item in list2)
            {
                item.Id = ++start;

                if (db != null)
                {
                    db.CastTo(item);
                }
            }

            var sb2           = new StringBuilder();
            int inPostAdCount = Advertisement.GetInPostAdCount("", pi.Fid);

            foreach (var item in list2)
            {
                Posts.LoadExtraPostInfo(item, inPostAdCount);
                sb.AppendFormat("{0},", item.ID);
                if (item.Attachment > 0)
                {
                    sb2.AppendFormat("{0},", item.ID);
                }
            }
            attachList = Attachments.GetAttachmentList(pi, sb2.ToString().TrimEnd(','));
            var postDiggs = Debates.GetPostDiggs(sb.ToString().Trim(','));

            foreach (var item in list2)
            {
                if (postDiggs.ContainsKey(item.ID))
                {
                    item.Diggs = postDiggs[item.ID];
                }
            }
            Posts.ParsePostListExtraInfo(pi, attachList, isModer, list2);
            return(list2);
        }
コード例 #13
0
        public void SetDebateInactive(int debateId)
        {
            Debate debate = _debateRepository.FindDebate(debateId);

            debate.Live = false;
            if (ModelState.IsValid)
            {
                _debateRepository.UpdateDebate(debate);
                _debateRepository.Save();
            }
        }
コード例 #14
0
        public void EnterChallenger(int debateId)
        {
            var    user   = Session["UserInfoSession"] as UserInformation;
            Debate debate = _debateRepository.FindDebate(debateId);

            if (debate.ChallengerIdId == null)
            {
                debate.ChallengerIdId = user.userInformationId;
                _debateRepository.UpdateDebate(debate);
                _debateRepository.Save();
            }
        }
コード例 #15
0
 public void HandleFinish(int index)
 {
     if (Clubby.Program.config.UnfinishedDebates.ContainsKey(index))
     {
         this.index = index;
         debate     = Clubby.Program.config.UnfinishedDebates[index];
     }
     else
     {
         throw new Exception($"Debate {index} doesn't exist");
     }
 }
コード例 #16
0
        public void DebateInactiveTest()
        {
            DebateController controller = new DebateController(debateRepository);

            int debateId = 1;

            controller.SetDebateInactive(1);

            Debate debate = controller.FindDebate(1);

            Assert.IsFalse(debate.Live);
        }
コード例 #17
0
ファイル: FastArbitreEmails.cs プロジェクト: keshava/ODR
        public static void YouHaveMail(string to, Debate debate, string debateUri, string emailUrl, Guid guid)
        {
            var replacements = new Dictionary <string, string>();

            replacements.Add("|*EMAILLINK*|", emailUrl);
            replacements.Add("|*TITLE*|", "Vous avez reçu un nouveau mail au sujet de : " + debate.Title);
            replacements.Add("|*TEXT*|", "Bonjour,<br/>vous retrouverez" + " <a href='" + debateUri + "' >" + "le nouveau mail au sujet de " + debate.Title +
                             @" ici </a>");

            MailSender.SendMessage(to, "[Fast Arbitre] Vous avez reçu un nouveau mail au sujet de : " + debate.Title,
                                   MailSender.GetHtmlAndReplaceData("~/Emails/Template.Simple.html", replacements), guid);
        }
コード例 #18
0
        public void DebateProcessingTest2()
        {
            DebateController controller = new DebateController(debateRepository);
            Debate           debate     = controller.FindDebate(2);
            int debateId = debate.DebateId;

            controller.ProcessDebateResult(debateId);

            Result result = controller.FindResult(debateId);

            int?winnerId = result.WinnerId;

            Assert.AreEqual(2, winnerId);
        }
コード例 #19
0
        // GET: /Debate/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Debate debate = db.Debate.Find(id);

            if (debate == null)
            {
                return(HttpNotFound());
            }
            return(View(debate));
        }
コード例 #20
0
        public ActionResult Create([Bind(Include = "creatorIdId,DebateId,Subject,Description,CategoryIdId,Timelimit")] Debate debate)
        {
            debate.DateTime = DateTime.Now;
            debate.Live     = true;

            if (ModelState.IsValid)
            {
                _debateRepository.AddDebate(debate);
                _debateRepository.Save();
                String url = "LiveChat?id=" + debate.DebateId;
                return(Redirect(url));
            }

            return(View(debate));
        }
コード例 #21
0
        public void TestMethod1()
        {
            var mockRepo = new Mock <IDebateRepository>();

            DebateController controller = new DebateController(mockRepo.Object);

            var debate = new Debate
            {
                DebateId = 0, CategoryIdId = 4, CreatorIdId = 3, Live = true,
                Subject  = "Emne", Description = "Beskrivelse",
                DateTime = DateTime.Now, TimeLimit = 50
            };

            var result = controller.Create(debate) as RedirectResult;

            mockRepo.Verify(d => d.AddDebate(debate), Times.Once);
            mockRepo.Verify(d => d.Save(), Times.Once);

            Assert.IsNotNull(result);
        }
コード例 #22
0
 public void GetDebateInfo()
 {
     this.debateexpand = Debate.FindByTid(this.topicid);
     this.debateList   = Debates.GetPostDebateList(this.topicid);
     if (this.debateexpand.Terminaled)
     {
         this.isenddebate = true;
         if (this.isenddebate)
         {
             this.canreply = false;
         }
     }
     foreach (var item in this.postlist)
     {
         if (this.debateList != null && this.debateList.ContainsKey(item.ID))
         {
             item.Debateopinion = this.debateList[item.ID];
         }
     }
 }
コード例 #23
0
        public ActionResult StartProcedure(int conflictId, int debatTime, string mailBody, string mailTitle)
        {
            var evt = BLLConflicts.AddEvent(new Event()
            {
                DateBegin   = DateTime.Now,
                Description = mailBody,
                IdConflict  = conflictId,
                Name        = mailTitle,
                Type        = (int)EventTypeEnum.OfficialDocuments,
                IdUser      = User.Identity.GetId()
            });
            var debate = new Debate();

            debate.CreateDate = DateTime.Now;
            debate.IdEvent    = evt.Id;
            debate.CountDown  = debatTime;
            debate.Type       = (int)DebateTypeEnum.Mail;
            debate.Title      = mailTitle;
            debate            = BLLDebates.CreateDebate(debate);

            var mailDebate = new MailDebate();

            mailDebate.CreateDate = DateTime.Now;
            mailDebate.CreatedBy  = User.Identity.GetId();
            mailDebate.IdDebate   = debate.Id;
            mailDebate.Body       = mailBody;
            mailDebate            = BLLDebates.AddMailDebate(mailDebate);

            if (debate.MailDebates == null)
            {
                debate.MailDebates = new List <MailDebate>();
            }
            foreach (var item in BLLDebates.GetUsersForDebate(debate.Id))
            {
                Guid guid = Guid.NewGuid();
                FastArbitreEmails.YouHaveMail(item, debate, Url.Action("MailDebate", "Arbitre", new { debatId = debate.Id }, this.Request.Url.Scheme) + "#mail_" + mailDebate.Id, Request.UrlReferrer.DnsSafeHost + Url.Action("Index", "Email", new { id = guid.ToString() }), guid);
            }

            debate.MailDebates.Add(mailDebate);
            return(RedirectToAction("Conflict", "Viewer", new { conflictId = conflictId }));
        }
コード例 #24
0
        public async Task <bool> CreateDebate(DebateRequestDto debate)
        {
            Debate newDebate = new Debate();

            newDebate.Description = debate.Description;
            newDebate.Topic       = debate.Topic;
            newDebate.CreatedById = debate.CreatedById;

            try
            {
                await _context.Debates.AddAsync(newDebate);

                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(false);
            }
            return(true);
        }
コード例 #25
0
ファイル: frmNewDebate.cs プロジェクト: senceralci/Management
 private void tbtnSave_ItemClick(object sender, TileItemEventArgs e)
 {
     ExceptionHandler.HandleException(() =>
     {
         var debateToAdd = new Debate
         {
             DebateDate              = dtpDate.DateTime,
             DebateDetail            = txtDetail.Text,
             DebateRequested         = txtRequested.Text,
             DebateRequiredEquipment = txtEquipment.Text,
             DebateSecurityDetail    = txtSecurity.Text,
             EnvoyId    = Convert.ToInt32(cmbEmployee.EditValue),
             TeamId     = Convert.ToInt32(cmbTeam.EditValue),
             CustomerId = frmMain.customerIdx
         };
         _debateService.Add(debateToAdd);
         debId             = debateToAdd.DebateId;
         tbtnPrint.Enabled = true;
         tbtnSave.Enabled  = false;
         XtraMessageBox.Show("Başarıyla Oluşturuldu.");
     });
 }
コード例 #26
0
        public IEnumerable <SelectListItem> BuildTeamList(int id)
        {
            List <SelectListItem> teamsToChoose   = new List <SelectListItem>();
            Ballot                ballot          = _context.Ballot.FirstOrDefault(b => b.BallotId == id);
            Debate                debate          = _context.Debate.FirstOrDefault(d => d.DebateId == ballot.DebateId);
            IndividualTeam        affirmativeTeam = _context.IndividualTeam.FirstOrDefault(i => i.IndividualTeamId == debate.AffirmativeTeamId);
            IndividualTeam        negativeTeam    = _context.IndividualTeam.FirstOrDefault(i => i.IndividualTeamId == debate.NegativeTeamId);
            List <IndividualTeam> teams           = new List <IndividualTeam>();

            teams.Add(affirmativeTeam);
            teams.Add(negativeTeam);
            foreach (var team in teams)
            {
                teamsToChoose.Add(
                    new SelectListItem
                {
                    Value = team.IndividualTeamId.ToString(),
                    Text  = team.IndividualTeamName,
                });
            }
            return(teamsToChoose);
        }
コード例 #27
0
ファイル: RoundsControl.cs プロジェクト: lorcanthrope/Maidens
        private void MoveDraggedValue(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (!e.Button.HasFlag(MouseButtons.Left))
            {
                return;
            }

            if (_currentlySelectedCell == null)
            {
                return;
            }

            if (_currentlySelectedCell.ColumnIndex == e.ColumnIndex && _currentlySelectedCell.RowIndex == e.RowIndex)
            {
                return;
            }

            SqlHelper helper = new SqlHelper(_tournament.Database);

            bool isVenueDrag = _currentlySelectedCell.ColumnIndex == dgv_Round.Columns["Venue"].Index && dgv_Round.Rows[e.RowIndex].Tag != null;

            if (isVenueDrag)
            {
                Guid   draggedDebateId        = (Guid)dgv_Round.Rows[_currentlySelectedCell.RowIndex].Tag;
                Guid   debateToSwitchItWithId = (Guid)dgv_Round.Rows[e.RowIndex].Tag;
                Debate draggedDebate          = helper.GetDebate(draggedDebateId).Result;
                Guid   draggedVenue           = draggedDebate.VenueId;
                Debate debateToSwitchItWith   = helper.GetDebate(debateToSwitchItWithId).Result;
                Guid   switchedVenue          = debateToSwitchItWith.VenueId;
                draggedDebate.VenueId        = switchedVenue;
                debateToSwitchItWith.VenueId = draggedVenue;
                helper.UpdateDebate(draggedDebate);
                helper.UpdateDebate(debateToSwitchItWith);
                SwitchRows(e.RowIndex, _currentlySelectedCell.RowIndex);
            }

            bool isAdjudicatorDrag = dgv_Round.Columns[_currentlySelectedCell.ColumnIndex].Name.StartsWith("Adj") && dgv_Round.Columns[e.ColumnIndex].Name.StartsWith("Adj");

            if (isAdjudicatorDrag)
            {
                Guid draggedJudgeDrawId = dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Tag != null ? (Guid)dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Tag : Guid.Empty;
                if (draggedJudgeDrawId.Equals(Guid.Empty))
                {
                    _currentlySelectedCell = null;
                    Cursor = Cursors.Arrow;
                    return;
                }

                bool doesDraggedRowPossiblyNeedToBeRearranged = false;

                for (int i = int.Parse(dgv_Round.Columns[_currentlySelectedCell.ColumnIndex].Name.Replace("Adj", string.Empty)) + 1; i <= 5; i++)
                {
                    DataGridViewCell nextDraggedCell = dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[string.Format("Adj{0}", i)];
                    if (nextDraggedCell.Value != null)
                    {
                        doesDraggedRowPossiblyNeedToBeRearranged = true;
                        break;
                    }
                }
                JudgeDraw draggedJudgeDraw = helper.GetJudgeDraw(draggedJudgeDrawId).Result;

                bool      areWeSwitchingWithAnotherCell = true;
                JudgeDraw judgeDrawToSwitchItWith;
                int       columnIndexToSwitchTo = e.ColumnIndex;

                int adjudicatorNumber = int.Parse(dgv_Round.Columns[e.ColumnIndex].Name.Replace("Adj", string.Empty));
                for (int i = 1; i < adjudicatorNumber; i++)
                {
                    if (dgv_Round.Rows[e.RowIndex].Cells[string.Format("Adj{0}", i)].Value == null)
                    {
                        columnIndexToSwitchTo = dgv_Round.Columns[string.Format("Adj{0}", i)].Index;
                        break;
                    }
                }

                Guid judgeDrawToSwitchItWithId = dgv_Round.Rows[e.RowIndex].Cells[columnIndexToSwitchTo].Tag != null ? (Guid)dgv_Round.Rows[e.RowIndex].Cells[columnIndexToSwitchTo].Tag : Guid.Empty;
                if (judgeDrawToSwitchItWithId.Equals(Guid.Empty))
                {
                    judgeDrawToSwitchItWith       = null;
                    areWeSwitchingWithAnotherCell = false;
                }
                else
                {
                    judgeDrawToSwitchItWith = helper.GetJudgeDraw(judgeDrawToSwitchItWithId).Result;
                }

                bool judgeInSameDebate;

                if (judgeDrawToSwitchItWith == null)
                {
                    if (_currentlySelectedCell.RowIndex == e.RowIndex)
                    {
                        _currentlySelectedCell = null;
                        Cursor = Cursors.Arrow;
                        return;
                    }
                    else
                    {
                        judgeInSameDebate = false;
                    }
                }
                else
                {
                    judgeInSameDebate = draggedJudgeDraw.DebateId.Equals(judgeDrawToSwitchItWith.DebateId);
                }

                int newJudgeNumber = 0;
                if (judgeDrawToSwitchItWith != null)
                {
                    newJudgeNumber = judgeDrawToSwitchItWith.Number;
                }
                else
                {
                    newJudgeNumber = int.Parse(dgv_Round.Columns[e.ColumnIndex].Name.Replace("Adj", string.Empty));
                }


                int draggedJudgeDrawNumber        = draggedJudgeDraw.Number;
                int judgeDrawToSwitchItWithNumber = newJudgeNumber;
                draggedJudgeDraw.Number = judgeDrawToSwitchItWithNumber;
                if (areWeSwitchingWithAnotherCell)
                {
                    judgeDrawToSwitchItWith.Number = draggedJudgeDrawNumber;
                }

                if (!judgeInSameDebate)
                {
                    Guid draggedJudgeDrawDebateId        = draggedJudgeDraw.DebateId;
                    Guid judgeDrawToSwitchItWithDebateId = (Guid)dgv_Round.Rows[e.RowIndex].Tag;
                    draggedJudgeDraw.DebateId = judgeDrawToSwitchItWithDebateId;
                    if (areWeSwitchingWithAnotherCell)
                    {
                        judgeDrawToSwitchItWith.DebateId = draggedJudgeDrawDebateId;
                    }
                }

                helper.UpdateJudgeDraw(draggedJudgeDraw);
                if (areWeSwitchingWithAnotherCell)
                {
                    helper.UpdateJudgeDraw(judgeDrawToSwitchItWith);
                }

                string draggedJudgeDrawValue        = (string)dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Value;
                string judgeDrawToSwitchItWithValue = (string)dgv_Round.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Value = judgeDrawToSwitchItWithValue;
                Guid draggedTag = (Guid)dgv_Round[_currentlySelectedCell.ColumnIndex, _currentlySelectedCell.RowIndex].Tag;
                Guid switchTag  = (Guid)dgv_Round[e.ColumnIndex, e.RowIndex].Tag;
                dgv_Round[_currentlySelectedCell.ColumnIndex, _currentlySelectedCell.RowIndex].Tag = switchTag;
                dgv_Round[e.ColumnIndex, e.RowIndex].Tag = draggedTag;


                if (doesDraggedRowPossiblyNeedToBeRearranged && !areWeSwitchingWithAnotherCell)
                {
                    for (int i = 1; i < 5; i++)
                    {
                        DataGridViewCell thisCell = dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[string.Format("Adj{0}", i)];
                        DataGridViewCell nextCell = dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[string.Format("Adj{0}", i + 1)];
                        if (thisCell.Value == null)
                        {
                            thisCell.Value = nextCell.Value;
                            thisCell.Tag   = nextCell.Tag;
                            Guid nextId = nextCell.Tag != null ? (Guid)nextCell.Tag : Guid.Empty;
                            if (nextId != Guid.Empty)
                            {
                                JudgeDraw nextJudgeDraw = helper.GetJudgeDraw(nextId).Result;
                                nextJudgeDraw.Number = i;
                                helper.UpdateJudgeDraw(nextJudgeDraw);
                            }
                            nextCell.Value = null;
                            nextCell.Tag   = null;
                        }
                    }
                }

                dgv_Round.Rows[e.RowIndex].Cells[columnIndexToSwitchTo].Value = draggedJudgeDrawValue;
                Refresh();
            }

            Position position;
            bool     isSpeakerDrag = Enum.TryParse(dgv_Round.Columns[_currentlySelectedCell.ColumnIndex].Name, out position) && Enum.TryParse(dgv_Round.Columns[_currentlySelectedCell.ColumnIndex].Name, out position);

            if (isSpeakerDrag)
            {
                Guid        draggedSpeakerDrawId        = (Guid)dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Tag;
                SpeakerDraw draggedSpeakerDraw          = helper.GetSpeakerDraw(draggedSpeakerDrawId).Result;
                Guid        speakerDrawToSwitchItWithId = (Guid)dgv_Round.Rows[e.RowIndex].Cells[e.ColumnIndex].Tag;
                SpeakerDraw speakerDrawToSwitchItWith   = helper.GetSpeakerDraw(speakerDrawToSwitchItWithId).Result;

                bool speakerInSameDebate = draggedSpeakerDraw.DebateId.Equals(speakerDrawToSwitchItWith.DebateId);

                Position draggedSpeakerDrawPosition        = draggedSpeakerDraw.Position;
                Position speakerDrawToSwitchItWithPosition = speakerDrawToSwitchItWith.Position;
                draggedSpeakerDraw.Position        = speakerDrawToSwitchItWithPosition;
                speakerDrawToSwitchItWith.Position = draggedSpeakerDrawPosition;

                if (!speakerInSameDebate)
                {
                    Guid draggedSpeakerDrawDebateId        = draggedSpeakerDraw.DebateId;
                    Guid speakerDrawToSwitchItWithDebateId = speakerDrawToSwitchItWith.DebateId;
                    draggedSpeakerDraw.DebateId        = speakerDrawToSwitchItWithDebateId;
                    speakerDrawToSwitchItWith.DebateId = draggedSpeakerDrawDebateId;
                }

                helper.UpdateSpeakerDraw(draggedSpeakerDraw);
                helper.UpdateSpeakerDraw(speakerDrawToSwitchItWith);

                string draggedSpeakerDrawValue        = (string)dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Value;
                string speakerDrawToSwitchItWithValue = (string)dgv_Round.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                dgv_Round.Rows[_currentlySelectedCell.RowIndex].Cells[_currentlySelectedCell.ColumnIndex].Value = speakerDrawToSwitchItWithValue;
                dgv_Round.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = draggedSpeakerDrawValue;
            }

            ShowClashes(_currentlySelectedRound.RoundId);

            _currentlySelectedCell = null;
            Cursor = Cursors.Arrow;
        }
コード例 #28
0
        public List <Debate> ObtenerDebate()
        {
            var Debate1 = new Debate()
            {
                titulo           = "Goku",
                contenido        = "Goku es un ssj al que le gusta pelear",
                contenidoPreview = "<b>Goku es un ssj al que le gusta pelear</b>",
                imagen           = "http://d3cprjxvoejtmm.cloudfront.net/images/2017/05/09102114/goku.png",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = true
            };
            var Debate2 = new Debate()
            {
                titulo           = "vegeta",
                contenido        = "Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear Vegeta es un ssj al que le gusta pelear ",
                contenidoPreview = "Vegueta es un ssj al que le gusta pelear",
                imagen           = "https://vignette.wikia.nocookie.net/epicrapbattlesofhistory/images/6/6a/Ssj_vegeta_by_aznfanaticwarrior.png",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = true
            };
            var Debate3 = new Debate()
            {
                titulo           = "Piccolo",
                contenido        = "Piccolo es un Namekusei",
                contenidoPreview = "Piccolo es un Namekusei",
                imagen           = "https://otakukart.com/wp-content/uploads/2018/01/Piccolo.jpg",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = false
            };
            var Debate4 = new Debate()
            {
                titulo           = "Nappa",
                contenido        = "Nappa era un ssj",
                contenidoPreview = "Nappa era un ssj",
                imagen           = "https://cdn.hobbyconsolas.com/sites/navi.axelspringer.es/public/media/image/2017/10/nappa.jpg",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = false
            };
            var Debate5 = new Debate()
            {
                titulo           = "Gohan",
                contenido        = "Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear Gohan es un ssj al que no le gusta pelear",
                contenidoPreview = "Gohan es un ssj al que no le gusta pelear",
                imagen           = "https://vignette.wikia.nocookie.net/dragonball/images/5/5c/Gohan_SSJ2_2_by_FMontel.jpg/revision/latest?cb=20120227131451",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = true
            };
            var Debate6 = new Debate()
            {
                titulo           = "Krilin",
                contenido        = "Krilin es un coge golpe",
                contenidoPreview = "Krilin es un coge golpe",
                imagen           = "http://static.alfabetajuega.com/abj_public_files/multimedia/imagenes/201607/157465.alfabetajuega-dragon-ball-z-kai-krilin-240716.jpg",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = false
            };
            var Debate7 = new Debate()
            {
                titulo           = "Freezer",
                contenido        = "Freezer queria las Dragon Balls",
                contenidoPreview = "Freezer queria las Dragon Balls",
                imagen           = "https://ugc.kn3.net/i/origin/http://animeclubgt.com/stuff/regalogeek/wp-content/uploads/2017/02/frieza_vector_by_elfaceitoso.png",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = true
            };
            var Debate8 = new Debate()
            {
                titulo           = "Cell",
                contenido        = "Cell queria ser perfecto",
                contenidoPreview = "Cell queria ser perfecto",
                imagen           = "https://static.zerochan.net/Cell.%28DRAGON.BALL%29.full.454171.jpg",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = false
            };
            var Debate9 = new Debate()
            {
                titulo           = "Cell perfecto",
                contenido        = "Cell logro la perfeccion",
                contenidoPreview = "Cell logro la perfeccion",
                imagen           = "https://otakukart.com/animeblog/wp-content/uploads/2017/01/Dragon-Ball-Super-Episode-76-Otakukart.jpg",
                autor            = "Jose",
                fecha            = "10-1-2017",
                destacar         = true
            };

            return(new List <Debate> {
                Debate1, Debate2, Debate3, Debate4, Debate5, Debate6, Debate7, Debate8, Debate9
            });
        }
コード例 #29
0
        private static Round DrawPowerpairedRound(Tournament tournament, DataContext context, string motion)
        {
            SqlHelper helper = new SqlHelper(tournament.Database);

            Round round = new Round()
            {
                Motion      = motion,
                IsRandom    = false,
                RoundNumber = tournament.RoundNumber
            };

            NonQueryResult insert = helper.InsertRound(round);

            List <Debate> debates = new List <Debate>();

            List <Speaker> speakers = new List <Speaker>();

            speakers.AddRange(context.Speakers.Where(a => a.Active));
            speakers.AsParallel().ForAll(a => a.Draws = helper.GetSpeakerDraws(a.SpeakerId).Result);
            speakers = speakers.OrderByDescending(a => a.Draws.Sum(d => d.Result.Points())).ThenByDescending(s => s.Draws.Sum(d => d.SpeakerPoints)).ToList();

            int numberOfRooms         = speakers.Count / 6;
            int numberOfJudgesPerRoom = context.Judges.Count / numberOfRooms;

            List <Judge> judges = new List <Judge>();

            judges.AddRange(context.Judges.Where(j => j.Active));
            judges = judges.OrderByDescending(j => (int)j.Level).ToList();

            List <Venue> venues = new List <Venue>();

            venues.AddRange(context.Venues);


            for (int i = 1; i <= numberOfRooms; i++)
            {
                Venue v = venues.First();
                venues.Remove(v);
                Debate debate = new Debate()
                {
                    RoundId = round.RoundId,
                    VenueId = v.VenueId
                };

                debates.Add(debate);

                insert = helper.InsertDebate(debate);

                List <Speaker> toInsert = speakers.Take(6).ToList();

                SetSpeakersResult result = SetSpeakers(toInsert, debate.DebateId);

                foreach (SpeakerDraw speakerDraw in result.SpeakerDraws)
                {
                    helper.InsertSpeakerDraw(speakerDraw);
                }

                foreach (Speaker speaker in toInsert)
                {
                    speakers.Remove(speaker);
                }

                Judge     judge     = judges.First();
                JudgeDraw judgeDraw = new JudgeDraw()
                {
                    DebateId = debate.DebateId,
                    Number   = 1,
                    JudgeId  = judge.JudgeId
                };
                judges.Remove(judge);
                insert = helper.InsertJudgeDraw(judgeDraw);
            }

            foreach (Debate debate in debates)
            {
                for (int i = 2; i <= numberOfJudgesPerRoom; i++)
                {
                    Judge     j         = judges.First();
                    JudgeDraw judgeDraw = new JudgeDraw()
                    {
                        DebateId = debate.DebateId,
                        Number   = i,
                        JudgeId  = j.JudgeId
                    };
                    judges.Remove(j);
                    insert = helper.InsertJudgeDraw(judgeDraw);
                }
            }

            while (judges.Any())
            {
                Debate debate = debates.OrderBy(a => a.DebateId).First();
                debates.Remove(debate);
                Judge     j         = judges.First();
                JudgeDraw judgeDraw = new JudgeDraw()
                {
                    DebateId = debate.DebateId,
                    Number   = numberOfJudgesPerRoom + 1,
                    JudgeId  = j.JudgeId
                };
                judges.Remove(j);
                insert = helper.InsertJudgeDraw(judgeDraw);
            }

            return(round);
        }
コード例 #30
0
        private static Round DrawNonPowerpairedRound(Tournament tournament, DataContext context, string motion)
        {
            SqlHelper helper = new SqlHelper(tournament.Database);

            Round round = new Round()
            {
                Motion      = motion,
                IsRandom    = true,
                RoundNumber = tournament.RoundNumber
            };

            NonQueryResult insert = helper.InsertRound(round);

            Random r = new Random();

            List <Debate> debates = new List <Debate>();

            List <Speaker>  initialSpeakers = context.Speakers.Where(s => s.Active).OrderBy(a => Guid.NewGuid()).ToList();
            Queue <Speaker> speakers        = new Queue <Speaker>(context.Speakers.Count(s => s.Active));

            int count = context.Speakers.Count(s => s.Active);

            while (initialSpeakers.Any())
            {
                Speaker s = initialSpeakers.First();
                speakers.Enqueue(s);
                initialSpeakers.Remove(s);
            }

            int numberOfRooms         = speakers.Count / 6;
            int numberOfJudgesPerRoom = context.Judges.Count(j => j.Active) / numberOfRooms;

            List <Judge> judges = new List <Judge>();

            judges.AddRange(context.Judges.Where(j => j.Active));
            judges = judges.OrderByDescending(j => (int)j.Level).ToList();

            List <Venue> venues = new List <Venue>();

            venues.AddRange(context.Venues.Where(v => v.Active));

            for (int i = 1; i <= numberOfRooms; i++)
            {
                Venue v = venues.First();
                venues.Remove(v);

                Debate debate = new Debate()
                {
                    RoundId = round.RoundId,
                    VenueId = v.VenueId
                };
                debates.Add(debate);

                insert = helper.InsertDebate(debate);

                foreach (Position p in Enum.GetValues(typeof(Position)))
                {
                    if (p == Position.Invalid)
                    {
                        continue;
                    }

                    Speaker s = speakers.Dequeue();

                    SpeakerDraw speakerDraw = new SpeakerDraw()
                    {
                        DebateId  = debate.DebateId,
                        Position  = p,
                        SpeakerId = s.SpeakerId
                    };

                    insert = helper.InsertSpeakerDraw(speakerDraw);
                }
            }

            foreach (Debate debate in debates.OrderBy(a => Guid.NewGuid()))
            {
                Judge     j         = judges.First();
                JudgeDraw judgeDraw = new JudgeDraw()
                {
                    DebateId = debate.DebateId,
                    Number   = 1,
                    JudgeId  = j.JudgeId
                };
                judges.Remove(j);
                insert = helper.InsertJudgeDraw(judgeDraw);
            }

            foreach (Debate debate in debates.OrderBy(a => Guid.NewGuid()))
            {
                for (int i = 2; i <= numberOfJudgesPerRoom; i++)
                {
                    Judge     j         = judges.First();
                    JudgeDraw judgeDraw = new JudgeDraw()
                    {
                        DebateId = debate.DebateId,
                        Number   = i,
                        JudgeId  = j.JudgeId
                    };
                    judges.Remove(j);
                    insert = helper.InsertJudgeDraw(judgeDraw);
                }
            }

            while (judges.Any())
            {
                Debate debate = debates.OrderBy(a => a.DebateId).First();
                debates.Remove(debate);
                Judge     j         = judges.First();
                JudgeDraw judgeDraw = new JudgeDraw()
                {
                    DebateId = debate.DebateId,
                    Number   = numberOfJudgesPerRoom + 1,
                    JudgeId  = j.JudgeId
                };
                judges.Remove(j);
                insert = helper.InsertJudgeDraw(judgeDraw);
            }

            return(round);
        }