public AmplaViewProperties(IModelProperties <TModel> modelProperties)
        {
            this.modelProperties = modelProperties;
            permissions          = new ViewPermissions();
            IViewPermissions modulePermissions =
                ModuleMapping.GetModuleMapping(modelProperties.Module).GetSupportedOperations();

            enforcePermissions = new EnforceViewPermissionsAdapter(modelProperties.Module.ToString(), permissions,
                                                                   modulePermissions);
        }
        /// <summary>
        /// Validates the permissions for the view
        /// </summary>
        /// <returns></returns>
        public IList <string> ValidateViewPermissions()
        {
            IViewPermissions        modulePermissions   = ModuleMapping.GetModuleMapping(modelProperties.Module).GetSupportedOperations();
            ValidateViewPermissions validatePermissions = new ValidateViewPermissions(modelProperties.Module.ToString(), permissions,
                                                                                      modulePermissions);

            validatePermissions.ValidatePermissions();

            return(validatePermissions.Messages);
        }
        private List <FieldMapping> BuildFieldResolvers()
        {
            IModuleMapping moduleMapping = ModuleMapping.GetModuleMapping(modelProperties.Module);

            List <FieldMapping> fieldMappings = new List <FieldMapping>();
            List <string>       modelFields   = new List <string>(modelProperties.GetProperties());

            foreach (ViewField field in viewFieldsCollection.GetValues())
            {
                bool isModelProperty = modelFields.Contains(field.DisplayName);

                FieldMapping fieldMapping = moduleMapping.GetFieldMapping(field, isModelProperty);

                if (fieldMapping != null)
                {
                    fieldMappings.Add(fieldMapping);
                }
            }
            return(fieldMappings);
        }