86 lines
2.4 KiB
C#
86 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using EnVisage.Models;
|
|
|
|
namespace EnVisage.Code.BLL
|
|
{
|
|
public class CreditDepartmentManager : ManagerBase<CreditDepartment, CreditDepartmentModel>
|
|
{
|
|
public CreditDepartmentManager(EnVisageEntities dbContext)
|
|
: base(dbContext)
|
|
{
|
|
}
|
|
protected override CreditDepartment InitInstance()
|
|
{
|
|
return new CreditDepartment { Id = Guid.NewGuid() };
|
|
}
|
|
|
|
protected override CreditDepartment RetrieveReadOnlyById(Guid key)
|
|
{
|
|
return DataTable.AsNoTracking().FirstOrDefault(t => t.Id == key);
|
|
}
|
|
|
|
public override DbSet<CreditDepartment> DataTable
|
|
{
|
|
get
|
|
{
|
|
return DbContext.CreditDepartments;
|
|
}
|
|
}
|
|
|
|
public CreditDepartmentModel LoadCreditDepartmentModel(Guid departmentId)
|
|
{
|
|
if (departmentId == Guid.Empty)
|
|
return null;
|
|
|
|
return CreditDepartmentModelBasicQuery.FirstOrDefault(x => x.Id == departmentId);
|
|
}
|
|
|
|
public List<CreditDepartmentModel> LoadCreditDepartments()
|
|
{
|
|
return CreditDepartmentModelBasicQuery.ToList();
|
|
}
|
|
|
|
public List<CreditDepartmentModel> GetCreditDepartmentsByExpCats(IEnumerable<Guid> expCats)
|
|
{
|
|
if (expCats == null)
|
|
return LoadCreditDepartments();
|
|
|
|
var result = DbContext.CreditDepartments.Include(x => x.ExpenditureCategory)
|
|
.Where(x => x.ExpenditureCategory.Where(e => expCats.Contains(e.Id)).Any())
|
|
.Select(x => new CreditDepartmentModel()
|
|
{
|
|
Id = x.Id,
|
|
Name = x.Name,
|
|
CreditNumber = x.CreditNumber
|
|
}).ToList();
|
|
|
|
return result;
|
|
}
|
|
|
|
#region Private Members
|
|
|
|
private IQueryable<CreditDepartmentModel> CreditDepartmentModelBasicQuery
|
|
{
|
|
get
|
|
{
|
|
var query = DataTable.Include(x => x.ExpenditureCategory).AsNoTracking()
|
|
.Select(x =>
|
|
new CreditDepartmentModel()
|
|
{
|
|
Id = x.Id,
|
|
Name = x.Name,
|
|
CreditNumber = x.CreditNumber,
|
|
ExpenditureCategoryCount = x.ExpenditureCategory.Count
|
|
});
|
|
|
|
return query;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |