using iWareCommon.Common.Service; using iWareCommon.Utils; using iWareDataCore.ORM; using iWareDataCore.Properties; using iWareDataCore.RBAC.Dao; using iWareDataCore.RBAC.Entity; using System; using System.Collections.Generic; using System.Data.Entity.Validation; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareDataCore.RBAC.Service { public class MacUserService : CommonService { private static object Lock = new object(); private MacUserService() : base(MacUserDao.GetInstance()) { } private static MacUserService Instance = null; /// /// 获取单例的方法 /// /// 角色服务的单例实体 public static MacUserService GetInstance() { if (Instance == null) { lock (Lock) { if (Instance == null) { Instance = new MacUserService(); } } } return Instance; } public override int Delete(int id, out string msg) { Delete(new List { id }, out msg); return string.IsNullOrEmpty(msg) ? id : -1; } public override int Delete(List ids, out string msg) { msg = ""; using (var dbModel = new DbModelCore()) { try { var roleUsers = dbModel.RBACMacAuths.Where(x => ids.Contains(x.macuserid)).ToList(); foreach (var roleUser in roleUsers) { dbModel.RBACMacAuths.Remove(roleUser); } var ones = dbModel.RBACMacUsers.Where(x => ids.Contains(x.id)).ToList(); foreach (var one in ones) { dbModel.RBACMacUsers.Remove(one); } dbModel.SaveChanges(); return ids.Count; } catch (DbEntityValidationException ex) { var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage); msg = string.Join(", ", errs); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Delete", msg); return 0; } catch (Exception ex) { msg = ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Delete", ex.Message); return 0; } } } } }