Пример #1
0
        public IFacadeUpdateResult <DomainData> SaveDomainSetupMenu(object parentId, DomainSetupMenuDto childDto)
        {
            UnitOfWork.BeginTransaction();
            IFacadeUpdateResult <DomainData> result = DomainSystem.SaveDomainSetupMenu(parentId, childDto);

            if (result.IsSuccessful)
            {
                UnitOfWork.CommitTransaction();
            }
            else
            {
                UnitOfWork.RollbackTransaction();
            }
            return(result);
        }
        protected void ucIDetail_ChildListInstanceRowSaving(object sender, InstanceRowSavingEventArgs e)
        {
            using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
            {
                DomainFacade facade = new DomainFacade(uow);

                switch ((InstanceTypes)Enum.Parse(typeof(InstanceTypes), e.InstanceType))
                {
                case InstanceTypes.DomainMainMenu:
                    DomainMainMenuDto itemDto = e.Instance as DomainMainMenuDto;
                    // Save data
                    IFacadeUpdateResult <DomainData> result1 = facade.SaveDomainMainMenu(CurrentInstance.Id, itemDto);
                    e.IsSuccessful = result1.IsSuccessful;
                    if (result1.IsSuccessful)
                    {
                        // Refresh
                        DomainDto savedParentInstance = result1.ToDto(new DomainConverter());
                        CurrentInstance.DomainMainMenus = savedParentInstance.DomainMainMenus;
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result1.ValidationResult, result1.Exception);
                    }
                    break;

                case InstanceTypes.DomainSetupMenu:
                    DomainSetupMenuDto itemDto2 = e.Instance as DomainSetupMenuDto;
                    // Save data
                    IFacadeUpdateResult <DomainData> result2 = facade.SaveDomainSetupMenu(CurrentInstance.Id, itemDto2);
                    e.IsSuccessful = result2.IsSuccessful;
                    if (result2.IsSuccessful)
                    {
                        // Refresh
                        DomainDto savedParentInstance = result2.ToDto(new DomainConverter());
                        CurrentInstance.DomainSetupMenus = savedParentInstance.DomainSetupMenus;
                    }
                    else
                    {
                        // Deal with Update result
                        ProcUpdateResult(result2.ValidationResult, result2.Exception);
                    }
                    break;
                }
            }
        }
Пример #3
0
        internal IFacadeUpdateResult <DomainData> SaveDomainSetupMenu(object parentId, DomainSetupMenuDto childDto)
        {
            ArgumentValidator.IsNotNull("parentId", parentId);
            ArgumentValidator.IsNotNull("childDto", childDto);

            FacadeUpdateResult <DomainData> result = new FacadeUpdateResult <DomainData>();
            IDomainService service     = UnitOfWork.GetService <IDomainService>();
            var            parentQuery = service.Retrieve(parentId);

            if (parentQuery.HasResult)
            {
                Domain          parent = parentQuery.ToBo <Domain>();
                DomainSetupMenu child  = RetrieveOrNewDomainSetupMenu(parent, childDto.Id);
                if (child != null)
                {
                    child.SetupMenuId = childDto.SetupMenuId;
                    child.Sort        = childDto.Sort;

                    var saveQuery = service.Save(parent);
                    result.Merge(saveQuery);
                    result.AttachResult(parent.RetrieveData <DomainData>());
                }
                else
                {
                    AddError(result.ValidationResult, "DomainSetupMenuCannotBeFound");
                }
            }

            return(result);
        }