示例#1
0
        public static UserInfo ParseFrom(DataRow dr)
        {
            dr.ThrowIfNull(nameof(dr));

            string userId    = dr.Get <string>("UserID");
            var    permGroup = UserPermissionGroup.ParseFrom(dr.Get <string>("PermissionGroup"));

            // 시스템 그룹에 속한다면 시스템 그룹으로 분류한다.
            // NOTE(jhlee): 리스트 단위로 유저 정보 조회시, SP로 시스템 그룹에 해당하는 유저 ID 리스트를 전달하기 때문에
            // 반환되는 DataTable에는 system 그룹으로 표시되지만, 단 건 셀렉트 시에는 이 로직이 필요함.
            if (permGroup.GroupType != UserPermissionGroupType.System && AdminAccounts.Contains(userId, StringComparer.OrdinalIgnoreCase))
            {
                permGroup = new UserPermissionGroup(UserPermissionGroupType.System);
            }

            return(new UserInfo(userId)
            {
                CompanyCode = dr.Get <string>("CompanyCode"),
                PermissionGroup = permGroup,
                IsReportEnabled = dr.Get <bool>("IsReportEnabled"),
                IsDeleted = dr.Get <bool>("IsDeleted"),
                CreatedDate = dr.Get <DateTimeOffset>("CreatedDate"),
                DeletedDate = dr.Get <DateTimeOffset?>("DeletedDate"),
                LastAccessDate = dr.Get <DateTimeOffset?>("LastAccessDate"),
                // merged ---------------------------------
                UserName = dr.Get <string>("UserName"),
                DeptCode = dr.Get <string>("DeptCode"),
                DeptName = dr.Get <string>("DeptName"),
                MobileTel = dr.Get <string>("MobileTel")
            });
        }
示例#2
0
        public void Update(IUserInfoUpdatable fields, out List <UpdatedField> updated)
        {
            fields.ThrowIfNull(nameof(fields));

            updated = new List <UpdatedField>();

            if (PermissionGroup.GroupType != fields.PermissionGroup)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(PermissionGroup),
                    OldValue  = PermissionGroup,
                    NewValue  = fields.PermissionGroup
                });

                PermissionGroup = new UserPermissionGroup(fields.PermissionGroup);
            }

            if (IsReportEnabled != fields.IsReportEnabled)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(IsReportEnabled),
                    OldValue  = IsReportEnabled,
                    NewValue  = fields.IsReportEnabled
                });

                IsReportEnabled = fields.IsReportEnabled;
            }

            if (updated.Any())
            {
                Validate();
            }
        }