public static void SaveUserRole(string userID, string[] roles) { using (var db = SysContext.GetCurrent()) { var oldItems = db.UserRoles.Where(r => r.UserID.Equals(userID)); var adds = roles.Where(w => oldItems.FirstOrDefault(t => t.RoleID.Equals(w)) == null).ToList(); var removes = oldItems.Where(w => roles.FirstOrDefault(t => t.Equals(w.RoleID)) == null).ToList(); foreach (var t in removes) { db.UserRoles.Remove(t); } foreach (var t in adds) { var newItem = new UserRole { UserID = userID, RoleID = t }; newItem.ResetCreated(); db.UserRoles.Add(newItem); } db.SaveChanges(); } }
public static string Messages()//逐条显示当前用户消息 { string id = SysService.GetCurrentUser().UserID; //string str="server='10.1.15.235';database='PA_Sys';uid='pguser';pwd='sa123456'"; //SqlConnection con = new SqlConnection(str); //con.Open(); //string strsql = "select * FROM [dbo].[hr_fl_MessageRemind]('1'," + "'" + id + "'" + ")"; //SqlCommand cmd = new SqlCommand(strsql, con); //SqlDataReader rd = cmd.ExecuteReader(); using (var db = new SysContext()) { db.Database.Connection.Open(); var cmd = db.Database.Connection.CreateCommand(); cmd.CommandText = "select * FROM [dbo].[hr_fl_MessageRemind]('1'," + "'" + id + "'" + ")"; List <UserMessage> ls = new List <UserMessage>(); using (var reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess)) { while (reader.Read()) { UserMessage um = new UserMessage(); um.MsgTitle = reader["MsgTitle"].ToString(); um.Count = Convert.ToInt32(reader["Count"]); um.MsgUrl = reader["MsgUrl"].ToString(); ls.Add(um); } reader.Close(); } db.Database.Connection.Close(); return(ls.ToJson()); } }
//如果同一个页面的某个功能,A角色有权限,B角色没有权限,但某用户A、B角色都有,那该用户应该有权 public static List <RolePageModel> GetUserPages(string userID) { using (var db = SysContext.GetCurrent()) { var items = (from ur in db.UserRoles join rp in db.RolePages on ur.RoleID equals rp.RoleID where ur.UserID.Equals(userID) select new RolePageModel { RoleID = rp.RoleID, PageID = rp.PageID, ActionValue = rp.ActionValue }).ToList(); db.RolePages.Where(rp => rp.RoleID.Equals(userID)). Select((rp) => new RolePageModel { RoleID = rp.RoleID, PageID = rp.PageID, ActionValue = rp.ActionValue }).ToList().AddToCollection(items); var groups = items.GroupBy(g => g.PageID).Select(g => new RolePageModel { PageID = g.Key, ActionValue = g.Count() > 1 ? g.Select(s => s.ActionValue).Aggregate((v1, v2) => v1 | v2) : g.First().ActionValue, DataFilter = g.Select(r => r.DataFilter).AggregateSplitStrings(",") }).ToList(); return(groups); } }
public static IEnumerable <MailServer> GetIndex() { using (var db = SysContext.GetCurrent()) { return(db.MailServers.ToList()); } }
public static MailServer GetItem(string idOrName) { using (var db = SysContext.GetCurrent()) { return(db.MailServers.FirstOrDefault(m => m.ServerID == idOrName || m.ServerName == idOrName)); } }
public static RoleModel CreateRole(string name, string description = "") { using (var db = SysContext.GetCurrent()) { var oldItem = db.Roles.FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (oldItem != null) { throw new Exception("角色已存在"); } var newID = db.GetNextRoleID(); Role role = new Role { RoleID = newID, Name = name, Description = description }; role.ResetCreated(); db.Roles.Add(role); var user = SysService.GetCurrentUser(); if (user.UserID != "U00001") { UserRole ur = new UserRole { UserID = user.UserID, RoleID = role.RoleID }; ur.ResetCreated(); db.UserRoles.Add(ur); } db.SaveChanges(); return(new RoleModel { RoleID = newID, Name = name, Description = description }); } }
public static void DeleteRole(string roleID) { using (var db = SysContext.GetCurrent()) { var oldItem = db.Roles.FirstOrDefault(r => r.RoleID.Equals(roleID, StringComparison.OrdinalIgnoreCase)); if (oldItem == null) { throw new Exception("角色不存在"); } var count = db.UserRoles.Count(r => r.RoleID.Equals(roleID, StringComparison.OrdinalIgnoreCase)); if (count > 0) { throw new Exception("有用户关联此角色,删除取消."); } foreach (var item in db.RolePages.Where(r => r.RoleID.Equals(roleID)).ToList()) { db.RolePages.Remove(item); db.SaveChanges(); } oldItem.ResetUpdated(); db.Roles.Remove(oldItem); db.SaveChanges(); } }
public static string[] GetUserRoles(string userID) { using (var db = SysContext.GetCurrent()) { return(db.UserRoles.Where(r => r.UserID.Equals(userID)).Select(r => r.RoleID).ToArray()); } }
internal static User GetUser(string userName) { using (var db = SysContext.GetCurrent()) { return(db.Users.FirstOrDefault(u => (u.UserID.Equals(userName) || u.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase) && u.IsValid.Equals(true)))); } }
public static List <UserModel> GetUsers(string nameOrEmail, bool isValid, string email, string fullname) { using (var db = SysContext.GetCurrent()) { Func <User, bool> nameWhere = (u) => true; var query = db.Users.Where(u => u.IsValid == isValid && u.UserName != "admin").ToList(); var user = SysService.GetCurrentUser(); if (user != null && user.UserID != "U00001") { var companyfilter = ((from u in db.Users join sr in db.UserRoles on u.UserID equals sr.UserID join rp in db.RolePages on sr.RoleID equals rp.RoleID where (u.UserID.Equals(user.UserID) && rp.PageID.Equals("P01001")) select rp.DataFilter.ToString()).Distinct()).ToList(); var deptfilter = ((from u in db.Users join sr in db.UserRoles on u.UserID equals sr.UserID join rp in db.RolePages on sr.RoleID equals rp.RoleID where (u.UserID.Equals(user.UserID) && rp.PageID.Equals("P01002")) select rp.DataFilter.ToString()).Distinct()).ToList(); List <string> eu = new List <string>(); eu = (from e in db.hr_Employees where (deptfilter.Contains(e.DeptID) || deptfilter.Contains(e.CompanyID)) select e.UserID).Distinct().ToList(); if (eu.Count != 0) { query = query.Where(u => eu.Contains(u.UserID)).ToList(); } } if (!string.IsNullOrEmpty(nameOrEmail) || !string.IsNullOrEmpty(email) || !string.IsNullOrEmpty(fullname)) { query = string.IsNullOrEmpty(nameOrEmail) ? query : query.Where(u => u.UserName.Contains(nameOrEmail)).ToList(); query = string.IsNullOrEmpty(email) ? query : query.Where(u => u.Email.Contains(email)).ToList(); query = string.IsNullOrEmpty(fullname) ? query : query.Where(u => u.FullName.Contains(fullname)).ToList(); } // UserDatagrid ud = new UserDatagrid(); // var demo = ""; return(query .Select((u) => new UserModel { UserID = u.UserID, UserName = u.UserName, FullName = u.FullName, Email = u.Email, Roles = (from r in db.Roles join s in db.UserRoles on r.RoleID equals s.RoleID where s.UserID.Equals(u.UserID) select r.Name.ToString()).ToArray(), Company = (from em in db.hr_Employees join com in db.hr_Companies on em.CompanyID equals com.CompanyID where em.UserID.Equals(u.UserID) select com.Name).FirstOrDefault(), Dept = (from em in db.hr_Employees join dept in db.hr_Depts on em.DeptID equals dept.DeptID where em.UserID.Equals(u.UserID) select dept.Name.ToString()).FirstOrDefault(), Job = (from em in db.hr_Employees join job in db.hr_Jobs on em.JobID equals job.JobID where em.UserID.Equals(u.UserID) select job.Name.ToString()).FirstOrDefault(), IsValid = u.IsValid }).ToList()); } }
public static List <RoleModel> GetRoles() { using (var db = SysContext.GetCurrent()) { return(db.Roles.Select(r => new RoleModel { RoleID = r.RoleID, Name = r.Name, Description = r.Description }).ToList()); } }
public static int MessagesCount()//消息总数 { string id = SysService.GetCurrentUser().UserID; using (var db = new SysContext()) { db.Database.Connection.Open(); var cmd = db.Database.Connection.CreateCommand(); cmd.CommandText = "select isnull(Counts,0) from (select sum(Count)as Counts FROM [dbo].[hr_fl_MessageRemind]('1'," + "'" + id + "'" + "))a"; var a = cmd.ExecuteScalar(); int mc = System.Int32.Parse(a.ToString()); return(mc); } }
public static RoleModel GetRole(string roleID) { using (var db = SysContext.GetCurrent()) { return(db.Roles.Where(r => r.RoleID.Equals(roleID, StringComparison.OrdinalIgnoreCase)) .Select(r => new RoleModel { RoleID = r.RoleID, Name = r.Name, Description = r.Description }).FirstOrDefault()); } }
public static void UpdateRole(string roleID, string name, string description) { using (var db = SysContext.GetCurrent()) { var oldItem = db.Roles.FirstOrDefault(r => r.RoleID.Equals(roleID, StringComparison.OrdinalIgnoreCase)); if (oldItem == null) { throw new Exception("角色不存在"); } oldItem.Name = name; oldItem.Description = description; oldItem.ResetUpdated(); db.SaveChanges(); } }
public static void ResetPassword(string userID) { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var oldUser = db.Users.FirstOrDefault(u => u.UserID.Equals(userID)); if (oldUser != null) { oldUser.Password = Sys.SystemConsts.DefaultPassword.GetMd5_32().ToString(); oldUser.ResetUpdated(); db.SaveChanges(); } } } }
public static void DeleteUser(string userID) { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var oldUser = db.Users.FirstOrDefault(u => u.UserID.Equals(userID)); if (oldUser != null) { oldUser.IsValid = false; oldUser.ResetUpdated(); db.SaveChanges(); } } } }
public static void DeleteUsers(string userKeys) { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var userIDs = userKeys.Split(','); var oldUsers = db.Users.Where(u => userIDs.Contains(u.UserID)); foreach (var oldUser in oldUsers) { oldUser.IsValid = false; oldUser.ResetUpdated(); } db.SaveChanges(); } } }
public static bool EmailReset(string uid)//邮件链接重置密码 { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var oldUser = db.Users.FirstOrDefault(u => u.UserID.Equals(uid)); if (oldUser != null) { oldUser.Password = Sys.SystemConsts.DefaultPassword.GetMd5_32(); oldUser.ResetUpdated(); db.SaveChanges(); } } } return(true); }
public static void AddLog(string actionName, string url, string description = "", string userName = "") { using (var db = SysContext.GetCurrent()) { var user = SysService.GetCurrentUser(); var newLog = new UserLog { ActionName = actionName, Url = url, Description = description, ClientIP = HttpContext.Current.Request.GetClientIPAddress(), UserName = user == null ? userName : user.FullName }; newLog.ResetCreated(); db.UserLogs.Add(newLog); db.SaveChanges(); } }
public static string EmailId(string email)//根据用户填写的email获取用户id { using (var db = new SysContext()) { db.Database.Connection.Open(); var cmd = db.Database.Connection.CreateCommand(); cmd.CommandText = "select UserID from sys_User where Email ='" + email + "'"; var u = cmd.ExecuteScalar(); if (u != null) { string uid = u.ToString(); return(uid); } else { return(null); }; } }
public object GetSerialCode(string parameter) { if (!parameter.IsNullOrEmpty()) { string[] paras = parameter.Trim().Split(','); if (paras.Length >= 3) { var category = paras[0]; var prefix = GetPrefix(paras[1]); var length = Convert.ToInt32(paras[2]); using (var db = SysContext.GetCurrent()) { return(db.GetNextSerialCode(category, prefix, length)); } } } return(""); }
public static IEnumerable <RolePageModel> GetRolePages(string roleID) { using (var db = SysContext.GetCurrent()) { return(db.RolePages.Where(w => w.RoleID.Equals(roleID, StringComparison.OrdinalIgnoreCase)).Select(w => new RolePageModel { RoleID = roleID, PageID = w.PageID, DataFilter = w.DataFilter, ActionValue = w.ActionValue }).ToList());; //return count.Select(w => new RolePageModel //{ // RoleID=roleID, // PageID=w.PageID, // DataFilter=w.DataFilter, // ActionValue=w.ActionValue //}).ToList(); //RolePage rolepage = list; } }
public static bool ChangePassword(string oldpassword, string password) { using (var db = SysContext.GetCurrent()) { string id = SysService.GetCurrentUser().UserID; var oldUser = db.Users.FirstOrDefault(u => u.UserID.Equals(id)); var op = oldpassword.GetMd5_32(); var np = password.GetMd5_32(); if (oldUser != null && oldUser.Password == op) { oldUser.Password = np; oldUser.ResetUpdated(); db.SaveChanges(); return(true); } else { return(false); } } }
public static List <RoleModel> GetRoles(string searchName, string description) { using (var db = SysContext.GetCurrent()) { var user = SysService.GetCurrentUser(); if (user.UserID == "U00001") { return(GetRoles()); } else { return((from r in db.Roles join ur in db.UserRoles on r.RoleID equals ur.RoleID where ur.UserID.Equals(user.UserID) select r) .Select(r => new RoleModel { RoleID = r.RoleID, Name = r.Name, Description = r.Description }).ToList()); } } }
public static UserModel GetUserModel(string userIDorName) { using (var db = SysContext.GetCurrent()) { var query = db.Users.Where(u => u.UserID.Equals(userIDorName) || u.UserName.Equals(userIDorName, StringComparison.OrdinalIgnoreCase)); // var user = db.Users.FirstOrDefault(u => (u.UserID.Equals(userIDorName) // || u.UserName.Equals(userIDorName, StringComparison.OrdinalIgnoreCase))); var user = query.Select((u) => new UserModel { UserID = u.UserID, UserName = u.UserName, FullName = u.FullName, Email = u.Email, IsValid = u.IsValid }).ToList().FirstOrDefault(); if (userIDorName.IndexOf("U") != -1) { user.Roles = (from r in db.Roles join s in db.UserRoles on r.RoleID equals s.RoleID where s.UserID.Equals(userIDorName) select r.Name).ToArray(); } return(user); } }
public static UserModel CreateUser(string userName, string email, string fullName, string password) { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var oldUser = db.Users.FirstOrDefault(u => u.IsValid && (u.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase) || u.Email.Equals(email, StringComparison.OrdinalIgnoreCase))); if (oldUser != null) { throw new Exception("重复的用户名或邮件"); } var userID = db.GetNextUserID(); User newUser = new User { UserID = userID, Email = email, UserName = userName, FullName = fullName, IsValid = true, Password = password.GetMd5_32() }; newUser.ResetCreated(); db.Users.Add(newUser); db.SaveChanges(); return(new UserModel { UserID = newUser.UserID, UserName = newUser.UserName, Email = newUser.Email, IsValid = newUser.IsValid, FullName = newUser.FullName }); } } }
public static UserModel UpdateUser(UserModel user) { lock (_UserLock) { using (var db = SysContext.GetCurrent()) { var oldUser = db.Users.FirstOrDefault(u => u.UserID.Equals(user.UserID)); if (oldUser == null) { throw new Exception("用户不存在"); } oldUser.UserName = user.UserName; oldUser.FullName = user.FullName; oldUser.Email = user.Email; oldUser.ResetUpdated(); db.SaveChanges(); return(user); } } }
public static string GetNextSerialCode(this SysContext db, string typeCode, string prefix, int fixedLength) { lock (_CodeLock) { string code = string.Empty; var codeItem = db.SerialCodes.FirstOrDefault((s) => s.CodeType == typeCode && s.Prefix == prefix); int index = 0; if (codeItem == null) { //创建 SerialCode newItem = new SerialCode { CodeType = typeCode, Prefix = prefix, NextIndex = 2, FixedLength = fixedLength }; newItem.ResetCreated(); db.SerialCodes.Add(newItem); index = 1; } else { index = codeItem.NextIndex; codeItem.NextIndex += 1; codeItem.ResetUpdated(); } db.SaveChanges(); int nIndex = index.ToString().Length; int zeroCount = fixedLength - nIndex - prefix.Length; return(prefix + (zeroCount > 0 ? ZeroStrings.Substring(0, zeroCount) : string.Empty) + index.ToString()); } }
public ActionResult ImportDept(FormCollection form) { HttpRequest request = System.Web.HttpContext.Current.Request; HttpFileCollection FileCollect = request.Files; DataSet ds = new DataSet(); StringBuilder skipIndex = new StringBuilder(); StringBuilder rightIndex = new StringBuilder(); StringBuilder errorIndex = new StringBuilder(); ResultData res = new ResultData(); if (FileCollect.Count > 0) { foreach (string str in FileCollect) { ds = ReadExcel(str, ds, FileCollect); #region 判断excel表中的数据是否存在 string[] cols = new string[] { "事业部", "公司", "部门", "子部门", "负责人", "排序", "备注" }; for (int j = 0; j < cols.Length; j++) { if (!ds.Tables[0].Columns.Contains(cols[j])) { res.ErrorMessage = cols[j] + "列不存在!"; res.HasError = false; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } } #endregion int count = ds.Tables[0].Rows.Count; using (var db = new SysContext()) { for (int i = 0; i < count; i++) { #region 预处理 string buname, companyname, managerName, deptName, parentName, managerID, parentID, deptid, companyid; int sort = i + 1; buname = ds.Tables[0].Rows[i]["事业部"].ToString().Trim(); companyname = ds.Tables[0].Rows[i]["公司"].ToString().Trim(); managerName = ds.Tables[0].Rows[i]["负责人"].ToString().Trim(); #region 获取负责人id using (var dbe = new Panasia.Core.Sys.SysContext()) { var manager = (from ma in dbe.hr_Employees where ma.Name.Equals(managerName) && ma.IsActive select ma.EmployeeID.ToString()).ToList(); managerID = manager.Count > 0 ? manager[0] : ""; } #endregion var company = (from com in db.hr_Companies where com.Name.Equals(companyname) && com.IsActive select com.CompanyID.ToString()).ToList(); var buid = (from bu in db.hr_BUs where bu.Name.Equals(buname) && bu.IsActive select bu.BUID.ToString()).ToList(); #endregion if (company.Count == 0) { res.ErrorMessage = companyname + "不存在!"; res.HasError = false; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } else { #region 判断部门存在则跳过 companyid = company[0]; var departments = new List <string>(); if (ds.Tables[0].Rows[i]["子部门"].ToString().Trim() == "") { deptName = ds.Tables[0].Rows[i]["部门"].ToString().Trim(); departments = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.CompanyID.Equals(companyid) && dept.IsActive select dept.DeptID.ToString()).ToList(); } else { deptName = ds.Tables[0].Rows[i]["子部门"].ToString().Trim(); parentName = ds.Tables[0].Rows[i]["部门"].ToString().Trim(); var parentid = (from dept1 in db.hr_Depts where dept1.Name.Equals(parentName) && dept1.IsActive select dept1.ParentID.ToString()).ToList().FirstOrDefault(); departments = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.ParentID.Equals(parentid) && dept.IsActive select dept.DeptID).ToList(); } if (departments.Count > 0) { skipIndex.Append((i + 1).ToString() + ","); } #endregion else { #region 获取部门ID try { db.Database.Connection.Open(); var cmd = db.Database.Connection.CreateCommand(); cmd.CommandText = "declare @demo varchar(max) exec dbo.sp_CreateSerialCode 'Depart','D',6,@demo output select @demo"; deptid = cmd.ExecuteScalar().ToString(); db.Database.Connection.Close(); } catch (Exception ex) { res.ErrorMessage = "数据库操作出错"; res.HasError = false; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } #endregion if (ds.Tables[0].Rows[i]["子部门"].ToString().Trim() == "") { #region 新建没有父节点的部门 try { hr_Department department = new hr_Department { DeptID = deptid, Name = ds.Tables[0].Rows[i]["部门"].ToString().Trim(), ManagerID = managerID, ParentID = "", CompanyID = company[0], BUID = buid.Count > 0?buid[0]:"", Description = ds.Tables[0].Rows[i]["备注"].ToString().Trim(), IsActive = true, SortID = sort }; department.ResetCreated(); db.hr_Depts.Add(department); db.SaveChanges(); rightIndex.Append((i + 1).ToString() + ','); } catch (Exception ex) { errorIndex.Append((i + 1).ToString() + ','); res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex; res.HasError = true; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } #endregion } else { #region 新建有父节点的部门 try { deptName = ds.Tables[0].Rows[i]["部门"].ToString().Trim(); var parentid = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.IsActive && dept.CompanyID.Equals(companyid) select dept.DeptID.ToString()).ToList(); hr_Department department = new hr_Department { DeptID = deptid, Name = ds.Tables[0].Rows[i]["子部门"].ToString().Trim(), ManagerID = managerID, ParentID = parentid[0], CompanyID = companyid, BUID = buid.Count > 0?buid[0]:"", Description = ds.Tables[0].Rows[i]["备注"].ToString().Trim(), IsActive = true, SortID = sort }; department.ResetCreated(); db.hr_Depts.Add(department); db.SaveChanges(); rightIndex.Append((i + 1).ToString() + ','); } catch (Exception ex) { errorIndex.Append((i + 1).ToString() + ','); res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex; res.HasError = true; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } #endregion } } } } } res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex; res.HasError = true; return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); } } return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet)); }
public static void UpdateRolePages(string roleID, IEnumerable <RolePage> items) { using (var db = SysContext.GetCurrent()) { var oldItems = db.RolePages.Where(w => w.RoleID.Equals(roleID)).ToList(); var adds = items.Where(w => oldItems.FirstOrDefault(t => t.PageID.Equals(w.PageID)) == null).ToList(); var removes = oldItems.Where(w => items.FirstOrDefault(t => t.PageID.Equals(w.PageID)) == null).ToList(); var updates = oldItems.Where(w => items.FirstOrDefault(t => t.PageID.Equals(w.PageID)) != null).ToList(); foreach (var t in removes) { db.RolePages.Remove(t); } foreach (var t in updates) { var newItem = items.FirstOrDefault(w => t.PageID.Equals(w.PageID)); var dataFilter = newItem.DataFilter; if (newItem.DataFilter == null) { dataFilter = ""; } if (newItem == null) { continue; } t.DataFilter = dataFilter; t.ActionValue = newItem.ActionValue; t.ResetUpdated(); } foreach (var t in adds) { var dataFilter = t.DataFilter; if (t.DataFilter == null) { dataFilter = ""; } var newItem = new RolePage { RoleID = roleID, PageID = t.PageID, ActionValue = t.ActionValue, DataFilter = dataFilter }; newItem.ResetCreated(); db.RolePages.Add(newItem); } //如果缓存了本角色相关的用户,则重置缓存 var users = db.UserRoles.Where(r => r.RoleID.Equals(roleID)).Select(r => r.UserID).ToArray(); if (users.Length > 0) { lock (_UserPages) { users.ForEach(u => { _UserPages.Remove(u); }); } } db.SaveChanges(); } }