public ActionResult Manage() { // Enforce admin priviledges if (!((bool?)Session.Contents["EmployeeAdmin"] ?? false)) { return(RedirectToAction("Index", "Home")); } int EmployeeId = (int)Session.Contents["EmployeeId"]; var m = new Models.Employee_.Manage.ViewModel(); using (var db = new dbEntities()) { foreach (var e in db.Employees.Where(e => e.Id != EmployeeId)) { var em = new Models.Employee_.Manage.EmployeeModel(); em.Id = e.Id; em.Username = e.Username; m.Employees.Add(em); } foreach (var s in db.Stores) { var sm = new Models.Employee_.Hire.StoreModel(); sm.Id = s.Id; sm.Name = s.Location.Name; m.Hire.Stores.Add(sm); } foreach (var l in db.Locations) { var lm = new Models.Employee_.Hire.LocationModel(); lm.Id = l.Id; lm.Name = l.Name; m.Hire.Locations.Add(lm); } } return(View(m)); }
public ActionResult Hire(Models.Employee_.Manage.ViewModel m) { if (ModelState.IsValid) { SHA256 sha256 = new SHA256Managed(); byte[] hashed = sha256.ComputeHash(Encoding.UTF8.GetBytes(m.Hire.Password)); using (var db = new dbEntities()) { var e = new Employee(); e.Username = m.Hire.Username; e.Password = hashed; e.IsAdmin = m.Hire.IsAdmin; foreach (var s in m.Hire.Stores.Where(s => s.HasAccess)) { var es = new EmployeeStore(); es.Employee = e; es.StoreId = s.Id; e.EmployeeStores.Add(es); } foreach (var l in m.Hire.Locations.Where(l => l.HasAccess)) { var el = new EmployeeLocation(); el.Employee = e; el.LocationId = l.Id; e.EmployeeLocations.Add(el); } db.Employees.Add(e); db.SaveChanges(); } return(RedirectToAction("Manage", "Employee")); } return(View()); }