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); } }
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; } }