📄 category.cs
字号:
using System;
using System.Collections.Generic;
//Category类引用了DataAccessLayer中的类进行数据访问操作
using ASPNET.StarterKit.DataAccessLayer;
namespace ASPNET.StarterKit.BusinessLogicLayer {
/// <summary>
/// 表示项目中的项目分类实体
/// </summary>
public class Category {
/***静态字段 ***/
//-------------------------------------------------------------------------
private decimal _ActualDuration;
private string _Abbreviation;
private int _Id;
private decimal _EstimateDuration;
private string _Name;
private int _ProjectId;
/*** 构造函数 ***/
//-------------------------------------------------------------------------
//根据指定的分类名称、项目编号构造Category类
public Category(string name, int projectId)
: this(string.Empty, DefaultValues.GetDurationMinValue(), DefaultValues.GetCategoryIdMinValue(), DefaultValues.GetDurationMinValue(), name, projectId) {
}
//根据指定的分类缩略词、预估时长、分类名称、项目编号构造Category类
public Category(string abbreviation, decimal estimateDuration, string name, int projectId)
: this(abbreviation, DefaultValues.GetDurationMinValue(), DefaultValues.GetCategoryIdMinValue(), estimateDuration, name, projectId) {
}
//根据指定的分类缩略词、实际时长、分类ID、预估时长、分类名称、项目编号构造Category类
public Category(string abbreviation, decimal actualDuration, int id, decimal estimateDuration, string name, int projectId) {
if (String.IsNullOrEmpty(name))
throw (new NullReferenceException("name"));
if (projectId <= DefaultValues.GetProjectIdMinValue())
throw (new ArgumentOutOfRangeException("projectId"));
_Abbreviation = abbreviation;
_ActualDuration = actualDuration;
_Id = id;
_EstimateDuration = estimateDuration;
_Name = name;
_ProjectId = projectId;
}
/*** 属性 ***/
//-------------------------------------------------------------------------
//项目分类时际时长。
public decimal ActualDuration {
get { return _ActualDuration; }
}
//项目分类缩写词
public string Abbreviation {
get {
if (String.IsNullOrEmpty(_Abbreviation))
return string.Empty;
else
return _Abbreviation;
}
set { _Abbreviation = value; }
}
//项目分类ID号
public int Id {
get { return _Id; }
}
//项目分类预估时间
public decimal EstimateDuration {
get { return _EstimateDuration; }
set { _EstimateDuration = value; }
}
//项目分类名称
public string Name {
get {
if (String.IsNullOrEmpty(_Name))
return string.Empty;
else
return _Name;
}
set { _Name = value; }
}
//项目分类所属的项目ID
public int ProjectId {
get { return _ProjectId; }
set { _ProjectId = value; }
}
/***方法 ***/
//-------------------------------------------------------------------------
/// <summary>
/// 删除项目分类
/// </summary>
/// <returns></returns>
public bool Delete() {
if (this.Id > DefaultValues.GetCategoryIdMinValue()) {
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return DALLayer.DeleteCategory(this.Id);
}
else
return false;
}
//-------------------------------------------------------------------------
/// <summary>
/// 创建并保存指定的项目项目分类
/// </summary>
/// <returns></returns>
public bool Save() {
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
if (Id <= DefaultValues.GetCategoryIdMinValue()) {
int TempId = DALLayer.CreateNewCategory(this);
if (TempId > DefaultValues.GetCategoryIdMinValue()) {
_Id = TempId;
return true;
}
else
return false;
}
else
return (DALLayer.UpdateCategory(this));
}
/*** 静态方法 ***/
//-------------------------------------------------------------------------
/// <summary>
/// 删除指定分类编号的项目分类。
/// </summary>
/// <param name="id"></param>
/// <param name="original_Id"></param>
/// <returns></returns>
public static bool DeleteCategory(int id, int original_Id) {
if (original_Id <= DefaultValues.GetCategoryIdMinValue())
throw (new ArgumentOutOfRangeException("original_Id"));
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.DeleteCategory(original_Id));
}
//-------------------------------------------------------------------------
/// <summary>
/// 获取所有的项目分类列表
/// </summary>
/// <returns></returns>
public static List<Category> GetAllCategories() {
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetAllCategories());
}
//-------------------------------------------------------------------------
/// <summary>
/// 获取指定分类编号的项目分类
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public static Category GetCategoryByCategoryId(int Id) {
if (Id <= DefaultValues.GetCategoryIdMinValue())
return (null);
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetCategoryByCategoryId(Id));
}
//-------------------------------------------------------------------------
/// <summary>
/// 获取指定项目的项目分类列表
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Category> GetCategoriesByProjectId(int projectId) {
if (projectId <= DefaultValues.GetProjectIdMinValue())
return (new List<Category>());
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetCategoriesByProjectId(projectId));
}
//-------------------------------------------------------------------------
/// <summary>
/// 获取指定项目ID和分类名称的项目分类
/// </summary>
/// <param name="categoryName"></param>
/// <param name="projectId"></param>
/// <returns></returns>
public static Category GetCategoryByCategoryNameandProjectId(string categoryName, int projectId) {
if (projectId <= DefaultValues.GetProjectIdMinValue() || String.IsNullOrEmpty(categoryName))
return (null);
DataAccess DALLayer = DataAccessHelper.GetDataAccess();
return (DALLayer.GetCategoryByCategoryNameandProjectId(categoryName, projectId));
}
//-------------------------------------------------------------------------
/// <summary>
/// 从指定的项目ID返回项目分类列表
/// </summary>
/// <param name="ProjectIds"></param>
/// <returns></returns>
public static List<Category> GetCategoriesByProjectIds(string ProjectIds) {
if (String.IsNullOrEmpty(ProjectIds))
return (new List<Category>());
char[] separator = new char[] { ',' };
string[] substrings = ProjectIds.Split(separator);// ,true);
List<Category> list = new List<Category>();
foreach (string str in substrings) {
int id = Convert.ToInt32(str);
List<Category> tempList = Category.GetCategoriesByProjectId(id);
foreach (Category category in tempList) {
list.Add(category);
}
}
return list;
}
//-------------------------------------------------------------------------
/// <summary>
/// 更新项目列表
/// </summary>
/// <param name="Abbreviation"></param>
/// <param name="original_Id"></param>
/// <param name="EstimateDuration"></param>
/// <param name="Name"></param>
/// <returns></returns>
public static bool UpdateCategory(string Abbreviation, int original_Id, decimal EstimateDuration, string Name/*, int id*/) {
if (String.IsNullOrEmpty(Name))
throw (new NullReferenceException("Name"));
Category updateCategory = Category.GetCategoryByCategoryId(original_Id);
if (updateCategory != null) {
updateCategory.Abbreviation = Abbreviation;
updateCategory.EstimateDuration = EstimateDuration;
updateCategory.Name = Name;
return (updateCategory.Save());
}
else
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -