public ActionResult Permissions(_5Bites.Models.Employee_.Permissions.ViewModel m) { if (ModelState.IsValid) { using (var db = new dbEntities()) { var e = db.Employees.Single(e_ => e_.Id == m.Id); e.IsAdmin = m.IsAdmin; e.EmployeeStores.Clear(); e.EmployeeLocations.Clear(); db.EmployeeStores.Where(el => el.EmployeeId == e.Id) .ToList().ForEach(el => db.EmployeeStores.Remove(el)); db.EmployeeLocations.Where(el => el.EmployeeId == e.Id) .ToList().ForEach(el => db.EmployeeLocations.Remove(el)); foreach (var s in m.Stores.Where(s => s.HasAccess)) { var es = new EmployeeStore(); es.Employee = e; es.StoreId = s.Id; db.EmployeeStores.Add(es); } foreach (var l in m.Locations.Where(l => l.HasAccess)) { var el = new EmployeeLocation(); el.Employee = e; el.LocationId = l.Id; db.EmployeeLocations.Add(el); } db.SaveChanges(); } return(RedirectToAction("Manage", "Employee")); } return(View()); }
public ActionResult Permissions(int id) { if (!((bool?)Session.Contents["EmployeeAdmin"] ?? false)) { return(RedirectToAction("Index", "Home")); } var m = new _5Bites.Models.Employee_.Permissions.ViewModel(); using (var db = new dbEntities()) { var e = db.Employees.Single(e_ => e_.Id == id); m.Id = e.Id; m.Username = e.Username; m.IsAdmin = e.IsAdmin; foreach (var s in db.Stores) { var sm = new Models.Employee_.Permissions.StoreModel(); sm.Id = s.Id; sm.Name = s.Location.Name; sm.HasAccess = e.EmployeeStores.Count(es => es.Store == s) != 0; m.Stores.Add(sm); } foreach (var l in db.Locations) { var lm = new Models.Employee_.Permissions.LocationModel(); lm.Id = l.Id; lm.Name = l.Name; lm.HasAccess = e.EmployeeLocations.Count(el => el.Location == l) != 0; m.Locations.Add(lm); } } return(View(m)); }