public static ZuzhiChengyuan Chuangjian(int chengyuanId, string chengyuanMingcheng, ChengyuanLeixing chengyuanLeixing) { ZuzhiChengyuan chengyuan = null; if (chengyuanLeixing == ChengyuanLeixing.Yonghuzu) { chengyuan = new Yonghuzu(chengyuanId, chengyuanMingcheng); } else if (chengyuanLeixing == ChengyuanLeixing.Bumen) { chengyuan = new Bumen(chengyuanId, chengyuanMingcheng); } else { throw new ArgumentException("找不到成员类型:" + (int)chengyuanLeixing); } return chengyuan; }
public void TianjiaQuanxian(int chengyuanId, string chengyuanMingcheng, ChengyuanLeixing chengyuanLeixing, QuanxianZhi quanxianZhi) { lock (_lock) { if (_quanxianList.Any(x => x.Chengyuan.Id == chengyuanId && x.Chengyuan.Leixing == chengyuanLeixing)) { throw new ChengyuanQuanxianChongfuException(); } var model = new QuanxianDataModel(); model.ChengyuanId = chengyuanId; model.ChengyuanLeixing = (int) chengyuanLeixing; model.ChengyuanMingcheng = chengyuanMingcheng; model.Mulu = Id; model.Zhi = (int) quanxianZhi; model.Id = (int) NHibernateHelper.CurrentSession.Save(model); var quanxian = new Quanxian(model.Id, quanxianZhi, ZuzhiChengyuanHelper.Chuangjian(chengyuanId, chengyuanMingcheng, chengyuanLeixing)); quanxian.ShanchuHou += Quanxian_ShanchuHou; List<Quanxian> quanxianList = _quanxianList.ToList(); quanxianList.Add(quanxian); _quanxianList = quanxianList; } }