public CommandResult <Staff> Add(OperatorAddResponseModel paramsModel) { var result = new CommandResult <Staff>(); if (Exist(a => a.Id == paramsModel.StaffId && a.LogonName != null && a.LogonName != "")) { result.Message = "该员工已经是操作员"; } else if (Exist(a => a.LogonName == paramsModel.LogonName)) { result.Message = "系统中已存在该登陆名称"; } else { using (var db = new FrameContext()) { using (var scope = new TransactionScope()) { paramsModel.RoleIdes.ForEach(roleId => { if (!_staffRoleRelationshipsService.Exist(db, a => a.RoleId == roleId && a.StaffId == paramsModel.StaffId)) { var relationship = new StaffRoleRelationships { RoleId = roleId, StaffId = paramsModel.StaffId }; _staffRoleRelationshipsService.Add(db, relationship); } }); var entity = BaseService.Find(db, a => a.Id == paramsModel.StaffId); entity.LogonName = paramsModel.LogonName; entity.LogonPwd = paramsModel.LogonPwd; if (!BaseService.Update(db, entity)) { result.Message = "未知原因"; } else { result.ResultStatus = ResultStatus.Success; result.Message = "操作员信息添加成功"; result.Data = entity; } scope.Complete(); } } } return(result); }
public CommandResult <Staff> Edit(int staffId, OperatorEditResponseModel paramsModel) { var result = new CommandResult <Staff>(); if (!Exist(a => a.Id == staffId)) { result.Message = "操作员信息在系统中已不存在"; } else if (Exist(a => a.Id == staffId && (a.LogonName == null || a.LogonName == ""))) { result.Message = "该员工已不是操作员"; } if (Exist(a => a.Id != staffId && a.LogonName == paramsModel.LogonName)) { result.Message = "系统中已存在该登陆名称"; } else { using (var db = new FrameContext()) { using (var scope = new TransactionScope()) { var oldRelationships = _staffRoleRelationshipsService.FindList(db, a => a.StaffId == staffId).ToList(); var deletes = oldRelationships.Where(a => paramsModel.RoleIdes.All(roleId => roleId != a.RoleId)).ToList(); var addes = paramsModel.RoleIdes.Where(a => oldRelationships.All(z => z.RoleId != a)).ToList(); deletes.ForEach(relationship => { _staffRoleRelationshipsService.Delete(db, relationship); }); addes.ForEach(roleId => { var model = new StaffRoleRelationships { RoleId = roleId, StaffId = staffId }; _staffRoleRelationshipsService.Add(db, model); }); var entity = BaseService.Find(db, a => a.Id == staffId); entity.LogonName = paramsModel.LogonName; entity.LogonPwd = paramsModel.LogonPwd; if (!BaseService.Update(db, entity)) { result.Message = "未知原因"; } else { result.ResultStatus = ResultStatus.Success; result.Message = "操作员信息修改成功"; result.Data = entity; } scope.Complete(); } } } return(result); }