private bool SaveEntity() { View.PostEditors(); if (!View.ValidateData()) { return(false); } bool isAdd = false; if (EntityId == Guid.Empty) { isAdd = true; EntityId = Guid.NewGuid(); entity.EntityId = EntityId; } metadataServiceClient.SaveEntity(entity, isAdd); if (WorkingMode == EntityDetailWorkingMode.Add) { WorkingMode = EntityDetailWorkingMode.Edit; } OnEntitySaved(EventArgs.Empty); WorkItem.Commands["Refresh"].Execute(); BindList(); return(true); }
public bool ValidateData(EntityDetailWorkingMode WorkingMode) { var user = EntityBindingSource.Current; var passwordLengthRule = new PasswordLengthRule(); Guid userId = Guid.Parse(user.GetType().GetProperty("UserId").GetValue(user, null).ToString()); if (WorkingMode == EntityDetailWorkingMode.Add) { SetValidationRule(PasswordTextEdit, ValidationRules.IsNotBlankRule(ItemForPassword.Text)); SetValidationRule(PasswordTextEdit, passwordLengthRule); SetValidationRule(ConfirmPasswordTextEdit, ValidationRules.IsNotBlankRule(ItemForConfirmPassword.Text)); } if (!string.IsNullOrEmpty(PasswordTextEdit.Text)) { SetValidationRule(PasswordTextEdit, passwordLengthRule); var passwordCompareRule = new CompareAgainstControlValidationRule() { CompareControlOperator = CompareControlOperator.Equals, Control = PasswordTextEdit, ErrorText = Resources.ConfirmPasswordNotMatch, ErrorType = ErrorType.Warning }; SetValidationRule(ConfirmPasswordTextEdit, passwordCompareRule); } return(ValidationProvider.Validate()); }
public void CopyAndNew(object sender, EventArgs e) { View.PostEditors(); OnSaving(); if (!View.ValidateData()) { return; } if (NewEntityId == Guid.Empty) { _dynamicDataServiceContext = new DynamicDataServiceContext(); EntityId = NewEntityId; var newEntity = GetEntity(); var metaEntity = MetadataProvider.Instance.EntiyMetadata.Where(c => c.PhysicalName == EntityName).FirstOrDefault(); foreach (var att in metaEntity.Attributes) { if (att.IsCopyEnabled ?? false) { object targetValue = GetDynamicMember(DynamicEntity, att.TableColumnName); newEntity.GetType().GetProperty(att.TableColumnName).SetValue(newEntity, targetValue, null); } } DynamicEntity = new SysBits.DynamicProxies.DynamicProxy(newEntity); WorkingMode = EntityDetailWorkingMode.Add; RefreshEntityId(newEntity); NewEntityId = EntityId; Type entityType = newEntity.GetType(); Type listGenericType = typeof(List <>); Type listType = listGenericType.MakeGenericType(entityType); var list = (IList)Activator.CreateInstance(listType); list.Add(newEntity); BindData(list); } OnEntitySaved(new EventArgs <bool>(true)); }
public void ShowEntityDetails <T>(EntityDetailWorkingMode workingMode, string entityName, Guid id) where T : AbstractDetailView { string key = id + entityName + ":DetailWorkItem"; var detailWorkItem = Items.Get <EnityDetailController <T> >(key); if (detailWorkItem == null) { detailWorkItem = Items.AddNew <EnityDetailController <T> >(key); detailWorkItem.EntityName = entityName; detailWorkItem.Initialize(); } if (workingMode == EntityDetailWorkingMode.Convert) { detailWorkItem.State["ConvertEntiy"] = _entityListView.SelectedEntity; detailWorkItem.State["ConvertName"] = EntityName; } detailWorkItem.State["EntityId"] = id; detailWorkItem.State["WorkingMode"] = workingMode; detailWorkItem.Run(); if (detailWorkItem.View == null) { return; } detailWorkItem.View.Context = _entityListView.Context; }
private void ShowRelatedEntityDetail(string entityName, Guid entityId, EntityDetailWorkingMode workMode) { var detailViewType = FindLoadedType(entityName + "DetailView"); Type controlType = typeof(EnityDetailController <>).MakeGenericType(detailViewType); var addNewMethod = RootWorkItem.Items.GetType().GetMethod("AddNew", new[] { typeof(string) }).MakeGenericMethod(controlType); var getMethod = RootWorkItem.Items.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public) .First(m => m.IsGenericMethod && m.Name == "Get").MakeGenericMethod(controlType); string key = entityId + entityName + ":DetailWorkItem"; var detailWorkObject = getMethod.Invoke(RootWorkItem.Items, new object[] { key }); var detailWorkItem = detailWorkObject as WorkItem; if (detailWorkItem == null) { detailWorkObject = addNewMethod.Invoke(RootWorkItem.Items, new object[] { key }); detailWorkItem = detailWorkObject as WorkItem; var initializeMethod = detailWorkItem.GetType().GetMethod("Initialize"); PropertyInfo entityProperty = detailWorkItem.GetType().GetProperty("EntityName"); entityProperty.SetValue(detailWorkItem, entityName, null); initializeMethod.Invoke(detailWorkItem, new object[] { }); } if (workMode == EntityDetailWorkingMode.Convert) { var _dynamicDataServiceContext = new DynamicDataServiceContext(); detailWorkItem.State["ConvertEntiy"] = _dynamicDataServiceContext.GetOrNew(EntityName, (Guid)State["EntityId"]); detailWorkItem.State["ConvertName"] = EntityName; } detailWorkItem.State["EntityId"] = entityId; detailWorkItem.State["WorkingMode"] = workMode; detailWorkItem.Run(); }
public bool CopyAndNew() { _detailView.PostEditors(); OnSaving(); if (!_detailView.ValidateData()) { return(false); } if (NewEntityId == Guid.Empty) { _objectSpace = new ODataObjectSpace(); ObjectId = NewEntityId; var newEntity = GetEntity(); var metaEntity = MetadataRepository.Entities.Where(c => c.PhysicalName == ObjectName).FirstOrDefault(); foreach (var att in metaEntity.Attributes) { if (att.IsCopyEnabled ?? false) { SetProperValue(ObjectEntity, att.TableColumnName, newEntity, att.TableColumnName); } } ObjectEntity = newEntity; WorkingMode = EntityDetailWorkingMode.Add; RefreshEntityId(newEntity); NewEntityId = ObjectId; BindData(ObjectEntity); } return(true); }
private void ShowRelatedEntityDetail(string name, Guid id, EntityDetailWorkingMode workMode) { var detailViewType = FindLoadedType(name + "DetailView"); if (!typeof(AbstractDetailView).IsAssignableFrom(detailViewType)) { throw new Exception("The detail view has to be derived from AbstractDetailView"); } var showDetailMethod = this.GetType().GetMethod("ShowEntityDetails").MakeGenericMethod(detailViewType); showDetailMethod.Invoke(this, new object[] { workMode, name, id }); }
private void ShowEntityDetails <T>(EntityDetailWorkingMode workingMode, string entityName, Guid id) where T : AbstractDetailView { string key = id + ":DetailWorkItem"; var detailWorkItem = WorkItem.Items.Get <EnityDetailController <T> >(key); if (detailWorkItem == null) { detailWorkItem = WorkItem.Items.AddNew <EnityDetailController <T> >(key); detailWorkItem.EntityName = entityName; detailWorkItem.Initialize(); } detailWorkItem.State["EntityId"] = id; detailWorkItem.State["WorkingMode"] = workingMode; detailWorkItem.Run(); }
private void ShowOptionSet(Guid optionSetId, EntityDetailWorkingMode workMode) { var optionView = WorkItem.Items.AddNew <OptionSetDetailView>(); var presenter = WorkItem.Items.AddNew <OptionSetDetailPresenter>(); presenter.optionSetId = optionSetId; presenter.WorkingMode = workMode; optionView.Presenter = presenter; var info = new XtraWindowSmartPartInfo { StartPosition = FormStartPosition.CenterParent, Icon = Properties.Resources.ri_Katrin, Modal = true, Title = "OptionSet" }; WorkItem.Workspaces[WorkspaceNames.ModalWindows].Show(optionView, info); if (optionView.IsSave && FreshOptionSet != null) { FreshOptionSet(this, new DataEventArgs <Guid>(optionSetId)); } }
public override IActionResult Execute(ActionParameters parameters) { if (parameters.ContainsKey("ObjectEntity")) { ObjectEntity = parameters.Get <object>("ObjectEntity"); } var objectId = parameters.ObjectId; var workMode = parameters.Get <EntityDetailWorkingMode>("WorkingMode"); ObjectName = parameters.ObjectName; _detailView = ViewFactory.CreateView("Default" + ObjectName + "DetailView") as IObjectDetailView; this.ObjectId = objectId; this.WorkingMode = workMode; OnViewSet(); var result = new PartialViewResult(); result.View = _detailView; return(result); }
private bool SaveEntity() { _detailView.PostEditors(); if (!OnSaving()) { return(false); } if (!_detailView.ValidateData()) { return(false); } _objectSpace.SaveChanges(); NewEntityId = Guid.Empty; OnSaved(); if (WorkingMode == EntityDetailWorkingMode.Add) { WorkingMode = EntityDetailWorkingMode.Edit; } HasChanges = false; EventAggregationManager.SendMessage(new ObjectSetChangedMessage { ObjectName = ObjectName }); return(true); }
public void ShowEntityDetails <T>(string entityName, Guid projectId, Guid id, EntityDetailWorkingMode workMode) where T : AbstractDetailView { string key = id + ":DetailWorkItem"; var rootItem = WorkItem.RootWorkItem; var detailWorkItem = rootItem.Items.Get <EnityDetailController <T> >(key); if (detailWorkItem == null) { detailWorkItem = rootItem.Items.AddNew <EnityDetailController <T> >(key); detailWorkItem.EntityName = entityName; detailWorkItem.Initialize(); } detailWorkItem.State["EntityId"] = id; detailWorkItem.State["ProjectId"] = projectId; detailWorkItem.State["WorkingMode"] = workMode; detailWorkItem.Run(); }