⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 issuecomparer.cs

📁 BugNET is an issue tracking and project issue management solution built using the ASP.NET web applic
💻 CS
字号:
using System;
using System.Collections.Generic;

namespace BugNET.BusinessLogicLayer
{
    /// <summary>
    /// Comparers for Issues.
    /// </summary>
    public class IssueComparer : IComparer<Issue> 
    {
        /// <summary>
        /// Sorting column
        /// </summary>
        private string _sortColumn;
        /// <summary>
        /// Reverse sorting
        /// </summary>
        private bool _reverse;

        /// <summary>
        /// Initializes a new instance of the <see cref="IssueComparer"/> class.
        /// </summary>
        /// <param name="sortEx">The sort ex.</param>
        /// <param name="ascending">The ascending.</param>
        public IssueComparer(string sortEx,bool ascending) {
          if (!String.IsNullOrEmpty(sortEx))
          {
              _reverse = ascending;      
              _sortColumn = sortEx;
          }
        }

        /// <summary>
        /// Equalses the specified x.
        /// </summary>
        /// <param name="x">The x.</param>
        /// <param name="y">The y.</param>
        /// <returns></returns>
        public bool Equals(Issue x, Issue y) {
          if (x.Id == y.Id) {
            return true;
          }
          else {
            return false;
          }
        }

        /// <summary>
        /// Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
        /// </summary>
        /// <param name="x">The first object to compare.</param>
        /// <param name="y">The second object to compare.</param>
        /// <returns>
        /// Value Condition Less than zero<paramref name="x"/> is less than <paramref name="y"/>.Zero<paramref name="x"/> equals <paramref name="y"/>.Greater than zero<paramref name="x"/> is greater than <paramref name="y"/>.
        /// </returns>
        public int Compare(Issue x, Issue y) {
          int retVal = 0;
          switch (_sortColumn) {

            case "Created":
              retVal = DateTime.Compare(x.DateCreated, y.DateCreated);
              break;
            case "LastUpdate":
              retVal = DateTime.Compare(x.LastUpdate, y.LastUpdate);
              break;
            case "Category":
              retVal = (int)(x.CategoryId - y.CategoryId);
              break;
            case "Description":
              retVal = String.Compare(x.Description, y.Description, StringComparison.InvariantCultureIgnoreCase);
              break;
            case "Creator":
              retVal = String.Compare(x.CreatorUserName, y.CreatorUserName, StringComparison.InvariantCultureIgnoreCase);
              break;
            case "Owner":
              retVal = String.Compare(x.OwnerUserName, y.OwnerUserName, StringComparison.InvariantCultureIgnoreCase);
              break;
            case "Assigned":
              retVal = String.Compare(x.AssignedUserName, y.AssignedUserName, StringComparison.InvariantCultureIgnoreCase);
              break;
            case "LastUpdateUser":
              retVal = String.Compare(x.LastUpdateUserName, y.LastUpdateUserName , StringComparison.InvariantCultureIgnoreCase);
              break;
            case "IssueType":
              retVal = (int)(x.IssueTypeId - y.IssueTypeId);
              break;
            case "Milestone":
              retVal = (int)(x.MilestoneId - y.MilestoneId);
              break;
            case "Status":
              retVal = (int)(x.StatusId- y.StatusId);
              break;
            case "Priority":
              retVal = (int)(x.PriorityId - y.PriorityId);
              break;
            case "TimeLogged":
              retVal = (int)(x.TimeLogged - y.TimeLogged);
              break;
            case "Title":
              retVal = String.Compare(x.Title, y.Title, StringComparison.InvariantCultureIgnoreCase);
              break;
            case "Estimation":
              retVal = (int)(x.Estimation - y.Estimation);
              break;
            case "Id":
              retVal = (x.Id - y.Id);
              break;
            case "Progress":
              retVal = (x.Progress - y.Progress);
              break;
            case "Resolution":
              retVal = (x.ResolutionId - y.ResolutionId);
              break;
          }
          return (retVal * (_reverse ? -1 : 1));
        }

        /// <summary>
        /// Gets the hash code.
        /// </summary>
        /// <param name="obj">The obj.</param>
        /// <returns></returns>
        public int GetHashCode(Issue obj) {
          // TODO: Implement this, but it's not necessary for sorting
          return 0;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -