예제 #1
0
 public void ToIdsString_Test()
 {
     Assert.Equal(OrionUtils.ToIdsString((string[])null), "");
     Assert.Equal(OrionUtils.ToIdsString(new string[] { }), "");
     Assert.Equal(OrionUtils.ToIdsString(new string[] { "1", "2", "2" }), "1,2");
     Assert.Equal(OrionUtils.ToIdsString(new int[] { }), "");
     Assert.Equal(OrionUtils.ToIdsString(new int[] { 1, 2, 2 }), "1,2");
 }
예제 #2
0
        public void SetSelfAct(UserActDomain domain)
        {
            UserInfo data = _dc.UserInfo.FirstOrDefault(x => x.UserId == domain.UserId);

            Checker.Has(data, "帳號不存在!");

            data.AllowActList = OrionUtils.ToIdsString(domain.AllowActList);
            data.DenyActList  = OrionUtils.ToIdsString(domain.DenyActList);
            data.ModifyBy     = domain.ModifyBy;
            data.ModifyDate   = DateTime.Now;

            _dc.SubmitChanges();
        }
예제 #3
0
        public int Save(RoleDomain domain)
        {
            RoleInfo data;

            if (domain.RoleId > 0)
            {
                data = _dc.RoleInfo.FirstOrDefault(x => x.RoleId == domain.RoleId);
                Checker.Has(data, "角色不存在無法修改");
            }
            else
            {
                data = new RoleInfo
                {
                    CreateBy   = domain.ModifyBy,
                    CreateDate = DateTime.Now,
                };
                _dc.RoleInfo.InsertOnSubmit(data);
            }

            data.RoleName     = domain.RoleName;
            data.AllowActList = OrionUtils.ToIdsString(domain.AllowActList);
            data.Status       = domain.Status.ToString();
            data.RemarkText   = domain.RemarkText;
            data.ModifyBy     = domain.ModifyBy;
            data.ModifyDate   = DateTime.Now;


            /*角色使用者對應處理*/
            if (domain.UserIds == null)
            {
                domain.UserIds = new List <int>();
            }

            var userList = data.UserRole.ToList();

            userList.ForEach(x =>
            {
                if (domain.UserIds.Contains(x.UserId))
                {
                    return;
                }
                _dc.UserRole.DeleteOnSubmit(x);
            });

            domain.UserIds.ForEach(x =>
            {
                if (userList.Any(y => y.UserId == x))
                {
                    return;
                }

                data.UserRole.Add(new UserRole
                {
                    UserId     = x,
                    CreateBy   = domain.ModifyBy,
                    CreateDate = DateTime.Now,
                    ModifyBy   = domain.ModifyBy,
                    ModifyDate = DateTime.Now,
                });
            });


            _dc.SubmitChanges();


            return(data.RoleId);
        }