예제 #1
0
        public Field UpdateField(Field field)
        {
            using (var db = new CMSContext())
            {
                var dbField = db.Fields.Find(field.Id);

                if (dbField == null)
                {
                    throw new CustomValidationException($"No field with id = {field.Id}.");
                }
                if (field.Name.ToLower() != dbField.Name.ToLower())
                {
                    throw new CustomValidationException($"Not allowed to change field names, only display names.");
                }
                if (field.FieldType != dbField.FieldType)
                {
                    throw new CustomValidationException($"Not allowed to change field types.");
                }

                db.Entry(dbField).CurrentValues.SetValues(field);
                db.SaveChanges();
            };

            return(field);
        }
예제 #2
0
 public void UpdateFile(File file)
 {
     using (var db = new CMSContext())
     {
         var fileEntity = db.Files.FirstOrDefault(f => f.Id == file.Id);
         db.Entry(fileEntity).CurrentValues.SetValues(file);
         db.SaveChanges();
     }
 }
예제 #3
0
        public void UpdatePermission(Permission permission)
        {
            using (var db = new CMSContext())
            {
                var dbPermission = db.Permissions.Find(permission.Id);

                db.Entry(dbPermission).CurrentValues.SetValues(permission);

                db.SaveChanges();
            }
        }
예제 #4
0
        public Action UpdateAction(Action action)
        {
            using (var db = new CMSContext())
            {
                var dbAction = db.Actions
                               .Include(f => f.Parameters)
                               .FirstOrDefault(f => f.Id == action.Id);

                var pIds           = action.Parameters.Select(p => p.Id).ToList();
                var existingParams = db.Parameters.Where(f => pIds.Contains(f.Id));

                var existingParamIds = existingParams.Select(p => p.Id);

                foreach (var existParam in existingParams)
                {
                    db.Entry(existParam).CurrentValues.SetValues(action.Parameters.First(p => p.Id == existParam.Id));
                }

                var newParams = action.Parameters.Where(p => !existingParamIds.Contains(p.Id)).ToList();

                db.Parameters.AddRange(newParams);
                db.SaveChanges();

                var parameters = db.Parameters.Where(p => p.ActionId == action.Id).ToList();

                action.Parameters.Clear();

                foreach (var p in parameters)
                {
                    dbAction.Parameters.Add(p);
                }


                db.Entry(dbAction).CurrentValues.SetValues(action);
                db.SaveChanges();

                return(dbAction);
            };
        }
예제 #5
0
        public Style UpdateStyle(Style style)
        {
            using (var db = new CMSContext())
            {
                var dbStyle = db.Styles.Find(style.Id);

                if (dbStyle == null)
                {
                    throw new CustomValidationException($"No style with id = {style.Id}.");
                }

                db.Entry(dbStyle).CurrentValues.SetValues(style);
                db.SaveChanges();
            };

            return(style);
        }
예제 #6
0
        public Control UpdateControl(Control control)
        {
            using (var db = new CMSContext())
            {
                var dbControl = db.Controls.Find(control.Id);

                if (dbControl == null)
                {
                    throw new CustomValidationException($"No control with id = {control.Id}.");
                }

                db.Entry(dbControl).CurrentValues.SetValues(control);
                db.SaveChanges();
            };

            return(control);
        }
예제 #7
0
        public View UpdateView(View view)
        {
            using (var db = new CMSContext())
            {
                var dbView = db.Views.Find(view.Id);

                if (dbView == null)
                {
                    throw new CustomValidationException($"No view with id = {view.Id}.");
                }

                db.Entry(dbView).CurrentValues.SetValues(view);
                db.SaveChanges();
            };

            return(view);
        }
예제 #8
0
        public void UpdateUserRole(UserRole userRole, string userLogin)
        {
            using (var db = new CMSContext())
            {
                var dbUserRole = db.UserRoles.Find(userRole.RoleId, userRole.UserId);

                var currentUser = db.Users.FirstOrDefault(u => u.Login.ToUpper() == userLogin.ToUpper());

                if (!db.UserRoles.Any(ur => ur.RoleId == userRole.RoleId && ur.UserId == currentUser.Id && ur.UserCanChangeRole))
                {
                    throw new CustomValidationException("Current user doesn't have rights to update this user-role relation.");
                }

                db.Entry(dbUserRole).CurrentValues.SetValues(userRole);

                db.SaveChanges();
            }
        }
예제 #9
0
        public Filter UpdateFilter(Filter filter)
        {
            Filter dbFilter;

            using (var db = new CMSContext())
            {
                dbFilter = db.Filters
                           .FirstOrDefault(f => f.Id == filter.Id);

                if (dbFilter == null)
                {
                    throw new CustomValidationException($"No filter with id = {filter.Id}.");
                }

                db.Entry(dbFilter).CurrentValues.SetValues(filter);
                db.SaveChanges();
            };

            return(dbFilter);
        }