Exemple #1
0
        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());
        }
Exemple #3
0
 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();
        }
Exemple #6
0
 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 });
        }
Exemple #8
0
        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));
            }
        }
Exemple #10
0
        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);
        }
Exemple #11
0
 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);
 }
Exemple #12
0
        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();
        }