/// <summary> /// 修改 /// </summary> /// <param name="entity">业务实体</param> public void ColumnsSave(GuideColumns entity) { Song.Entities.GuideColumns old = this.ColumnsSingle(entity.Gc_ID); if (old.Gc_PID != entity.Gc_PID) { object obj = Gateway.Default.Max <GuideColumns>(GuideColumns._.Gc_Tax, GuideColumns._.Cou_ID == entity.Cou_ID && GuideColumns._.Gc_PID == entity.Gc_PID); entity.Gc_Tax = obj is int?(int)obj + 1 : 0; } using (DbTrans trans = Gateway.Default.BeginTrans()) { try { trans.Save <GuideColumns>(entity); trans.Update <GuideColumns>(new Field[] { Guide._.Gc_Title }, new object[] { entity.Gc_Title, }, GuideColumns._.Gc_ID == entity.Gc_ID); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } finally { trans.Close(); } } }
/// <summary> /// 删除 /// </summary> /// <param name="entity">业务实体</param> public void ColumnsDelete(GuideColumns entity) { Song.Entities.GuideColumns[] cols = GetColumnsChild(entity.Cou_ID, entity.Gc_ID, null); foreach (Song.Entities.GuideColumns cl in cols) { ColumnsDelete(cl); } Gateway.Default.Delete <Guide>(Guide._.Gc_ID == entity.Gc_ID); Gateway.Default.Delete <GuideColumns>(GuideColumns._.Gc_ID == entity.Gc_ID); }
/// <summary> /// 当前对象名称是否重名 /// </summary> /// <param name="entity">业务实体</param> /// <returns></returns> public bool ColumnsIsExist(int couid, int pid, GuideColumns entity) { WhereClip wc = GuideColumns._.Gc_Title == entity.Gc_Title && GuideColumns._.Cou_ID == couid && GuideColumns._.Gc_PID == pid; //如果是一个已经存在的对象 if (entity.Gc_ID == 0) { wc = wc.And(GuideColumns._.Gc_ID == entity.Gc_ID); } GuideColumns mm = Gateway.Default.From <GuideColumns>().Where(wc).ToFirst <GuideColumns>(); return(mm != null); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">业务实体</param> public int ColumnsAdd(GuideColumns entity) { entity.Gc_CrtTime = DateTime.Now; //如果没有排序号,则自动计算 if (entity.Gc_Tax < 1) { object obj = Gateway.Default.Max <GuideColumns>(GuideColumns._.Gc_Tax, GuideColumns._.Cou_ID == entity.Cou_ID && GuideColumns._.Gc_PID == entity.Gc_PID); entity.Gc_Tax = obj is int?(int)obj + 1 : 0; } Song.Entities.Organization org = Business.Do <IOrganization>().OrganCurrent(); if (org != null) { entity.Org_ID = org.Org_ID; entity.Org_Name = org.Org_Name; } return(Gateway.Default.Save <GuideColumns>(entity)); }
/// <summary> /// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// </summary> /// <param name="id"></param> /// <returns>如果已经处于顶端,则返回false;移动成功,返回true</returns> public bool ColumnsRemoveDown(int id) { //当前对象 GuideColumns current = Gateway.Default.From <GuideColumns>().Where(GuideColumns._.Gc_ID == id).ToFirst <GuideColumns>(); int tax = (int)current.Gc_Tax; //下一个对象,即弟弟对象;弟弟不存则直接返回false; GuideColumns next = Gateway.Default.From <GuideColumns>() .Where(GuideColumns._.Gc_Tax > tax && GuideColumns._.Gc_PID == current.Gc_PID && GuideColumns._.Cou_ID == current.Cou_ID) .OrderBy(GuideColumns._.Gc_Tax.Asc).ToFirst <GuideColumns>(); if (next == null) { return(false); } //交换排序号 current.Gc_Tax = next.Gc_Tax; next.Gc_Tax = tax; using (DbTrans tran = Gateway.Default.BeginTrans()) { try { tran.Save <GuideColumns>(current); tran.Save <GuideColumns>(next); tran.Commit(); return(true); } catch { tran.Rollback(); throw; } finally { tran.Close(); } } }
/// <summary> /// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// </summary> /// <param name="id"></param> /// <returns>如果已经处于顶端,则返回false;移动成功,返回true</returns> public bool ColumnsRemoveUp(int id) { //当前对象 GuideColumns current = Gateway.Default.From <GuideColumns>().Where(GuideColumns._.Gc_ID == id).ToFirst <GuideColumns>(); int tax = (int)current.Gc_Tax; //上一个对象,即兄长对象;兄长不存则直接返回false; GuideColumns prev = Gateway.Default.From <GuideColumns>() .Where(GuideColumns._.Gc_Tax < tax && GuideColumns._.Gc_PID == current.Gc_PID && GuideColumns._.Cou_ID == current.Cou_ID) .OrderBy(GuideColumns._.Gc_Tax.Desc).ToFirst <GuideColumns>(); if (prev == null) { return(false); } //交换排序号 current.Gc_Tax = prev.Gc_Tax; prev.Gc_Tax = tax; using (DbTrans tran = Gateway.Default.BeginTrans()) { try { tran.Save <GuideColumns>(current); tran.Save <GuideColumns>(prev); tran.Commit(); return(true); } catch { tran.Rollback(); throw; } finally { tran.Close(); } } }