Esempio n. 1
0
        public ActionResult SwapPlayers(string pOne, string pTwo)
        {
            string[] splitOne    = pOne.Split('-');
            int      orgIDOne    = splitOne[0].ToInt();
            int      peopleIDOne = splitOne[1].ToInt();

            string[] splitTwo    = pTwo.Split('-');
            int      orgIDTwo    = splitTwo[0].ToInt();
            int      peopleIDTwo = splitTwo[1].ToInt();

            var playerOne = (from e in DbUtil.Db.OrganizationMembers
                             where e.OrganizationId == orgIDOne
                             where e.PeopleId == peopleIDOne
                             select e).SingleOrDefault();

            var playerTwo = (from e in DbUtil.Db.OrganizationMembers
                             where e.OrganizationId == orgIDTwo
                             where e.PeopleId == peopleIDTwo
                             select e).SingleOrDefault();


            if (playerOne != null)
            {
                var pOneTag = playerOne.OrgMemMemTags.FirstOrDefault(t1 => t1.MemberTag.Name.StartsWith("TM:"));
                if (playerTwo != null)
                {
                    var pTwoTag = playerTwo.OrgMemMemTags.FirstOrDefault(t2 => t2.MemberTag.Name.StartsWith("TM:"));

                    if (pTwoTag != null)
                    {
                        var pOneNew = new OrgMemMemTag
                        {
                            PeopleId    = peopleIDOne,
                            OrgId       = pTwoTag.OrgId,
                            MemberTagId = pTwoTag.MemberTagId
                        };

                        DbUtil.Db.OrgMemMemTags.DeleteOnSubmit(pTwoTag);
                        DbUtil.Db.OrgMemMemTags.InsertOnSubmit(pOneNew);
                    }
                }

                if (pOneTag != null)
                {
                    var pTwoNew = new OrgMemMemTag
                    {
                        PeopleId    = peopleIDTwo,
                        OrgId       = pOneTag.OrgId,
                        MemberTagId = pOneTag.MemberTagId
                    };

                    DbUtil.Db.OrgMemMemTags.DeleteOnSubmit(pOneTag);
                    DbUtil.Db.OrgMemMemTags.InsertOnSubmit(pTwoNew);
                }
            }

            DbUtil.Db.SubmitChanges();
            return(Content("Complete"));
        }
Esempio n. 2
0
        public void createTeamGroups()
        {
            var c = from e in DbUtil.Db.OrganizationMembers
                    where e.Score == 0
                    where e.OrganizationId == orgid
                    select e;

            foreach (var coach in c)
            {
                var name = "TM: " + coach.Person.Name;

                var group = DbUtil.Db.MemberTags.SingleOrDefault(g => g.Name == name && g.OrgId == orgid);

                if (group != null)
                {
                    continue;
                }

                group = new MemberTag
                {
                    Name  = name,
                    OrgId = orgid
                };

                DbUtil.Db.MemberTags.InsertOnSubmit(group);
            }

            DbUtil.Db.SubmitChanges();

            // Refresh the list
            var teamList = (from e in DbUtil.Db.MemberTags
                            where e.OrgId == orgid
                            where e.Name.StartsWith("TM:")
                            select e).ToList();


            var p = (from e in DbUtil.Db.OrganizationMembers
                     where e.Score != 0
                     where e.OrganizationId == orgid
                     select e).ToList();

            var teams   = teamList.Count();
            var players = p.Count();
            var perTeam = Math.Floor((double)players / teams);
            var passes  = Math.Floor(perTeam / 2);

            for (var iX = 0; iX < passes; iX++)
            {
                foreach (var team in teamList)
                {
                    var tagTop = new OrgMemMemTag();
                    var tagBot = new OrgMemMemTag();

                    var top = p.OrderByDescending(t => t.Score).ThenByDescending(t => t.PeopleId).Take(1).SingleOrDefault();
                    var bot = p.OrderBy(t => t.Score).ThenBy(t => t.PeopleId).Take(1).SingleOrDefault();

                    tagTop.MemberTagId = team.Id;
                    tagTop.OrgId       = orgid;
                    tagTop.PeopleId    = top.PeopleId;

                    tagBot.MemberTagId = team.Id;
                    tagBot.OrgId       = orgid;
                    tagBot.PeopleId    = bot.PeopleId;

                    DbUtil.Db.OrgMemMemTags.InsertOnSubmit(tagTop);
                    DbUtil.Db.OrgMemMemTags.InsertOnSubmit(tagBot);

                    p.Remove(top);
                    p.Remove(bot);
                }
            }

            if (p.Any())
            {
                foreach (var team in teamList)
                {
                    var tagBot = new OrgMemMemTag();

                    var bot = p.OrderBy(t => t.Score).ThenBy(t => t.PeopleId).Take(1).SingleOrDefault();
                    if (bot == null)
                    {
                        break;
                    }

                    tagBot.MemberTagId = team.Id;
                    tagBot.OrgId       = orgid;
                    tagBot.PeopleId    = bot.PeopleId;

                    DbUtil.Db.OrgMemMemTags.InsertOnSubmit(tagBot);

                    p.Remove(bot);
                }
            }

            if (p.Any())
            {
                foreach (var team in teamList)
                {
                    var tagBot = new OrgMemMemTag();

                    var bot = p.OrderBy(t => t.Score).ThenBy(t => t.PeopleId).Take(1).SingleOrDefault();
                    if (bot == null)
                    {
                        break;
                    }

                    tagBot.MemberTagId = team.Id;
                    tagBot.OrgId       = orgid;
                    tagBot.PeopleId    = bot.PeopleId;

                    DbUtil.Db.OrgMemMemTags.InsertOnSubmit(tagBot);

                    p.Remove(bot);
                }
            }

            DbUtil.Db.SubmitChanges();
        }