ModelDifferenceObject CreateDifferenceObject(string resourceName, string prefix) { ModelDifferenceObject modelDifferenceObject; if (prefix == XpoModelDictionaryDifferenceStore.ModelApplicationPrefix) { modelDifferenceObject = new ModelDifferenceObject(_objectSpace.Session); } else { modelDifferenceObject = new RoleModelDifferenceObject(_objectSpace.Session); Type roleType = ((IRoleTypeProvider)SecuritySystem.Instance).RoleType; var criteriaParametersList = resourceName.Substring(0, resourceName.IndexOf("_", StringComparison.Ordinal)); object findObject = _objectSpace.FindObject(roleType, CriteriaOperator.Parse("Name=?", criteriaParametersList)); Guard.ArgumentNotNull(findObject, criteriaParametersList); var xpBaseCollection = ((XPBaseCollection)modelDifferenceObject.GetMemberValue("Roles")); xpBaseCollection.BaseAdd(findObject); } var applicationTitle = _xafApplication.Title; var title = ((IModelOptionsModelDifference)_xafApplication.Model.Options).ApplicationTitle; if (!string.IsNullOrEmpty(title)) { applicationTitle = title; } modelDifferenceObject.InitializeMembers(resourceName, applicationTitle, _xafApplication.GetType().FullName); return(modelDifferenceObject); }
public override void SaveDifference(ModelApplicationBase model) { if (model != null) { var applicationTitle = Application.Title; var title = ((IModelOptionsModelDifference)Application.Model.Options).ApplicationTitle; if (!string.IsNullOrEmpty(title)) { applicationTitle = title; } var deviceCategories = new[] { DeviceCategory.All }; if (DeviceModelsEnabled) { deviceCategories = deviceCategories.Concat(new[] { Application.GetDeviceCategory() }).ToArray(); } foreach (var deviceCategory in deviceCategories) { var modelId = $"{model.Id}-{deviceCategory}"; ModelDifferenceObject modelDifferenceObject = GetActiveDifferenceObject(modelId, deviceCategory) ?? GetNewDifferenceObject(_objectSpace) .InitializeMembers(modelId == "Application" ? Application.Title : modelId, applicationTitle, Application.GetType().FullName, deviceCategory); if (!_objectSpace.IsNewObject(modelDifferenceObject)) { _objectSpace.ReloadObject(modelDifferenceObject); } OnDifferenceObjectSaving(modelDifferenceObject, model); } } }
void GetModelUnSafe(ModelApplicationBase modelApplicationBase, ModelDifferenceObject modelDifferenceObject) { var afterSetupLayer = GetAfterSetupLayer(modelApplicationBase); ModelApplicationHelper.AddLayer(modelApplicationBase, afterSetupLayer); modelDifferenceObject.GetModel(modelApplicationBase); ModelApplicationHelper.RemoveLayer(modelApplicationBase); }
protected internal virtual void OnDifferenceObjectSaving(ModelDifferenceObject modelDifferenceObject, ModelApplicationBase model) { if (model.HasModification) { ObjectSpace.SetModified(modelDifferenceObject); } ObjectSpace.CommitChanges(); }
protected internal override void OnDifferenceObjectSaving(ModelDifferenceObject userModelDifferenceObject, ModelApplicationBase model) { var userStoreObject = ((UserModelDifferenceObject)userModelDifferenceObject); if (!userStoreObject.NonPersistent) { userModelDifferenceObject.CreateAspectsCore(model); base.OnDifferenceObjectSaving(userModelDifferenceObject, model); } CombineModelFromPermission(model); }
public void CombineWithApplicationUserDiffs(ModelApplicationBase masterModel) { var userAspectObjectQuery = new QueryUserModelDifferenceObject(((ObjectSpace)View.ObjectSpace).Session); ModelDifferenceObject differenceObject = userAspectObjectQuery.GetActiveModelDifference(Application.GetType().FullName, null); if (ReferenceEquals(differenceObject, View.CurrentObject)) { new ModelXmlReader().ReadFromModel(masterModel.LastLayer, ((ModelApplicationBase)Application.Model).LastLayer); ObjectSpace.SetModified(userAspectObjectQuery); ObjectSpace.CommitChanges(); } }
public override void SaveDifference(ModelApplicationBase model) { if (model != null) { _objectSpace = _application.CreateObjectSpace(typeof(ModelDifferenceObject)) as XPObjectSpace; ModelDifferenceObject modelDifferenceObject = GetActiveDifferenceObject(model.Id) ?? GetNewDifferenceObject(_objectSpace) .InitializeMembers(model.Id == "Application" ? Application.Title : model.Id, Application.Title, Application.GetType().FullName); OnDifferenceObjectSaving(modelDifferenceObject, model); } }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); string name = typeof(ExistentAssemblyMasterDetailModelStore).Name; var session = ((XPObjectSpace)ObjectSpace).Session; if (new QueryModelDifferenceObject(session).GetActiveModelDifference(name, ApplicationHelper.Instance.Application) == null) { ModelDifferenceObject modelDifferenceObject = new ModelDifferenceObject(session).InitializeMembers(name, ApplicationHelper.Instance.Application); modelDifferenceObject.Name = name; ObjectSpace.CommitChanges(); } }
void CombineModelFromPermission(ModelApplicationBase model) { if (SecuritySystem.Instance is ISecurityComplex && IsGranted()) { var space = Application.CreateObjectSpace(); ModelDifferenceObject difference = GetDifferenceFromPermission((XPObjectSpace)space); var master = new ModelLoader(difference.PersistentApplication.ExecutableName).GetMasterModel(true); var diffsModel = difference.GetModel(master); new ModelXmlReader().ReadFromModel(diffsModel, model); difference.CreateAspectsCore(diffsModel); space.SetModified(difference); space.CommitChanges(); } }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); // return; string modelId = typeof(MasterDetailStore).Name; if (new QueryModelDifferenceObject(Session).GetActiveModelDifference(modelId) == null) { ModelDifferenceObject modelDifferenceObject = new ModelDifferenceObject(Session).InitializeMembers(modelId); modelDifferenceObject.Name = modelId; modelDifferenceObject.Save(); } }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); string name = typeof(WCCalculatedFieldModelStore).Name; var session = ((XPObjectSpace)ObjectSpace).Session; if (new QueryModelDifferenceObject(session).GetActiveModelDifference(name, FeatureCenterModule.Application) == null) { ModelDifferenceObject modelDifferenceObject = new ModelDifferenceObject(session).InitializeMembers(name, FeatureCenterModule.Application); modelDifferenceObject.Name = name; ObjectSpace.CommitChanges(); } }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); var uniqueName = new ExternalApplicationModelStore().Name; var session = ((XPObjectSpace)ObjectSpace).Session; if (new QueryModelDifferenceObject(session).GetActiveModelDifference(uniqueName, "ExternalApplication") == null) { var modelDifferenceObject = new ModelDifferenceObject(session).InitializeMembers("ExternalApplication", "ExternalApplication.Win", uniqueName); modelDifferenceObject.PersistentApplication.ExecutableName = "ExternalApplication.Win.exe"; var modelApplicationBuilder = new ModelLoader(modelDifferenceObject.PersistentApplication.ExecutableName); var model = modelApplicationBuilder.GetLayer(typeof(ExternalApplicationModelStore), false); modelDifferenceObject.CreateAspects(model); ObjectSpace.CommitChanges(); } }
void CombineModelFromPermission(ModelApplicationBase model) { if (SecuritySystem.Instance is ISecurityComplex && IsGranted()) { var space = Application.CreateObjectSpace(typeof(ModelDifferenceObject)); ModelDifferenceObject difference = GetDifferenceFromPermission((XPObjectSpace)space); if (difference != null) { InterfaceBuilder.SkipAssemblyCleanup = true; var master = new ModelLoader(difference.PersistentApplication.ExecutableName, XafTypesInfo.Instance).GetMasterModel(true, info => info.AssignAsInstance()); InterfaceBuilder.SkipAssemblyCleanup = false; var diffsModel = difference.GetModel(master); new ModelXmlReader().ReadFromModel(diffsModel, model); difference.CreateAspectsCore(diffsModel); space.SetModified(difference); space.CommitChanges(); } } }
protected internal virtual void OnDifferenceObjectSaving(ModelDifferenceObject modelDifferenceObject, ModelApplicationBase model) { ObjectSpace.CommitChanges(); }
public static void SetUp(ModelDifferenceObject modelDifferenceObject, string applicationTypeName) { SetUp(modelDifferenceObject); }
private static void SetUp(ModelDifferenceObject modelDifferenceObject) { modelDifferenceObject.DateCreated = DateTime.Now; modelDifferenceObject.Name = "AutoCreated " + DateTime.Now; }
public ModelDifferenceObjectInfo(ModelDifferenceObject modelDifferenceObject, ModelApplicationBase model) { ModelDifferenceObject = modelDifferenceObject; Model = model; }