Ejemplo n.º 1
0
        private void SetRankIds()
        {
            LeadershipRank row = LeadershipRank.GetLast();

            if (row != null)
            {
                Rank           = row.Rank + 1;
                PrevRankId     = row.Id;
                row.NextRankId = TableHelper.GetNextId(TableName);
                row.Save();
            }
            else
            {
                Rank       = 1;
                PrevRankId = -1;
                NextRankId = -1;
            }
        }
Ejemplo n.º 2
0
        public void MoveRankUp()
        {
            if (!this.PrevRankId.HasValue || this.PrevRankId.Value == -1)
            {
                return;
            }

            LeadershipRank rankSwap = new LeadershipRank(this.PrevRankId.Value);

            this.Rank     ^= rankSwap.Rank;
            rankSwap.Rank ^= this.Rank;
            this.Rank     ^= rankSwap.Rank;

            this.PrevRankId     = rankSwap.PrevRankId;
            rankSwap.PrevRankId = this.Id;

            rankSwap.NextRankId = this.NextRankId;
            this.NextRankId     = rankSwap.Id;

            if (this.PrevRankId.HasValue && this.PrevRankId.Value != -1)
            {
                LeadershipRank rankLower = new LeadershipRank(this.PrevRankId.Value);
                rankLower.NextRankId = this.Id;
                rankLower.Save();
            }

            if (rankSwap.NextRankId.HasValue && rankSwap.NextRankId.Value != -1)
            {
                LeadershipRank rankHigher = new LeadershipRank(rankSwap.NextRankId.Value);
                rankHigher.PrevRankId = rankSwap.Id;
                rankHigher.Save();
            }

            this.Save();
            rankSwap.Save();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Only used for auto-delete when rank do not have requirement
        /// </summary>
        /// <param name="list"></param>
        public static void DeleteRange(List <LeadershipRank> list)
        {
            LeadershipRank prev = null;
            LeadershipRank next = null;

            bool prevSaveDB = false;
            bool nextSaveDB = false;

            foreach (LeadershipRank rank in list)
            {
                if (rank.PrevRankId.HasValue && rank.PrevRankId.Value != -1)
                {
                    prev =
                        list.FirstOrDefault(x => x.Id == rank.PrevRankId.Value) ??
                        new LeadershipRank(rank.PrevRankId.Value);

                    prevSaveDB = !list.Any(x => x.Id == prev.Id);
                }
                if (rank.NextRankId.HasValue && rank.NextRankId.Value != -1)
                {
                    next =
                        list.FirstOrDefault(x => x.Id == rank.NextRankId.Value) ??
                        new LeadershipRank(rank.NextRankId.Value);

                    nextSaveDB = !list.Any(x => x.Id == next.Id);
                }

                if (prev != null && next != null)
                {
                    prev.NextRankId = rank.NextRankId;
                    next.PrevRankId = rank.PrevRankId;

                    if (prevSaveDB)
                    {
                        prev.Save();
                    }
                    if (nextSaveDB)
                    {
                        next.Save();
                    }
                }
                else if (prev != null && next == null) //Delete Last
                {
                    prev.NextRankId = -1;
                    if (prevSaveDB)
                    {
                        prev.Save();
                    }
                }
                else if (prev == null && next != null) //Delete First
                {
                    next.PrevRankId = -1;
                    if (nextSaveDB)
                    {
                        next.Save();
                    }
                }

                TableHelper.DeleteRows(TableName, Columns.Id, rank.Id);

                prevSaveDB = false;
                nextSaveDB = false;
            }

            UpdateRanksOrder();
        }
Ejemplo n.º 4
0
        public void AddRank(string name, PrizeKind prize, string prizeValue, string note = null)
        {
            var newRank = new LeadershipRank(name, prize, prizeValue, note);

            newRank.Save();
        }