示例#1
0
        partial void CompareTeam(Foundation.NSObject sender)
        {
            if (m_isInModeCompare)
            {
                m_isInModeCompare = false;

                foreach (var indexPath in TeamCyclersTable.IndexPathsForVisibleRows)
                {
                    var cell = TeamCyclersTable.CellAt(indexPath) as CyclerTableCell;
                    if (Cyclers[(int)indexPath.Item].Origin == TeamOrigin.Mine)
                    {
                        cell.SetVisualsToOutsideRight(TeamCyclersTable.Bounds.Width);
                    }
                    else
                    {
                        cell.SetVisualsToUndetermined();
                    }
                }

                var mine             = Cyclers.Where(c => c.Origin == TeamOrigin.Mine).ToList();
                var removeIndexPaths = new List <NSIndexPath>();
                foreach (var c in mine)
                {
                    int index = Cyclers.FindIndex(tm => tm.Id == c.Id);
                    Cyclers.Remove(c);
                    removeIndexPaths.Add(NSIndexPath.FromItemSection(index, 0));
                }

                Cyclers.ForEach(t => t.Origin = TeamOrigin.Undetermined);


                UIView.Animate(CompareAnimationDuration, () => {
                    this.View.LayoutIfNeeded();
                }, () => {
                    TeamCyclersTable.DeleteRows(removeIndexPaths.ToArray(), UITableViewRowAnimation.None);
                });
            }
            else
            {
                m_isInModeCompare = true;

                var myTeam = DataSource.MyTeam();
                Cyclers.ForEach(t => t.Origin = TeamOrigin.Theirs);
                Cyclers.Where(t => myTeam.Any(mt => mt.Id == t.Id)).ToList().ForEach(t => t.Origin = TeamOrigin.Common);

                foreach (var indexPath in TeamCyclersTable.IndexPathsForVisibleRows)
                {
                    var cell = TeamCyclersTable.CellAt(indexPath) as CyclerTableCell;
                    if (Cyclers[(int)indexPath.Item].Origin == TeamOrigin.Common)
                    {
                        cell.SetVisualsToCommon();
                    }
                    else if (Cyclers[(int)indexPath.Item].Origin == TeamOrigin.Theirs)
                    {
                        cell.SetVisualsToTheirs();
                    }
                    else if (Cyclers[(int)indexPath.Item].Origin == TeamOrigin.Undetermined)
                    {
                        cell.SetVisualsToUndetermined();
                    }
                }

                UIView.Animate(CompareAnimationDuration, () => {
                    this.View.LayoutIfNeeded();
                });

                var myUniqueCyclers = myTeam.Where(mt => !Cyclers.Any(t => t.Id == mt.Id)).ToList();
                var addIndexPaths   = new List <NSIndexPath>();
                foreach (var cycler in myUniqueCyclers)
                {
                    cycler.Origin = TeamOrigin.Mine;
                    int theirsRankedHeigherCount = Cyclers.Where(t => t.Id < cycler.Id).Count();
                    Cyclers.Insert(theirsRankedHeigherCount, cycler);
                    addIndexPaths.Add(NSIndexPath.FromItemSection(theirsRankedHeigherCount, 0));
                }

                TeamCyclersTable.InsertRows(addIndexPaths.ToArray(), UITableViewRowAnimation.None);
            }
        }
示例#2
0
        void ReleaseDesignerOutlets()
        {
            if (FollowButton != null)
            {
                FollowButton.Dispose();
                FollowButton = null;
            }

            if (HeaderHeightConstraint != null)
            {
                HeaderHeightConstraint.Dispose();
                HeaderHeightConstraint = null;
            }

            if (OwnerImageView != null)
            {
                OwnerImageView.Dispose();
                OwnerImageView = null;
            }

            if (OwnerNameLabel != null)
            {
                OwnerNameLabel.Dispose();
                OwnerNameLabel = null;
            }

            if (RankingButton != null)
            {
                RankingButton.Dispose();
                RankingButton = null;
            }

            if (TeamCyclersTable != null)
            {
                TeamCyclersTable.Dispose();
                TeamCyclersTable = null;
            }

            if (TeamHeaderHolder != null)
            {
                TeamHeaderHolder.Dispose();
                TeamHeaderHolder = null;
            }

            if (TeamImageView != null)
            {
                TeamImageView.Dispose();
                TeamImageView = null;
            }

            if (TeamOwnerDetailHolder != null)
            {
                TeamOwnerDetailHolder.Dispose();
                TeamOwnerDetailHolder = null;
            }

            if (TeamOwnerHolderHeightConstraint != null)
            {
                TeamOwnerHolderHeightConstraint.Dispose();
                TeamOwnerHolderHeightConstraint = null;
            }

            if (TeamRankingGraphHolder != null)
            {
                TeamRankingGraphHolder.Dispose();
                TeamRankingGraphHolder = null;
            }

            if (TeamRankingGraphCurrentCompetitionNameLabel != null)
            {
                TeamRankingGraphCurrentCompetitionNameLabel.Dispose();
                TeamRankingGraphCurrentCompetitionNameLabel = null;
            }

            if (TeamRankingGraphHolderHeightConstraint != null)
            {
                TeamRankingGraphHolderHeightConstraint.Dispose();
                TeamRankingGraphHolderHeightConstraint = null;
            }
        }