コード例 #1
0
        public int GetUserCountForGroup(AuthorityGroup group)
        {
            var q = new HqlQuery("select count(elements(g.Users)) from AuthorityGroup g");

            q.Conditions.Add(new HqlCondition("g = ?", group));
            return((int)ExecuteHqlUnique <long>(q));
        }
コード例 #2
0
ファイル: SetupApplication.cs プロジェクト: nhannd/Xian
        private static void CreateSysAdminUser(AuthorityGroup adminGroup, SetupCommandLine cmdLine, IPersistenceContext context, TextWriter log)
        {
            try
            {
                // create the sa user, if doesn't already exist
                IUserBroker userBroker = context.GetBroker<IUserBroker>();
                UserSearchCriteria where = new UserSearchCriteria();
				where.UserName.EqualTo(cmdLine.SysAdminUserName);
                userBroker.FindOne(where);

				log.WriteLine(string.Format("User '{0}' already exists.", cmdLine.SysAdminUserName));
            }
            catch (EntityNotFoundException)
            {
                HashedSet<AuthorityGroup> groups = new HashedSet<AuthorityGroup>
                                                       {
                                                           adminGroup
                                                       };

                // create sa user using initial password, set to expire never
                User saUser = User.CreateNewUser(
					new UserInfo(cmdLine.SysAdminUserName, cmdLine.SysAdminDisplayName, null, null, null),
					Password.CreatePassword(cmdLine.SysAdminInitialPassword, null),
                    groups);
                context.Lock(saUser, DirtyState.New);
            }
        }
コード例 #3
0
        /// <summary>
        /// 添加权限分组
        /// </summary>
        /// <param name="authorityGroup">权限信息</param>
        /// <returns>执行结果</returns>
        static Result <AuthorityGroup> AddAuthorityGroup(AuthorityGroup authorityGroup)
        {
            #region  级

            long           parentGroupId = authorityGroup.Parent == null ? 0 : authorityGroup.Parent.SysNo;
            AuthorityGroup parentGroup   = null;
            if (parentGroupId > 0)
            {
                IQuery parentQuery = QueryFactory.Create <AuthorityGroupQuery>(c => c.SysNo == parentGroupId);
                parentGroup = authorityGroupRepository.Get(parentQuery);
                if (parentGroup == null)
                {
                    return(Result <AuthorityGroup> .FailedResult("请选择正确的上级分组"));
                }
            }
            authorityGroup.SetParentGroup(parentGroup);

            #endregion

            authorityGroup.Save();//保存
            var result = Result <AuthorityGroup> .SuccessResult("添加成功");

            result.Data = authorityGroup;
            return(result);
        }
コード例 #4
0
        private static void CreateSysAdminUser(AuthorityGroup adminGroup, SetupCommandLine cmdLine, IPersistenceContext context, TextWriter log)
        {
            try
            {
                // create the sa user, if doesn't already exist
                IUserBroker userBroker = context.GetBroker <IUserBroker>();
                UserSearchCriteria where = new UserSearchCriteria();
                where.UserName.EqualTo(cmdLine.SysAdminUserName);
                userBroker.FindOne(where);

                log.WriteLine(string.Format("User '{0}' already exists.", cmdLine.SysAdminUserName));
            }
            catch (EntityNotFoundException)
            {
                HashedSet <AuthorityGroup> groups = new HashedSet <AuthorityGroup>
                {
                    adminGroup
                };

                // create sa user using initial password, set to expire never
                User saUser = User.CreateNewUser(
                    new UserInfo(cmdLine.SysAdminUserName, cmdLine.SysAdminDisplayName, null, null, null),
                    Password.CreatePassword(cmdLine.SysAdminInitialPassword, null),
                    groups);
                context.Lock(saUser, DirtyState.New);
            }
        }
コード例 #5
0
        private void GetData()
        {
            //Get Data Table AuthorityGroup
            AuthorityGroup authorityGroup = _authorityGroupRepository.Get(_id);

            txtAuthorityGroupName.Text = authorityGroup.AuthorityGroupName;
            chkUsing.Checked           = (authorityGroup.Status == GlobalConstants.StatusValue.Using);
        }
コード例 #6
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (!CheckData())
         {
             return;
         }
         //Table AuthorityGroup
         AuthorityGroup authorityGroup = new AuthorityGroup();
         authorityGroup.AuthorityGroupName = txtAuthorityGroupName.Text.Trim();
         authorityGroup.Status             = (chkUsing.Checked ? GlobalConstants.StatusValue.Using : GlobalConstants.StatusValue.NoUse);
         _authorityGroupRepository.Save(authorityGroup);
         if (!String.IsNullOrEmpty(_authorityGroupRepository.id))
         {
             for (int i = 0; i < dgvDuLieu.RowCount; i++)
             {
                 if (dgvDuLieu.Rows[i].Cells["Assign"].Value.ToString() == "1")
                 {
                     ProgramFunctionAuthority programFunctionAuthority = new ProgramFunctionAuthority();
                     programFunctionAuthority.ProgramName      = dgvDuLieu.Rows[i].Cells["ProgramName"].Value.ToString();
                     programFunctionAuthority.FunctionName     = dgvDuLieu.Rows[i].Cells["FunctionName"].Value.ToString();
                     programFunctionAuthority.AuthorityGroupID = _authorityGroupRepository.id;
                     _programFunctionAuthorityRepository.Save(programFunctionAuthority);
                 }
                 else
                 {
                     _programFunctionAuthorityRepository.DeleteByProgramAndFunction(dgvDuLieu.Rows[i].Cells["ProgramName"].Value.ToString(), dgvDuLieu.Rows[i].Cells["FunctionName"].Value.ToString());
                 }
             }
         }
         UnitOfWork unitOfWork = new UnitOfWork(_projectDataContext);
         int        result     = unitOfWork.Complete();
         if (result > 0)
         {
             if (String.IsNullOrEmpty(_id))
             {
                 XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thành công"), LanguageTranslate.ChangeLanguageText("Thông báo"));
                 Clear();
             }
             else
             {
                 DialogResult = DialogResult.OK;
                 Close();
             }
         }
         else
         {
             XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thất bại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
             return;
         }
     }
     catch (Exception ex)
     {
         XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thất bại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
 }
コード例 #7
0
		internal AuthorityGroupSummary CreateAuthorityGroupSummary(AuthorityGroup authorityGroup)
		{
			return new AuthorityGroupSummary(
				authorityGroup.GetRef(),
				authorityGroup.Name,
				authorityGroup.Description,
				authorityGroup.BuiltIn,
				authorityGroup.DataGroup);
		}
コード例 #8
0
 internal AuthorityGroupSummary CreateAuthorityGroupSummary(AuthorityGroup authorityGroup)
 {
     return(new AuthorityGroupSummary(
                authorityGroup.GetRef(),
                authorityGroup.Name,
                authorityGroup.Description,
                authorityGroup.BuiltIn,
                authorityGroup.DataGroup));
 }
コード例 #9
0
 /// <summary>
 /// 保存权限分组
 /// </summary>
 /// <param name="authorityGroup">权限分组对象</param>
 /// <returns>执行结果</returns>
 public static Result <AuthorityGroup> SaveAuthorityGroup(AuthorityGroup authorityGroup)
 {
     if (authorityGroup == null)
     {
         return(Result <AuthorityGroup> .FailedResult("没有指定任何要保存的分组信息"));
     }
     if (authorityGroup.SysNo > 0)
     {
         return(UpdateAuthorityGroup(authorityGroup));
     }
     return(AddAuthorityGroup(authorityGroup));
 }
コード例 #10
0
        internal AuthorityGroupDetail CreateAuthorityGroupDetail(AuthorityGroup authorityGroup)
        {
            AuthorityTokenAssembler      assembler = new AuthorityTokenAssembler();
            List <AuthorityTokenSummary> tokens    = CollectionUtils.Map <AuthorityToken, AuthorityTokenSummary>(
                authorityGroup.AuthorityTokens,
                assembler.GetAuthorityTokenSummary);

            return(new AuthorityGroupDetail(
                       authorityGroup.GetRef(),
                       authorityGroup.Name,
                       authorityGroup.Description,
                       authorityGroup.DataGroup,
                       tokens));
        }
コード例 #11
0
        public void RunApplication(string[] args)
        {
            SetupCommandLine cmdLine = new SetupCommandLine();

            try
            {
                cmdLine.Parse(args);

                using (PersistenceScope scope = new PersistenceScope(PersistenceContextType.Update))
                {
                    ((IUpdateContext)PersistenceScope.CurrentContext).ChangeSetRecorder.OperationName = GetType().FullName;

                    // import authority tokens
                    AuthorityTokenImporter tokenImporter = new AuthorityTokenImporter();
                    IList <AuthorityToken> allTokens     = tokenImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext);


                    // create the sys admin group, which has all tokens assigned by default
                    string[] tokenStrings = CollectionUtils.Map <AuthorityToken, string, List <string> >(allTokens,
                                                                                                         t => t.Name).ToArray();
                    AuthorityGroupDefinition adminGroupDef = new AuthorityGroupDefinition(cmdLine.SysAdminGroup, cmdLine.SysAdminGroup, false,
                                                                                          tokenStrings);
                    AuthorityGroupImporter groupImporter = new AuthorityGroupImporter();

                    IList <AuthorityGroup> groups =
                        groupImporter.Import(new AuthorityGroupDefinition[] { adminGroupDef }, (IUpdateContext)PersistenceScope.CurrentContext);

                    // find the admin group entity that was just created
                    AuthorityGroup adminGroup = CollectionUtils.SelectFirst(groups,
                                                                            g => g.Name == cmdLine.SysAdminGroup);

                    // create the "sa" user
                    CreateSysAdminUser(adminGroup, cmdLine, PersistenceScope.CurrentContext, Console.Out);

                    // optionally import other default authority groups defined in other plugins
                    if (cmdLine.ImportDefaultAuthorityGroups)
                    {
                        groupImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext);
                    }

                    scope.Complete();
                }
            }
            catch (CommandLineException e)
            {
                Console.WriteLine(e.Message);
                cmdLine.PrintUsage(Console.Out);
            }
        }
コード例 #12
0
        internal AuthorityGroupDetail CreateAuthorityGroupDetail(AuthorityGroup authorityGroup)
        {

            AuthorityTokenAssembler assembler = new AuthorityTokenAssembler();
        	List<AuthorityTokenSummary> tokens = CollectionUtils.Map<AuthorityToken, AuthorityTokenSummary>(
        		authorityGroup.AuthorityTokens,
        		assembler.GetAuthorityTokenSummary);

            return new AuthorityGroupDetail(
                authorityGroup.GetRef(),
                authorityGroup.Name,
                authorityGroup.Description,
                authorityGroup.DataGroup,
                tokens);
        }
コード例 #13
0
        /// <summary>
        /// Import authority groups.
        /// </summary>
        /// <remarks>
        /// Creates any authority groups that do not already exist.
        /// This method performs an additive import.  It will never remove an existing authority group or
        /// remove authority tokens from an existing group.
        /// </remarks>
        /// <param name="groupDefs"></param>
        /// <param name="context"></param>
        public IList <AuthorityGroup> Import(IEnumerable <AuthorityGroupDefinition> groupDefs, IUpdateContext context)
        {
            // first load all the existing tokens into memory
            // there should not be that many tokens ( < 500), so this should not be a problem
            IAuthorityTokenBroker  tokenBroker    = context.GetBroker <IAuthorityTokenBroker>();
            IList <AuthorityToken> existingTokens = tokenBroker.FindAll();

            // load existing groups
            IAuthorityGroupBroker  groupBroker    = context.GetBroker <IAuthorityGroupBroker>();
            IList <AuthorityGroup> existingGroups = groupBroker.FindAll();

            foreach (AuthorityGroupDefinition groupDef in groupDefs)
            {
                AuthorityGroup group = CollectionUtils.SelectFirst(existingGroups,
                                                                   g => g.Name == groupDef.Name);

                // if group does not exist, create it
                if (group == null)
                {
                    group = new AuthorityGroup
                    {
                        Name        = groupDef.Name,
                        Description = groupDef.Description,
                        DataGroup   = groupDef.DataGroup
                    };
                    context.Lock(group, DirtyState.New);
                    existingGroups.Add(group);
                }

                // process all token nodes contained in group
                foreach (string tokenName in groupDef.Tokens)
                {
                    AuthorityToken token = CollectionUtils.SelectFirst(existingTokens,
                                                                       t => t.Name == tokenName);

                    // ignore non-existent tokens
                    if (token == null)
                    {
                        continue;
                    }

                    // add the token to the group
                    group.AuthorityTokens.Add(token);
                }
            }

            return(existingGroups);
        }
コード例 #14
0
        public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request)
        {
            // create new group
            var authorityGroup = new AuthorityGroup();

            // set properties from request
            var assembler = new AuthorityGroupAssembler();

            assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext);

            // save
            PersistenceContext.Lock(authorityGroup, DirtyState.New);
            PersistenceContext.SynchState();

            return(new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup)));
        }
コード例 #15
0
ファイル: AuthorityGroupImporter.cs プロジェクト: nhannd/Xian
		/// <summary>
		/// Import authority groups.
		/// </summary>
		/// <remarks>
		/// Creates any authority groups that do not already exist.
		/// This method performs an additive import.  It will never remove an existing authority group or
		/// remove authority tokens from an existing group.
		/// </remarks>
		/// <param name="groupDefs"></param>
		/// <param name="context"></param>
		public IList<AuthorityGroup> Import(IEnumerable<AuthorityGroupDefinition> groupDefs, IUpdateContext context)
        {
            // first load all the existing tokens into memory
            // there should not be that many tokens ( < 500), so this should not be a problem
            IAuthorityTokenBroker tokenBroker = context.GetBroker<IAuthorityTokenBroker>();
            IList<AuthorityToken> existingTokens = tokenBroker.FindAll();

            // load existing groups
            IAuthorityGroupBroker groupBroker = context.GetBroker<IAuthorityGroupBroker>();
            IList<AuthorityGroup> existingGroups = groupBroker.FindAll();

            foreach (AuthorityGroupDefinition groupDef in groupDefs)
            {
                AuthorityGroup group = CollectionUtils.SelectFirst(existingGroups,
                                                                   g => g.Name == groupDef.Name);

                // if group does not exist, create it
                if (group == null)
                {
                    group = new AuthorityGroup
                                {
                                    Name = groupDef.Name,
                                    Description = groupDef.Description,
                                    DataGroup = groupDef.DataGroup
                                };
                    context.Lock(group, DirtyState.New);
                    existingGroups.Add(group);
                }

                // process all token nodes contained in group
                foreach (string tokenName in groupDef.Tokens)
                {
                    AuthorityToken token = CollectionUtils.SelectFirst(existingTokens,
                                                                       t => t.Name == tokenName);

                    // ignore non-existent tokens
                    if (token == null)
                        continue;

                    // add the token to the group
                    group.AuthorityTokens.Add(token);
                }
            }

            return existingGroups;
        }
コード例 #16
0
 public AuthorityGroup Update(AuthorityGroup AuthorityGroup)
 {
     GetDbConnection().Query <AuthorityGroup>("UPDATE authority_group "
                                              + "SET "
                                              + "name = @Name, "
                                              + "description = @Description, "
                                              + "enabled = @Enabled "
                                              + "WHERE id = @Id",
                                              new
     {
         Id   = AuthorityGroup.Id,
         Name = AuthorityGroup.Name,
         AuthorityGroup.Description,
         AuthorityGroup.Enabled
     });
     return(FindById(AuthorityGroup.Id));
 }
コード例 #17
0
        public AuthorityGroup Insert(AuthorityGroup AuthorityGroup)
        {
            int AffectedRows = GetDbConnection().Execute("INSERT INTO authority_group (name, description, enabled) "
                                                         + "VALUES (@Name, @Description, @Enabled)",
                                                         new
            {
                Name = AuthorityGroup.Name,
                AuthorityGroup.Description,
                AuthorityGroup.Enabled
            });

            if (AffectedRows > 0)
            {
                long Id = GetDbConnection().Query <long>("SELECT LAST_INSERT_ID()").Single();
                return(FindById(Id));
            }

            return(null);
        }
コード例 #18
0
        public BusinessLayerResult <AuthorityGroup> GetAuthorityById(int id)
        {
            BusinessLayerResult <AuthorityGroup> result = new BusinessLayerResult <AuthorityGroup>();

            result.Result = true;

            AuthorityGroup returnModel = new AuthorityGroup();
            Exception      ex          = new Exception();
            bool           resultState = _repository.GetById(id, ref returnModel, ref ex);

            if (!resultState)
            {
                result.Result = resultState;
                result.AddError(ErrorMessageCode.TryCatchMessage, ex.Message);
            }

            result.Object = returnModel;
            return(result);
        }
コード例 #19
0
        /// <summary>
        /// 修改分组排序
        /// </summary>
        /// <param name="sortIndexInfo">排序修改信息</param>
        /// <returns></returns>
        public static Result ModifyAuthorityGroupSort(long groupId, int newSort)
        {
            #region 参数判断

            if (groupId <= 0)
            {
                return(Result.FailedResult("没有指定要修改的分组"));
            }

            #endregion

            AuthorityGroup group = GetAuthorityGroup(groupId);
            if (group == null)
            {
                return(Result.FailedResult("没有指定要修改的分组"));
            }
            group.ModifySortIndex(newSort);
            group.Save();
            return(Result.SuccessResult("修改成功"));
        }
コード例 #20
0
        internal void UpdateAuthorityGroup(AuthorityGroup authorityGroup, AuthorityGroupDetail detail, IPersistenceContext persistenceContext)
        {
            authorityGroup.Name        = detail.Name;
            authorityGroup.Description = detail.Description;
            authorityGroup.DataGroup   = detail.DataGroup;
            authorityGroup.AuthorityTokens.Clear();

            if (detail.AuthorityTokens.Count > 0)
            {
                // process authority tokens
                List <string> tokenNames = CollectionUtils.Map <AuthorityTokenSummary, string>(
                    detail.AuthorityTokens,
                    token => token.Name);

                AuthorityTokenSearchCriteria where = new AuthorityTokenSearchCriteria();
                where.Name.In(tokenNames);
                IList <AuthorityToken> authTokens = persistenceContext.GetBroker <IAuthorityTokenBroker>().Find(where);

                authorityGroup.AuthorityTokens.AddAll(authTokens);
            }
        }
コード例 #21
0
        internal void UpdateAuthorityGroup(AuthorityGroup authorityGroup, AuthorityGroupDetail detail, IPersistenceContext persistenceContext)
        {
            authorityGroup.Name = detail.Name;
            authorityGroup.Description = detail.Description;
            authorityGroup.DataGroup = detail.DataGroup;
			authorityGroup.AuthorityTokens.Clear();

			if (detail.AuthorityTokens.Count > 0)
			{
				// process authority tokens
				List<string> tokenNames = CollectionUtils.Map<AuthorityTokenSummary, string>(
					detail.AuthorityTokens,
					token => token.Name);

				AuthorityTokenSearchCriteria where = new AuthorityTokenSearchCriteria();
				where.Name.In(tokenNames);
				IList<AuthorityToken> authTokens = persistenceContext.GetBroker<IAuthorityTokenBroker>().Find(where);

				authorityGroup.AuthorityTokens.AddAll(authTokens);
			}
        }
コード例 #22
0
ファイル: UserImex.cs プロジェクト: hksonngan/Xian
        protected override void Import(UserData data, IUpdateContext context)
        {
            UserInfo info = new UserInfo(data.UserName, data.DisplayName, data.EmailAddress, data.ValidFrom, data.ValidUntil);
            User     user = LoadOrCreateUser(info, context);

            user.Enabled = data.Enabled;

            if (data.AuthorityGroups != null)
            {
                foreach (string group in data.AuthorityGroups)
                {
                    AuthorityGroupSearchCriteria where = new AuthorityGroupSearchCriteria();
                    where.Name.EqualTo(group);

                    AuthorityGroup authGroup = CollectionUtils.FirstElement(context.GetBroker <IAuthorityGroupBroker>().Find(where));
                    if (authGroup != null)
                    {
                        user.AuthorityGroups.Add(authGroup);
                    }
                }
            }
        }
コード例 #23
0
        private bool CheckData()
        {
            if (txtAuthorityGroupName.Text.Trim() == "")
            {
                XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Chưa điền dữ liệu"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtAuthorityGroupName.Focus();
                return(false);
            }
            AuthorityGroup authorityGroup = _authorityGroupRepository.FirstOrDefault(_ => _.AuthorityGroupName.Equals(txtAuthorityGroupName.Text.Trim()));

            if (authorityGroup != null &&
                (
                    String.IsNullOrEmpty(_id) ||
                    (!String.IsNullOrEmpty(_id) && txtAuthorityGroupName.Text.Trim() != authorityGroup.AuthorityGroupName)
                ))
            {
                XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Dữ liệu đã tồn tại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtAuthorityGroupName.Focus();
                return(false);
            }
            return(true);
        }
コード例 #24
0
        public void Init(AuthorityGroup authorityGroup, int flag, Button btn)
        {
            try
            {
                tempAuthorityGroup = authorityGroup;
                tempFlag           = flag;
                tempBtn            = btn;
                this.tableLayoutPanel1.Controls.Clear();
                switch (flag)
                {
                case 1:
                    foreach (var item in authorityGroup.FlightPlanType)
                    {
                        addControls(item.Key);
                    }

                    break;

                case 2:
                    foreach (var item in authorityGroup.AirLines)
                    {
                        addControls(item.Key);
                    }
                    break;

                case 3:
                    foreach (var item in authorityGroup.Parking)
                    {
                        addControls(item.Key);
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
            }
            this.Location = this.Parent.PointToClient(MousePosition);
        }
コード例 #25
0
        public void Test_CreateNewUser_WithExplicitPasswordAndGroups()
        {
            DateTime now      = DateTime.Now;
            DateTime tomorrow = now + TimeSpan.FromDays(1);
            UserInfo userInfo = new UserInfo(
                UserAccountType.U,
                "foo",
                "Mr. Foo",
                "*****@*****.**",
                null,
                null);

            AuthorityGroup             group1 = new AuthorityGroup();
            AuthorityGroup             group2 = new AuthorityGroup();
            HashedSet <AuthorityGroup> groups = new HashedSet <AuthorityGroup>();

            groups.Add(group1);
            groups.Add(group2);

            User user = User.CreateNewUser(userInfo, Password.CreatePassword(DefaultPassword, tomorrow), groups);

            Assert.AreEqual(userInfo.UserName, user.UserName);
            Assert.AreEqual(userInfo.DisplayName, user.DisplayName);
            Assert.AreEqual(true, user.Enabled);                // enabled by default
            Assert.IsTrue(RoughlyEqual(now, user.CreationTime));
            Assert.IsNull(user.LastLoginTime);                  // never logged in

            // password
            Assert.IsNotNull(user.Password);
            Assert.IsTrue(user.Password.Verify(DefaultPassword));               // initial password should work

            // password expiry time
            Assert.IsTrue(RoughlyEqual(tomorrow, user.Password.ExpiryTime));

            // groups
            Assert.AreEqual(2, user.AuthorityGroups.Count);
            Assert.IsTrue(user.AuthorityGroups.ContainsAll(groups));
        }
コード例 #26
0
        /// <summary>
        /// 更新权限分组
        /// </summary>
        /// <param name="authorityGroup">权限信息</param>
        /// <returns>执行结果</returns>
        static Result <AuthorityGroup> UpdateAuthorityGroup(AuthorityGroup newAuthorityGroup)
        {
            AuthorityGroup authorityGroup = authorityGroupRepository.Get(QueryFactory.Create <AuthorityGroupQuery>(r => r.SysNo == newAuthorityGroup.SysNo));

            if (authorityGroup == null)
            {
                return(Result <AuthorityGroup> .FailedResult("没有指定要操作的分组信息"));
            }
            //上级
            long newParentGroupId = newAuthorityGroup.Parent == null ? 0 : newAuthorityGroup.Parent.SysNo;
            long oldParentGroupId = authorityGroup.Parent == null ? 0 : authorityGroup.Parent.SysNo;

            //上级改变后
            if (newParentGroupId != oldParentGroupId)
            {
                AuthorityGroup parentGroup = null;
                if (newParentGroupId > 0)
                {
                    IQuery parentQuery = QueryFactory.Create <AuthorityGroupQuery>(c => c.SysNo == newParentGroupId);
                    parentGroup = authorityGroupRepository.Get(parentQuery);
                    if (parentGroup == null)
                    {
                        return(Result <AuthorityGroup> .FailedResult("请选择正确的上级分组"));
                    }
                }
                authorityGroup.SetParentGroup(parentGroup);
            }
            //修改信息
            authorityGroup.Name   = newAuthorityGroup.Name;
            authorityGroup.Status = newAuthorityGroup.Status;
            authorityGroup.Remark = newAuthorityGroup.Remark;
            authorityGroup.Save();//保存
            var result = Result <AuthorityGroup> .SuccessResult("更新成功");

            result.Data = authorityGroup;
            return(result);
        }
コード例 #27
0
        public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request)
        {
            Platform.CheckForNullReference(request, "request");
            Platform.CheckMemberIsSet(request.AuthorityGroupDetail, "AuthorityGroupDetail");

            if (request.AuthorityGroupDetail.BuiltIn)
            {
                throw new RequestValidationException(SR.MessageCannotManageBuiltInAuthorityGroups);
            }

            // create new group
            var authorityGroup = new AuthorityGroup();

            // set properties from request
            var assembler = new AuthorityGroupAssembler();

            assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext);

            // save
            PersistenceContext.Lock(authorityGroup, DirtyState.New);
            PersistenceContext.SynchState();

            return(new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup)));
        }
コード例 #28
0
        public void setAuthority(string authorityId)
        {
            try
            {
                _authorityId = authorityId;
                if (Form_Main.allAuthorityData.TryGetValue(authorityId, out AuthorityGroup authorityGroup))
                {
                    btnAuthority.Text = authorityGroup.AuthorityName;
                    _authorityGroup   = authorityGroup;
                    if (authorityGroup.AirLines.Count <= 0)
                    {
                        button3.Text = "Park";
                    }
                    else
                    {
                        button3.Text = "Co.";
                    }
                    if (Form_Main.CurrentAuthorityData.TryGetValue(authorityId, out AuthorityGroup authorityGroup1))
                    {
                        isOpenAuthority        = true;
                        btnAuthority.BackColor = Color.FromArgb(0, 0, 200);

                        if (authorityGroup1.FlightPlanType.Count != 0)
                        {
                            if (authorityGroup1.FlightPlanType.Count < authorityGroup.FlightPlanType.Count)
                            {
                                btnPlanType.BackColor = Color.FromArgb(200, 200, 0);
                            }
                            else
                            {
                                btnPlanType.BackColor = Color.FromArgb(0, 0, 200);
                            }
                        }
                        if (authorityGroup1.AirLines.Count != 0)
                        {
                            if (authorityGroup1.AirLines.Count < authorityGroup.AirLines.Count)
                            {
                                button3.BackColor = Color.FromArgb(200, 200, 0);
                            }
                            else
                            {
                                button3.BackColor = Color.FromArgb(0, 0, 200);
                            }
                        }
                        if (authorityGroup1.Parking.Count != 0)
                        {
                            if (authorityGroup1.Parking.Count < authorityGroup.Parking.Count)
                            {
                                button3.BackColor = Color.FromArgb(200, 200, 0);
                            }
                            else
                            {
                                button3.BackColor = Color.FromArgb(0, 0, 200);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #29
0
        /// <summary>
        /// /// <summary>
        /// 注册对象映射
        /// </summary>
        /// </summary>
        public void Register()
        {
            var cfg = new MapperConfigurationExpression();

            cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly || p.GetMethod.IsPrivate || p.GetMethod.IsFamilyAndAssembly || p.GetMethod.IsFamily || p.GetMethod.IsFamilyOrAssembly;

            #region Sys

            #region User

            cfg.CreateMap <UserEntity, User>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <User, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <User, AdminUser>();
            //admin user
            cfg.CreateMap <AdminUser, AdminUserDto>();
            cfg.CreateMap <AdminUserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <AdminUserDto, EditAdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <EditAdminUserViewModel, AdminUserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <AdminUserCmdDto, AdminUser>();
            cfg.CreateMap <UserViewModel, AdminUserViewModel>();
            cfg.CreateMap <User, UserDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUser)c).MapTo <AdminUserDto>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserCmdDto, User>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                User user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserCmdDto)c).MapTo <AdminUser>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserDto, UserViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserViewModel user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserDto)c).MapTo <AdminUserViewModel>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserDto, EditAdminUserViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                EditAdminUserViewModel user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserDto)c).MapTo <EditAdminUserViewModel>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserViewModel, UserCmdDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserCmdDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserViewModel)c).MapTo <AdminUserCmdDto>();
                    break;
                }
                return(user);
            });
            cfg.CreateMap <UserFilterViewModel, UserFilterDto>();
            cfg.CreateMap <AdminUserFilterViewModel, AdminUserFilterDto>();
            cfg.CreateMap <ModifyPasswordViewModel, ModifyPasswordCmdDto>();
            cfg.CreateMap <ModifyPasswordCmdDto, ModifyUserPassword>();

            #endregion

            #region Role

            cfg.CreateMap <RoleEntity, Role>().ForMember(r => r.Parent, r => r.ResolveUsing(re => { return(Role.CreateRole(re.Parent)); }));
            cfg.CreateMap <Role, RoleEntity>().ForMember(re => re.Parent, r => r.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <Role, RoleDto>();
            cfg.CreateMap <RoleDto, Role>();
            cfg.CreateMap <RoleCmdDto, Role>();
            cfg.CreateMap <RoleViewModel, RoleCmdDto>();
            cfg.CreateMap <RoleDto, RoleViewModel>();
            cfg.CreateMap <RoleFilterViewModel, RoleFilterDto>();
            cfg.CreateMap <ModifyRoleAuthorizeCmdDto, ModifyRoleAuthorize>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))));

            #endregion

            #region AuthorityGroup

            cfg.CreateMap <AuthorityGroup, AuthorityGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <AuthorityGroupEntity, AuthorityGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityGroup.CreateAuthorityGroup(re.Parent)); }));
            cfg.CreateMap <AuthorityGroup, AuthorityGroupDto>();
            cfg.CreateMap <AuthorityGroupCmdDto, AuthorityGroup>();
            cfg.CreateMap <AuthorityGroupDto, AuthorityGroupViewModel>();
            cfg.CreateMap <AuthorityGroupDto, EditAuthorityGroupViewModel>();
            cfg.CreateMap <EditAuthorityGroupViewModel, AuthorityGroupCmdDto>();
            cfg.CreateMap <EditAuthorityGroupViewModel, SaveAuthorityGroupCmdDto>().ForMember(a => a.AuthorityGroup, a => a.MapFrom(c => c));

            #endregion

            #region Authority

            cfg.CreateMap <Authority, AuthorityEntity>().ForMember(c => c.AuthGroup, re => re.MapFrom(rs => rs.AuthGroup.SysNo));
            cfg.CreateMap <AuthorityEntity, Authority>().ForMember(c => c.AuthGroup, re => re.ResolveUsing(rs => { return(AuthorityGroup.CreateAuthorityGroup(rs.AuthGroup)); }));
            cfg.CreateMap <Authority, AuthorityDto>();
            cfg.CreateMap <AuthorityCmdDto, Authority>();
            cfg.CreateMap <AuthorityDto, AuthorityViewModel>();
            cfg.CreateMap <AuthorityDto, EditAuthorityViewModel>();
            cfg.CreateMap <AuthorityViewModel, AuthorityCmdDto>();
            cfg.CreateMap <EditAuthorityViewModel, AuthorityCmdDto>();
            cfg.CreateMap <AuthorityFilterViewModel, AuthorityFilterDto>();
            cfg.CreateMap <AuthorityDto, AuthorizationAuthorityViewModel>();

            #endregion

            #region AuthorityOperationGroup

            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.SysNo));
            cfg.CreateMap <AuthorityOperationGroupEntity, AuthorityOperationGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Root)); }));
            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupDto>();
            cfg.CreateMap <AuthorityOperationGroupCmdDto, AuthorityOperationGroup>();
            cfg.CreateMap <AuthorityOperationGroupDto, AuthorityOperationGroupViewModel>();
            cfg.CreateMap <AuthorityOperationGroupDto, EditAuthorityOperationGroupViewModel>();
            cfg.CreateMap <EditAuthorityOperationGroupViewModel, AuthorityOperationGroupCmdDto>();

            #endregion

            #region AuthorityOperation

            cfg.CreateMap <AuthorityOperation, AuthorityOperationEntity>().ForMember(c => c.Group, re => re.MapFrom(rs => rs.Group.SysNo));
            cfg.CreateMap <AuthorityOperationEntity, AuthorityOperation>().ForMember(c => c.Group, re => re.ResolveUsing(rs => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(rs.Group)); }));
            cfg.CreateMap <AuthorityOperation, AuthorityOperationDto>();
            cfg.CreateMap <AuthorityOperationCmdDto, AuthorityOperation>();
            cfg.CreateMap <AuthorityOperationDto, AuthorityOperationViewModel>();
            cfg.CreateMap <AuthorityOperationDto, EditAuthorityOperationViewModel>();
            cfg.CreateMap <EditAuthorityOperationViewModel, AuthorityOperationCmdDto>();
            cfg.CreateMap <AuthorityOperationFilterViewModel, AuthorityOperationFilterDto>();

            #endregion

            #region AuthorityBinOperation

            cfg.CreateMap <ModifyAuthorityBindAuthorityOperationCmdDto, ModifyAuthorityAndAuthorityOperationBind>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))));
            cfg.CreateMap <AuthorityBindOperationFilterViewModel, AuthorityBindOperationFilterDto>();
            cfg.CreateMap <AuthorityOperationBindAuthorityFilterViewModel, AuthorityOperationBindAuthorityFilterDto>();

            #endregion

            #region UserAuthorize

            cfg.CreateMap <UserAuthorizeCmdDto, UserAuthorize>();
            cfg.CreateMap <UserAuthorize, UserAuthorizeEntity>().ForMember(c => c.User, ce => ce.MapFrom(cs => cs.User.SysNo)).ForMember(c => c.Authority, ce => ce.MapFrom(cs => cs.Authority.Code));
            cfg.CreateMap <UserAuthorizeEntity, UserAuthorize>().ForMember(c => c.User, ce => ce.ResolveUsing(cs => { return(User.CreateUser(cs.User)); })).ForMember(c => c.Authority, ce => ce.ResolveUsing(cs => Authority.CreateAuthority(cs.Authority)));

            #endregion

            #region Authentication

            cfg.CreateMap <AuthenticationCmdDto, Authentication>();

            #endregion

            #endregion

            #region Task

            #region JobGroup

            cfg.CreateMap <JobGroup, JobGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.Code)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.Code));
            cfg.CreateMap <JobGroupEntity, JobGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Root)); }));
            cfg.CreateMap <JobGroup, JobGroupDto>();
            cfg.CreateMap <JobGroupCmdDto, JobGroup>();
            cfg.CreateMap <JobGroupDto, JobGroupViewModel>();
            cfg.CreateMap <JobGroupViewModel, JobGroupCmdDto>();

            #endregion

            #region ServerNode

            cfg.CreateMap <ServerNode, ServerNodeEntity>();
            cfg.CreateMap <ServerNodeEntity, ServerNode>();
            cfg.CreateMap <ServerNode, ServerNodeDto>();
            cfg.CreateMap <ServerNodeCmdDto, ServerNode>();
            cfg.CreateMap <ServerNodeDto, ServerNodeViewModel>();
            cfg.CreateMap <ServerNodeViewModel, ServerNodeCmdDto>();
            cfg.CreateMap <ServerNodeFilterViewModel, ServerNodeFilterDto>();
            //cfg.CreateMap<ServerNode, TaskService>().ForMember(c => c.Remark, c => c.MapFrom(cs => cs.Description)).ForMember(c => c.Thread, c => c.ResolveUsing<ThreadConfig>(cs =>
            //{
            //    return new ThreadConfig()
            //    {
            //        ThreadCount = cs.ThreadCount,
            //        ThreadPriority = cs.ThreadPriority
            //    };
            //}));

            #endregion

            #region Job

            cfg.CreateMap <Job, JobEntity>().ForMember(r => r.Group, re => re.MapFrom(rs => rs.Group.Code));
            cfg.CreateMap <JobEntity, Job>().ForMember(r => r.Group, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Group)); }));
            cfg.CreateMap <Job, JobDto>();
            cfg.CreateMap <JobCmdDto, Job>();
            cfg.CreateMap <JobDto, JobViewModel>();
            cfg.CreateMap <JobViewModel, JobCmdDto>();
            cfg.CreateMap <JobFilterViewModel, JobFilterDto>();
            //cfg.CreateMap<Job, TaskJob>().ConvertUsing(c =>
            //{
            //    if (c == null)
            //    {
            //        return null;
            //    }
            //    TaskJob job = new TaskJob()
            //    {
            //        Id = c.Id,
            //        Name = c.Name,
            //        AppType = c.Type,
            //        RunType = c.RunType,
            //        State = c.State,
            //        Group = new TaskJobGroup()
            //        {
            //            Id = c.Group?.Code,
            //            Name = c.Group?.Name
            //        }
            //    };
            //    switch (c.Type)
            //    {
            //        case JobApplicationType.本地应用:
            //            job.ApplicationJob = new ApplicationJob()
            //            {
            //                ApplicationPath = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.自定义任务:
            //            job.CustomerJob = new CustomerJob()
            //            {
            //                JobFilePath = c.JobFileName,
            //                JobTypeFullName = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.远程任务:
            //            job.RemoteJob = new RemoteJob()
            //            {
            //                RemoteUrl = c.JobPath
            //            };
            //            break;
            //    }
            //    return job;
            //});
            //cfg.CreateMap<JobDto, TaskJob>().ConvertUsing(c =>
            //{
            //    if (c == null)
            //    {
            //        return null;
            //    }
            //    TaskJob job = new TaskJob()
            //    {
            //        Id = c.Id,
            //        Name = c.Name,
            //        AppType = c.Type,
            //        RunType = c.RunType,
            //        State = c.State,
            //        Group = new TaskJobGroup()
            //        {
            //            Id = c.Group?.Code,
            //            Name = c.Group?.Name
            //        }
            //    };
            //    switch (c.Type)
            //    {
            //        case JobApplicationType.本地应用:
            //            job.ApplicationJob = new ApplicationJob()
            //            {
            //                ApplicationPath = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.自定义任务:
            //            job.CustomerJob = new CustomerJob()
            //            {
            //                JobFilePath = c.JobFileName,
            //                JobTypeFullName = c.JobPath
            //            };
            //            break;
            //        case JobApplicationType.远程任务:
            //            job.RemoteJob = new RemoteJob()
            //            {
            //                RemoteUrl = c.JobPath
            //            };
            //            break;
            //    }
            //    return job;
            //});

            #endregion

            #region JobServerHost

            cfg.CreateMap <JobServerHost, JobServerHostEntity>().ForMember(r => r.Server, re => re.MapFrom(rs => rs.Server.Id)).ForMember(r => r.Job, re => re.MapFrom(rs => rs.Job.Id));
            cfg.CreateMap <JobServerHostEntity, JobServerHost>().ForMember(r => r.Server, re => re.ResolveUsing(rs => { return(ServerNode.CreateServerNode(rs.Server)); })).ForMember(r => r.Job, re => re.ResolveUsing(rs => { return(Job.CreateJob(rs.Job)); }));
            cfg.CreateMap <JobServerHost, JobServerHostDto>();
            cfg.CreateMap <JobServerHostCmdDto, JobServerHost>();
            cfg.CreateMap <JobServerHostDto, JobServerHostViewModel>();
            cfg.CreateMap <JobServerHostViewModel, JobServerHostCmdDto>();
            cfg.CreateMap <JobServerHostFilterViewModel, JobServerHostFilterDto>();

            #endregion

            #region Trigger

            cfg.CreateMap <Trigger, TriggerEntity>().ForMember(c => c.Job, c => c.MapFrom(cs => cs.Job.Id)).ForMember(c => c.ConditionType, c => c.MapFrom(ce => ce.Condition == null ? 0 : (int)ce.Condition.Type));
            cfg.CreateMap <Trigger, SimpleTrigger>();
            cfg.CreateMap <Trigger, ExpressionTrigger>();
            cfg.CreateMap <TriggerEntity, Trigger>().ForMember(c => c.Job, c => c.ResolveUsing(ce => Job.CreateJob(ce.Job))).ForMember(c => c.Condition, c => c.ResolveUsing(ce => TriggerCondition.CreateTriggerCondition((TaskTriggerConditionType)ce.ConditionType, ce.Id)));
            cfg.CreateMap <TriggerFilterViewModel, TriggerFilterDto>();
            cfg.CreateMap <Trigger, TaskTrigger>().ConstructUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTrigger taskTrigger = new TaskTrigger()
                {
                    Id    = c.Id,
                    Job   = c.Job?.MapTo <TaskJob>(),
                    Name  = c.Name,
                    State = c.Status,
                    Type  = c.Type,
                };
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    var simpleTaskTrigger       = ((SimpleTrigger)c).MapTo <TaskSimpleTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger);
                    break;

                case TaskTriggerType.自定义:
                    var expressionTaskTrigger   = ((ExpressionTrigger)c).MapTo <TaskExpressionTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger);
                    break;
                }
                return(taskTrigger);
            });
            cfg.CreateMap <TriggerDto, TaskTrigger>().ConstructUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTrigger taskTrigger = new TaskTrigger()
                {
                    Id    = c.Id,
                    Job   = c.Job?.MapTo <TaskJob>(),
                    Name  = c.Name,
                    State = c.Status,
                    Type  = c.Type,
                };
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    var simpleTaskTrigger       = ((SimpleTriggerDto)c).MapTo <TaskSimpleTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger);
                    break;

                case TaskTriggerType.自定义:
                    var expressionTaskTrigger   = ((ExpressionTriggerDto)c).MapTo <TaskExpressionTrigger>();
                    taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger);
                    break;
                }
                return(taskTrigger);
            });
            //simple trigger
            cfg.CreateMap <TriggerSimpleEntity, SimpleTrigger>().ForMember(c => c.Id, ce => ce.MapFrom(cs => cs.TriggerId));
            cfg.CreateMap <Trigger, TriggerSimpleEntity>();
            cfg.CreateMap <SimpleTrigger, TriggerSimpleEntity>().ForMember(c => c.TriggerId, ce => ce.MapFrom(cs => cs.Id));
            cfg.CreateMap <TriggerSimpleEntity, Trigger>().ConvertUsing(c =>
            {
                return(c.MapTo <SimpleTrigger>());
            });
            cfg.CreateMap <SimpleTrigger, SimpleTriggerDto>();
            cfg.CreateMap <SimpleTriggerCmdDto, SimpleTrigger>();
            cfg.CreateMap <SimpleTriggerDto, SimpleTriggerViewModel>();
            cfg.CreateMap <SimpleTriggerViewModel, SimpleTriggerCmdDto>();
            cfg.CreateMap <TriggerViewModel, SimpleTriggerViewModel>();
            cfg.CreateMap <SimpleTrigger, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval)));
            cfg.CreateMap <SimpleTriggerDto, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval)));

            //expression trigger
            cfg.CreateMap <ExpressionTrigger, ExpressionTriggerDto>();
            cfg.CreateMap <ExpressionTriggerCmdDto, ExpressionTrigger>();
            cfg.CreateMap <ExpressionTriggerDto, ExpressionTriggerViewModel>();
            cfg.CreateMap <ExpressionTriggerViewModel, ExpressionTriggerCmdDto>();
            cfg.CreateMap <TriggerViewModel, ExpressionTriggerViewModel>();
            cfg.CreateMap <ExpressionTrigger, TaskExpressionTrigger>();
            cfg.CreateMap <ExpressionTriggerDto, TaskExpressionTrigger>();

            //expression item
            cfg.CreateMap <ExpressionItem, TriggerExpressionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue)));
            cfg.CreateMap <TriggerExpressionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(",")));
            cfg.CreateMap <ExpressionItem, ExpressionItemDto>();
            cfg.CreateMap <ExpressionItemCmdDto, ExpressionItem>();
            cfg.CreateMap <ExpressionItemDto, ExpressionItemViewModel>();
            cfg.CreateMap <ExpressionItemViewModel, ExpressionItemCmdDto>();
            cfg.CreateMap <ExpressionItem, TaskExpressionItem>();
            cfg.CreateMap <ExpressionItemDto, TaskExpressionItem>();
            cfg.CreateMap <Trigger, TriggerDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerDto triggerDto = null;
                switch (c.Type)
                {
                case TaskTriggerType.简单:
                    triggerDto = ((SimpleTrigger)c).MapTo <SimpleTriggerDto>();
                    break;

                case TaskTriggerType.自定义:
                    triggerDto = ((ExpressionTrigger)c).MapTo <ExpressionTriggerDto>();
                    break;
                }
                return(triggerDto);
            });
            cfg.CreateMap <TriggerCmdDto, Trigger>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                Trigger trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerCmdDto)t).MapTo <SimpleTrigger>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerCmdDto)t).MapTo <ExpressionTrigger>();
                    break;
                }
                return(trigger);
            });
            cfg.CreateMap <TriggerDto, TriggerViewModel>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                TriggerViewModel trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerDto)t).MapTo <SimpleTriggerViewModel>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerDto)t).MapTo <ExpressionTriggerViewModel>();
                    break;
                }
                return(trigger);
            });
            cfg.CreateMap <TriggerViewModel, TriggerCmdDto>().ConvertUsing(t =>
            {
                if (t == null)
                {
                    return(null);
                }
                TriggerCmdDto trigger = null;
                switch (t.Type)
                {
                case TaskTriggerType.简单:
                    trigger = ((SimpleTriggerViewModel)t).MapTo <SimpleTriggerCmdDto>();
                    break;

                case TaskTriggerType.自定义:
                    trigger = ((ExpressionTriggerViewModel)t).MapTo <ExpressionTriggerCmdDto>();
                    break;

                default:
                    var newTrigger = new SimpleTriggerViewModel()
                    {
                        Id             = t.Id,
                        Name           = t.Name,
                        Type           = TaskTriggerType.简单,
                        StartTime      = t.StartTime,
                        Description    = t.Description,
                        ApplyTo        = t.ApplyTo,
                        Condition      = t.Condition,
                        EndTime        = t.EndTime,
                        FireTotalCount = t.FireTotalCount,
                        Job            = t.Job,
                        MisFireType    = t.MisFireType,
                        NextFireTime   = t.NextFireTime,
                        PrevFireTime   = t.PrevFireTime,
                        Priority       = t.Priority,
                        Status         = t.Status
                    };
                    trigger = newTrigger.MapTo <SimpleTriggerCmdDto>();
                    break;
                }
                return(trigger);
            });

            #endregion

            #region TriggerCondition

            //年计划
            cfg.CreateMap <TriggerAnnualConditionEntity, AnnualConditionDay>();
            cfg.CreateMap <AnnualConditionDay, TriggerAnnualConditionEntity>();

            cfg.CreateMap <TriggerAnnualCondition, TriggerAnnualConditionDto>();
            cfg.CreateMap <TriggerAnnualConditionDto, TriggerAnnualConditionViewModel>();
            cfg.CreateMap <TriggerAnnualConditionViewModel, TriggerAnnualConditionCmdDto>();
            cfg.CreateMap <TriggerAnnualConditionCmdDto, TriggerAnnualCondition>();

            cfg.CreateMap <AnnualConditionDay, AnnualConditionDayDto>();
            cfg.CreateMap <AnnualConditionDayDto, AnnualConditionDayViewModel>();
            cfg.CreateMap <AnnualConditionDayViewModel, AnnualConditionDayCmdDto>();
            cfg.CreateMap <AnnualConditionDayCmdDto, AnnualConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerAnnualConditionDto, TaskTriggerAnnualCondition>();
            cfg.CreateMap <TriggerAnnualCondition, TaskTriggerAnnualCondition>();
            cfg.CreateMap <AnnualConditionDayDto, TaskAnnualConditionDay>();
            cfg.CreateMap <AnnualConditionDay, TaskAnnualConditionDay>();

            //完整日期计划
            cfg.CreateMap <TriggerFullDateConditionEntity, FullDateConditionDate>();
            cfg.CreateMap <FullDateConditionDate, TriggerFullDateConditionEntity>();

            cfg.CreateMap <TriggerFullDateCondition, TriggerFullDateConditionDto>();
            cfg.CreateMap <TriggerFullDateConditionDto, TriggerFullDateConditionViewModel>();
            cfg.CreateMap <TriggerFullDateConditionViewModel, TriggerFullDateConditionCmdDto>();
            cfg.CreateMap <TriggerFullDateConditionCmdDto, TriggerFullDateCondition>();

            cfg.CreateMap <FullDateConditionDate, FullDateConditionDateDto>();
            cfg.CreateMap <FullDateConditionDateDto, FullDateConditionDateViewModel>();
            cfg.CreateMap <FullDateConditionDateViewModel, FullDateConditionDateCmdDto>();
            cfg.CreateMap <FullDateConditionDateCmdDto, FullDateConditionDate>();

            //转化为任务对象
            cfg.CreateMap <TriggerFullDateConditionDto, TaskTriggerFullDateCondition>();
            cfg.CreateMap <TriggerFullDateCondition, TaskTriggerFullDateCondition>();
            cfg.CreateMap <FullDateConditionDateDto, TaskFullDateConditionDate>();
            cfg.CreateMap <FullDateConditionDate, TaskFullDateConditionDate>();

            //月份日期
            cfg.CreateMap <TriggerMonthlyConditionEntity, MonthConditionDay>();
            cfg.CreateMap <MonthConditionDay, TriggerMonthlyConditionEntity>();

            cfg.CreateMap <TriggerMonthlyCondition, TriggerMonthlyConditionDto>();
            cfg.CreateMap <TriggerMonthlyConditionDto, TriggerMonthlyConditionViewModel>();
            cfg.CreateMap <TriggerMonthlyConditionViewModel, TriggerMonthlyConditionCmdDto>();
            cfg.CreateMap <TriggerMonthlyConditionCmdDto, TriggerMonthlyCondition>();

            cfg.CreateMap <MonthConditionDay, MonthConditionDayDto>();
            cfg.CreateMap <MonthConditionDayDto, MonthConditionDayViewModel>();
            cfg.CreateMap <MonthConditionDayViewModel, MonthConditionDayCmdDto>();
            cfg.CreateMap <MonthConditionDayCmdDto, MonthConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerMonthlyConditionDto, TaskTriggerMonthlyCondition>();
            cfg.CreateMap <TriggerMonthlyCondition, TaskTriggerMonthlyCondition>();
            cfg.CreateMap <MonthConditionDayDto, TaskMonthConditionDay>();
            cfg.CreateMap <MonthConditionDay, TaskMonthConditionDay>();

            //星期日期
            cfg.CreateMap <TriggerWeeklyConditionEntity, WeeklyConditionDay>();
            cfg.CreateMap <WeeklyConditionDay, TriggerWeeklyConditionEntity>();

            cfg.CreateMap <TriggerWeeklyCondition, TriggerWeeklyConditionDto>();
            cfg.CreateMap <TriggerWeeklyConditionDto, TriggerWeeklyConditionViewModel>();
            cfg.CreateMap <TriggerWeeklyConditionViewModel, TriggerWeeklyConditionCmdDto>();
            cfg.CreateMap <TriggerWeeklyConditionCmdDto, TriggerWeeklyCondition>();

            cfg.CreateMap <WeeklyConditionDay, WeeklyConditionDayDto>();
            cfg.CreateMap <WeeklyConditionDayDto, WeeklyConditionDayViewModel>();
            cfg.CreateMap <WeeklyConditionDayViewModel, WeeklyConditionDayCmdDto>();
            cfg.CreateMap <WeeklyConditionDayCmdDto, WeeklyConditionDay>();

            //转化为任务对象
            cfg.CreateMap <TriggerWeeklyConditionDto, TaskTriggerWeeklyCondition>();
            cfg.CreateMap <TriggerWeeklyCondition, TaskTriggerWeeklyCondition>();
            cfg.CreateMap <WeeklyConditionDayDto, TaskWeeklyConditionDay>();
            cfg.CreateMap <WeeklyConditionDay, TaskWeeklyConditionDay>();

            //表达式
            cfg.CreateMap <TriggerExpressionConditionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(","))).ForMember(c => c.Option, c => c.MapFrom(cs => cs.ConditionOption));
            cfg.CreateMap <ExpressionItem, TriggerExpressionConditionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue))).ForMember(c => c.ConditionOption, c => c.MapFrom(cs => cs.Option));

            cfg.CreateMap <TriggerExpressionCondition, TriggerExpressionConditionDto>();
            cfg.CreateMap <TriggerExpressionConditionDto, TriggerExpressionConditionViewModel>();
            cfg.CreateMap <TriggerExpressionConditionViewModel, TriggerExpressionConditionCmdDto>();
            cfg.CreateMap <TriggerExpressionConditionCmdDto, TriggerExpressionCondition>();

            //转化为任务对象
            cfg.CreateMap <TriggerExpressionConditionDto, TaskTriggerExpressionCondition>();
            cfg.CreateMap <TriggerExpressionCondition, TaskTriggerExpressionCondition>();

            //时间段
            cfg.CreateMap <TriggerDailyConditionEntity, TriggerCondition>();
            cfg.CreateMap <TriggerCondition, TriggerDailyConditionEntity>();
            cfg.CreateMap <TriggerDailyConditionEntity, TriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionEntity>();

            cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionDto>();
            cfg.CreateMap <TriggerDailyConditionDto, TriggerDailyConditionViewModel>();
            cfg.CreateMap <TriggerDailyConditionViewModel, TriggerDailyConditionCmdDto>();
            cfg.CreateMap <TriggerDailyConditionCmdDto, TriggerDailyCondition>();

            //转化为任务对象
            cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>();
            cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>();

            cfg.CreateMap <TriggerCondition, TriggerConditionDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionDto triggerConditionDto = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionDto = ((TriggerFullDateCondition)c).MapTo <TriggerFullDateConditionDto>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionDto = ((TriggerWeeklyCondition)c).MapTo <TriggerWeeklyConditionDto>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionDto = ((TriggerDailyCondition)c).MapTo <TriggerDailyConditionDto>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionDto = ((TriggerAnnualCondition)c).MapTo <TriggerAnnualConditionDto>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionDto = ((TriggerMonthlyCondition)c).MapTo <TriggerMonthlyConditionDto>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionDto = ((TriggerExpressionCondition)c).MapTo <TriggerExpressionConditionDto>();
                    break;
                }
                return(triggerConditionDto);
            });

            cfg.CreateMap <TriggerConditionDto, TriggerConditionViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionViewModel triggerConditionViewModel = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionViewModel = ((TriggerFullDateConditionDto)c).MapTo <TriggerFullDateConditionViewModel>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionViewModel = ((TriggerWeeklyConditionDto)c).MapTo <TriggerWeeklyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionViewModel = ((TriggerDailyConditionDto)c).MapTo <TriggerDailyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionViewModel = ((TriggerAnnualConditionDto)c).MapTo <TriggerAnnualConditionViewModel>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionViewModel = ((TriggerMonthlyConditionDto)c).MapTo <TriggerMonthlyConditionViewModel>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionViewModel = ((TriggerExpressionConditionDto)c).MapTo <TriggerExpressionConditionViewModel>();
                    break;
                }
                return(triggerConditionViewModel);
            });

            cfg.CreateMap <TriggerConditionViewModel, TriggerConditionCmdDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerConditionCmdDto triggerConditionCmdDto = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerConditionCmdDto = ((TriggerFullDateConditionViewModel)c).MapTo <TriggerFullDateConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerConditionCmdDto = ((TriggerWeeklyConditionViewModel)c).MapTo <TriggerWeeklyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerConditionCmdDto = ((TriggerDailyConditionViewModel)c).MapTo <TriggerDailyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerConditionCmdDto = ((TriggerAnnualConditionViewModel)c).MapTo <TriggerAnnualConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerConditionCmdDto = ((TriggerMonthlyConditionViewModel)c).MapTo <TriggerMonthlyConditionCmdDto>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerConditionCmdDto = ((TriggerExpressionConditionViewModel)c).MapTo <TriggerExpressionConditionCmdDto>();
                    break;
                }
                return(triggerConditionCmdDto);
            });

            cfg.CreateMap <TriggerConditionCmdDto, TriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TriggerCondition triggerCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    triggerCondition = ((TriggerFullDateConditionCmdDto)c).MapTo <TriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    triggerCondition = ((TriggerWeeklyConditionCmdDto)c).MapTo <TriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    triggerCondition = ((TriggerDailyConditionCmdDto)c).MapTo <TriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    triggerCondition = ((TriggerAnnualConditionCmdDto)c).MapTo <TriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    triggerCondition = ((TriggerMonthlyConditionCmdDto)c).MapTo <TriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    triggerCondition = ((TriggerExpressionConditionCmdDto)c).MapTo <TriggerExpressionCondition>();
                    break;
                }
                return(triggerCondition);
            });
            cfg.CreateMap <TriggerConditionDto, TaskTriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTriggerCondition taskCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    taskCondition = ((TriggerFullDateConditionDto)c).MapTo <TaskTriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    taskCondition = ((TriggerWeeklyConditionDto)c).MapTo <TaskTriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    taskCondition = ((TriggerDailyConditionDto)c).MapTo <TaskTriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    taskCondition = ((TriggerAnnualConditionDto)c).MapTo <TaskTriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    taskCondition = ((TriggerMonthlyConditionDto)c).MapTo <TaskTriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    taskCondition = ((TriggerExpressionConditionDto)c).MapTo <TaskTriggerExpressionCondition>();
                    break;
                }
                return(taskCondition);
            });
            cfg.CreateMap <TriggerCondition, TaskTriggerCondition>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                TaskTriggerCondition taskCondition = null;
                switch (c.Type)
                {
                case TaskTriggerConditionType.限制:
                    break;

                case TaskTriggerConditionType.固定日期:
                    taskCondition = ((TriggerFullDateCondition)c).MapTo <TaskTriggerFullDateCondition>();
                    break;

                case TaskTriggerConditionType.星期配置:
                    taskCondition = ((TriggerWeeklyCondition)c).MapTo <TaskTriggerWeeklyCondition>();
                    break;

                case TaskTriggerConditionType.每天时间段:
                    taskCondition = ((TriggerDailyCondition)c).MapTo <TaskTriggerDailyCondition>();
                    break;

                case TaskTriggerConditionType.每年日期:
                    taskCondition = ((TriggerAnnualCondition)c).MapTo <TaskTriggerAnnualCondition>();
                    break;

                case TaskTriggerConditionType.每月日期:
                    taskCondition = ((TriggerMonthlyCondition)c).MapTo <TaskTriggerMonthlyCondition>();
                    break;

                case TaskTriggerConditionType.自定义:
                    taskCondition = ((TriggerExpressionCondition)c).MapTo <TaskTriggerExpressionCondition>();
                    break;
                }
                return(taskCondition);
            });

            #endregion

            #region TriggerServer

            cfg.CreateMap <TriggerServer, TriggerServerEntity>().ForMember(c => c.Trigger, c => c.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Server, c => c.MapFrom(cs => cs.Server.Id));
            cfg.CreateMap <TriggerServerEntity, TriggerServer>().ForMember(c => c.Trigger, c => c.ResolveUsing(cs => Trigger.CreateTrigger(cs.Trigger))).ForMember(c => c.Server, c => c.ResolveUsing(cs => ServerNode.CreateServerNode(cs.Server)));
            cfg.CreateMap <TriggerServer, TriggerServerDto>();
            cfg.CreateMap <TriggerServerCmdDto, TriggerServer>();
            cfg.CreateMap <TriggerServerDto, TriggerServerViewModel>();
            cfg.CreateMap <TriggerServerViewModel, TriggerServerCmdDto>();
            cfg.CreateMap <TriggerServerFilterViewModel, TriggerServerFilterDto>();

            #endregion

            #region ExecuteLog

            cfg.CreateMap <ExecuteLog, ExecuteLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id));
            cfg.CreateMap <ExecuteLogEntity, ExecuteLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); }));
            cfg.CreateMap <ExecuteLog, ExecuteLogDto>();
            cfg.CreateMap <ExecuteLogCmdDto, ExecuteLog>();
            cfg.CreateMap <ExecuteLogDto, ExecuteLogViewModel>();
            cfg.CreateMap <ExecuteLogViewModel, ExecuteLogCmdDto>();
            cfg.CreateMap <ExecuteLogFilterViewModel, ExecuteLogFilterDto>();

            //任务对象转换
            cfg.CreateMap <TaskJobExecuteLog, ExecuteLogCmdDto>()
            .ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(new JobCmdDto()
                {
                    Id = cs.Job?.Id
                }); }))
            .ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(new TriggerCmdDto()
                {
                    Id = cs.Trigger?.Id
                }); }));

            #endregion

            #region ErrorLog

            cfg.CreateMap <ErrorLog, ErrorLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id));;
            cfg.CreateMap <ErrorLogEntity, ErrorLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); }));
            cfg.CreateMap <ErrorLog, ErrorLogDto>();
            cfg.CreateMap <ErrorLogCmdDto, ErrorLog>();
            cfg.CreateMap <ErrorLogDto, ErrorLogViewModel>();
            cfg.CreateMap <ErrorLogViewModel, ErrorLogCmdDto>();
            cfg.CreateMap <ErrorLogFilterViewModel, ErrorLogFilterDto>();

            #endregion

            #region JobFile

            cfg.CreateMap <JobFile, JobFileEntity>();
            cfg.CreateMap <JobFileEntity, JobFile>();
            cfg.CreateMap <JobFile, JobFileDto>();
            cfg.CreateMap <JobFileCmdDto, JobFile>();
            cfg.CreateMap <JobFileDto, JobFileViewModel>();
            cfg.CreateMap <JobFileViewModel, JobFileCmdDto>();

            #endregion

            #endregion

            AutoMapper.Mapper.Initialize(cfg);
        }
コード例 #30
0
		public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request)
		{
			// create new group
			var authorityGroup = new AuthorityGroup();

			// set properties from request
			var assembler = new AuthorityGroupAssembler();
			assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext);

			// save
			PersistenceContext.Lock(authorityGroup, DirtyState.New);
			PersistenceContext.SynchState();

			return new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup));
		}
コード例 #31
0
 public AuthorityGroup Update(AuthorityGroup AuthorityGroup)
 {
     return(this.AuthorityGroupRepository.Update(AuthorityGroup));
 }
コード例 #32
0
 public IActionResult Insert([FromBody] AuthorityGroup AuthorityGroup)
 {
     return(Ok(AuthorityGroupService.Insert(AuthorityGroup)));
 }
コード例 #33
0
 public IActionResult Update([FromBody] AuthorityGroup AuthorityGroup)
 {
     return(Ok(AuthorityGroupService.Update(AuthorityGroup)));
 }
コード例 #34
0
ファイル: AuthorityGroupBroker.cs プロジェクト: nhannd/Xian
		public int GetUserCountForGroup(AuthorityGroup group)
		{
			var q = new HqlQuery("select count(elements(g.Users)) from AuthorityGroup g");
			q.Conditions.Add(new HqlCondition("g = ?", group));
			return (int)ExecuteHqlUnique<long>(q);
		}
コード例 #35
0
ファイル: UserTests.cs プロジェクト: nhannd/Xian
		public void Test_CreateNewUser_WithExplicitPasswordAndGroups()
		{
			DateTime now = DateTime.Now;
			DateTime tomorrow = now + TimeSpan.FromDays(1);
			UserInfo userInfo = new UserInfo(
				"foo",
				"Mr. Foo",
                "*****@*****.**",                
				null,
				null);

			AuthorityGroup group1 = new AuthorityGroup();
			AuthorityGroup group2 = new AuthorityGroup();
			HashedSet<AuthorityGroup> groups = new HashedSet<AuthorityGroup>();
			groups.Add(group1);
			groups.Add(group2);

			User user = User.CreateNewUser(userInfo, Password.CreatePassword(DefaultPassword, tomorrow), groups);

			Assert.AreEqual(userInfo.UserName, user.UserName);
			Assert.AreEqual(userInfo.DisplayName, user.DisplayName);
			Assert.AreEqual(true, user.Enabled);	// enabled by default
			Assert.IsTrue(RoughlyEqual(now, user.CreationTime));
			Assert.IsNull(user.LastLoginTime);	// never logged in

			// password
			Assert.IsNotNull(user.Password);
			Assert.IsTrue(user.Password.Verify(DefaultPassword));	// initial password should work

			// password expiry time
			Assert.IsTrue(RoughlyEqual(tomorrow, user.Password.ExpiryTime));

			// groups
			Assert.AreEqual(2, user.AuthorityGroups.Count);
			Assert.IsTrue(user.AuthorityGroups.ContainsAll(groups));
		}
コード例 #36
0
		public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request)
		{
			Platform.CheckForNullReference(request, "request");
			Platform.CheckMemberIsSet(request.AuthorityGroupDetail, "AuthorityGroupDetail");

			if (request.AuthorityGroupDetail.BuiltIn)
				throw new RequestValidationException(SR.MessageCannotManageBuiltInAuthorityGroups);

			// create new group
			var authorityGroup = new AuthorityGroup();

			// set properties from request
			var assembler = new AuthorityGroupAssembler();
			assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext);

			// save
			PersistenceContext.Lock(authorityGroup, DirtyState.New);
			PersistenceContext.SynchState();

			return new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup));
		}
コード例 #37
0
 public AuthorityGroup Insert(AuthorityGroup AuthorityGroup)
 {
     return(this.AuthorityGroupRepository.Insert(AuthorityGroup));
 }
コード例 #38
0
        /// <summary>
        /// /// <summary>
        /// 注册对象映射
        /// </summary>
        /// </summary>
        public void Register()
        {
            var cfg = new MapperConfigurationExpression();

            cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly || p.GetMethod.IsPrivate || p.GetMethod.IsFamilyAndAssembly || p.GetMethod.IsFamily || p.GetMethod.IsFamilyOrAssembly;

            #region Sys

            #region User

            cfg.CreateMap <UserEntity, User>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <User, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <User, AdminUser>();
            //admin user
            cfg.CreateMap <AdminUser, AdminUserDto>();
            cfg.CreateMap <AdminUserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            cfg.CreateMap <AdminUserViewModel, AdminUserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            cfg.CreateMap <AdminUserCmdDto, AdminUser>();
            cfg.CreateMap <UserViewModel, AdminUserViewModel>();

            cfg.CreateMap <User, UserDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUser)c).MapTo <AdminUserDto>();
                    break;
                }
                return(user);
            });

            cfg.CreateMap <UserCmdDto, User>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                User user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserCmdDto)c).MapTo <AdminUser>();
                    break;
                }
                return(user);
            });

            cfg.CreateMap <UserDto, UserViewModel>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserViewModel user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserDto)c).MapTo <AdminUserViewModel>();
                    break;
                }
                return(user);
            });

            cfg.CreateMap <UserViewModel, UserCmdDto>().ConvertUsing(c =>
            {
                if (c == null)
                {
                    return(null);
                }
                UserCmdDto user = null;
                switch (c.UserType)
                {
                case UserType.管理账户:
                    user = ((AdminUserViewModel)c).MapTo <AdminUserCmdDto>();
                    break;
                }
                return(user);
            });

            //cfg.CreateMap<User, UserDto>();
            //cfg.CreateMap<UserEntity, AdminUser>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            //cfg.CreateMap<AdminUser, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); ;
            //cfg.CreateMap<AdminUser, UserDto>();
            //cfg.CreateMap<AdminUser, AdminUserDto>().ForMember(a => a.User, a => a.MapFrom(c => c));
            //cfg.CreateMap<UserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ));
            //cfg.CreateMap<AdminUserDto, AdminUserViewModel>().ConvertUsing(r =>
            //{
            //    var viewModel = r.User.MapTo<AdminUserViewModel>();
            //    viewModel.Roles = (r.Roles ?? new List<RoleDto>(0)).Select(c => c.MapTo<RoleViewModel>()).ToList();
            //    return viewModel;
            //});
            //cfg.CreateMap<ModifyPasswordViewModel, ModifyPasswordCmdDto>();
            //cfg.CreateMap<AdminUserViewModel, UserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ)));
            //cfg.CreateMap<UserCmdDto, AdminUser>();

            cfg.CreateMap <UserFilterViewModel, UserFilterDto>();
            cfg.CreateMap <AdminUserFilterViewModel, AdminUserFilterDto>();

            cfg.CreateMap <ModifyPasswordViewModel, ModifyPasswordCmdDto>();
            cfg.CreateMap <ModifyPasswordCmdDto, ModifyUserPassword>();

            #endregion

            #region Role

            cfg.CreateMap <RoleEntity, Role>().ForMember(r => r.Parent, r => r.ResolveUsing(re => { return(Role.CreateRole(re.Parent)); }));
            cfg.CreateMap <Role, RoleEntity>().ForMember(re => re.Parent, r => r.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <Role, RoleDto>();
            cfg.CreateMap <RoleDto, Role>();
            cfg.CreateMap <RoleCmdDto, Role>();
            cfg.CreateMap <RoleViewModel, RoleCmdDto>();
            cfg.CreateMap <RoleDto, RoleViewModel>();
            cfg.CreateMap <RoleFilterViewModel, RoleFilterDto>();
            cfg.CreateMap <ModifyRoleAuthorizeCmdDto, ModifyRoleAuthorize>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>()))));

            #endregion

            #region AuthorityGroup

            cfg.CreateMap <AuthorityGroup, AuthorityGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo));
            cfg.CreateMap <AuthorityGroupEntity, AuthorityGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityGroup.CreateAuthorityGroup(re.Parent)); }));
            cfg.CreateMap <AuthorityGroup, AuthorityGroupDto>();
            cfg.CreateMap <AuthorityGroupCmdDto, AuthorityGroup>();
            cfg.CreateMap <AuthorityGroupDto, AuthorityGroupViewModel>();
            cfg.CreateMap <AuthorityGroupViewModel, AuthorityGroupCmdDto>();
            cfg.CreateMap <AuthorityGroupViewModel, SaveAuthorityGroupCmdDto>().ForMember(a => a.AuthorityGroup, a => a.MapFrom(c => c));

            #endregion

            #region Authority

            cfg.CreateMap <Authority, AuthorityEntity>().ForMember(c => c.AuthGroup, re => re.MapFrom(rs => rs.AuthGroup.SysNo));
            cfg.CreateMap <AuthorityEntity, Authority>().ForMember(c => c.AuthGroup, re => re.ResolveUsing(rs => { return(AuthorityGroup.CreateAuthorityGroup(rs.AuthGroup)); }));
            cfg.CreateMap <Authority, AuthorityDto>();
            cfg.CreateMap <AuthorityCmdDto, Authority>();
            cfg.CreateMap <AuthorityDto, AuthorityViewModel>();
            cfg.CreateMap <AuthorityViewModel, AuthorityCmdDto>();
            cfg.CreateMap <AuthorityFilterViewModel, AuthorityFilterDto>();
            cfg.CreateMap <AuthorityDto, AuthorizationAuthorityViewModel>();

            #endregion

            #region AuthorityOperationGroup

            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.SysNo));
            cfg.CreateMap <AuthorityOperationGroupEntity, AuthorityOperationGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Root)); }));
            cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupDto>();
            cfg.CreateMap <AuthorityOperationGroupCmdDto, AuthorityOperationGroup>();
            cfg.CreateMap <AuthorityOperationGroupDto, AuthorityOperationGroupViewModel>();
            cfg.CreateMap <AuthorityOperationGroupViewModel, AuthorityOperationGroupCmdDto>();

            #endregion

            #region AuthorityOperation

            cfg.CreateMap <AuthorityOperation, AuthorityOperationEntity>().ForMember(c => c.Group, re => re.MapFrom(rs => rs.Group.SysNo));
            cfg.CreateMap <AuthorityOperationEntity, AuthorityOperation>().ForMember(c => c.Group, re => re.ResolveUsing(rs => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(rs.Group)); }));
            cfg.CreateMap <AuthorityOperation, AuthorityOperationDto>();
            cfg.CreateMap <AuthorityOperationCmdDto, AuthorityOperation>();
            cfg.CreateMap <AuthorityOperationDto, AuthorityOperationViewModel>();
            cfg.CreateMap <AuthorityOperationViewModel, AuthorityOperationCmdDto>();
            cfg.CreateMap <AuthorityOperationFilterViewModel, AuthorityOperationFilterDto>();

            #endregion

            #region AuthorityBinOperation

            cfg.CreateMap <ModifyAuthorityBindAuthorityOperationCmdDto, ModifyAuthorityAndAuthorityOperationBind>()
            .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))))
            .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>()))));
            cfg.CreateMap <AuthorityBindOperationFilterViewModel, AuthorityBindOperationFilterDto>();
            cfg.CreateMap <AuthorityOperationBindAuthorityFilterViewModel, AuthorityOperationBindAuthorityFilterDto>();

            #endregion

            #region UserAuthorize

            cfg.CreateMap <UserAuthorizeCmdDto, UserAuthorize>();
            cfg.CreateMap <UserAuthorize, UserAuthorizeEntity>().ForMember(c => c.User, ce => ce.MapFrom(cs => cs.User.SysNo)).ForMember(c => c.Authority, ce => ce.MapFrom(cs => cs.Authority.Code));
            cfg.CreateMap <UserAuthorizeEntity, UserAuthorize>().ForMember(c => c.User, ce => ce.ResolveUsing(cs => { return(User.CreateUser(cs.User)); })).ForMember(c => c.Authority, ce => ce.ResolveUsing(cs => Authority.CreateAuthority(cs.Authority)));

            #endregion

            #region Authentication

            cfg.CreateMap <AuthenticationCmdDto, Authentication>();

            #endregion

            #endregion

            AutoMapper.Mapper.Initialize(cfg);
        }