コード例 #1
0
ファイル: EmployeeController.cs プロジェクト: krsnik02/5Bites
        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());
        }
コード例 #2
0
ファイル: EmployeeController.cs プロジェクト: krsnik02/5Bites
        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));
        }