using Cksoft.Data; using DllEapEntity; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DllEapDal { public class ProjectandprogramDal { private IDatabase CurrDb = null; private string commonFilter = null; public ProjectandprogramDal(IDatabase db) { CurrDb = db; } public ProjectandprogramDal(IDatabase db, string userCode) { CurrDb = db; var smDal = new StaffMachineDal(CurrDb); string errorinfo = string.Empty; var idFilter = smDal.GetFilter(userCode, ref errorinfo); commonFilter = idFilter; } public int GetCount(string filter) { string errorinfo = string.Empty; //string sql = $"select count(1) from ProgramRule a where 1=1 {filter}"; var entities = CurrDb.FindListForCondition(commonFilter + filter, ref errorinfo); if (entities != null) { return entities.Count(); } return 0; } public IEnumerable Get(int start, int length, string order, string sort, string filter, string errorinfo) { var pros = CurrDb.FindListForCondition($" {commonFilter + filter} order by {sort} {order} limit {start - 1},{length}", ref errorinfo); return pros; } public Projectandprogram Get(int id) { var pro = CurrDb.FindEntityFor(id); return pro; } public int Add(Projectandprogram pro, string userCode, ref string errorinfo) { var entities = CurrDb.FindListForCondition($" and a.Recipe='{pro.Recipe}' ", ref errorinfo); if (entities != null && entities.Count() > 0) { errorinfo = "程序已存在,请确认"; return -1; } pro.RecCode = userCode; pro.ModCode = userCode; pro.RecTime = DateTime.Now; pro.ModTime = DateTime.Now; string sql = $"insert into Projectandprogram(Recipe,Project,RecCode,RecTime," + $"ModCode,ModTime) values('{pro.Recipe}','{pro.Project}','{pro.RecCode}'," + $"'{pro.RecTime.ToString("yyyy-MM-dd")}','{pro.ModCode}','{pro.ModTime.ToString("yyyy-MM-dd")}');"; sql += "select @@identity;"; var id = Convert.ToInt32(CurrDb.FindList(sql).FirstOrDefault() ?? "-1"); return id; } public int Update(Projectandprogram role, string userCode, ref string errorinfo) { var entities = CurrDb.FindListForCondition($" and a.Recipe='{role.Recipe}' " + $"and a.ID<>{role.Id}", ref errorinfo); if (entities != null && entities.Count() > 0) { errorinfo = "已存在相同的程序,请确认"; return -1; } if (CurrDb.UpdateFor(role, userCode) < 0) { return -1; } return role.Id; } public int Delete(int id, ref string msg) { if (CurrDb.DeleteFor(id) < 0) { msg = "删除失败"; return -1; } msg = string.Empty; return 1; } } }