예제 #1
0
        public EmployeeWraper(UserInfo userInfo, ApiContext httpContext)
        {
            Id          = userInfo.ID;
            DisplayName = DisplayUserSettings.GetFullUserName(userInfo);
            if (!string.IsNullOrEmpty(userInfo.Title))
            {
                Title = userInfo.Title;
            }

            var userInfoLM = userInfo.LastModified.GetHashCode();

            if (httpContext.Check("avatarSmall"))
            {
                AvatarSmall = UserPhotoManager.GetSmallPhotoURL(httpContext.Tenant.TenantId, userInfo.ID, out var isdef) + (isdef ? "" : $"?_={userInfoLM}");
            }

            if (Id != Guid.Empty)
            {
                var profileUrl = CommonLinkUtility.GetUserProfile(userInfo, false);
                ProfileUrl = CommonLinkUtility.GetFullAbsolutePath(httpContext.HttpContext, profileUrl);
            }
        }
예제 #2
0
        public static Expression <Func <User, UserInfo> > GetExpression(ApiContext apiContext)
        {
            if (apiContext?.Fields == null)
            {
                return(null);
            }
            var newExpr = Expression.New(typeof(UserInfo));

            //i => new UserInfo { ID = i.id }
            var parameter = Expression.Parameter(typeof(User), "i");
            var bindExprs = new List <MemberAssignment>();

            if (apiContext.Check("Id"))
            {
                bindExprs.Add(Expression.Bind(typeof(UserInfo).GetProperty("ID"), Expression.Property(parameter, typeof(User).GetProperty("Id"))));
            }

            var body   = Expression.MemberInit(newExpr, bindExprs);
            var lambda = Expression.Lambda <Func <User, UserInfo> >(body, parameter);

            return(lambda);
        }
        public EmployeeWraperFull(UserInfo userInfo, ApiContext context)
            : base(userInfo, context)
        {
            UserName  = userInfo.UserName;
            FirstName = userInfo.FirstName;
            LastName  = userInfo.LastName;
            Birthday  = (ApiDateTime)userInfo.BirthDate;

            if (userInfo.Sex.HasValue)
            {
                Sex = userInfo.Sex.Value ? "male" : "female";
            }

            Status           = userInfo.Status;
            ActivationStatus = userInfo.ActivationStatus & ~EmployeeActivationStatus.AutoGenerated;
            Terminated       = (ApiDateTime)userInfo.TerminatedDate;

            WorkFrom = (ApiDateTime)userInfo.WorkFromDate;
            Email    = userInfo.Email;

            if (!string.IsNullOrEmpty(userInfo.Location))
            {
                Location = userInfo.Location;
            }

            if (!string.IsNullOrEmpty(userInfo.Notes))
            {
                Notes = userInfo.Notes;
            }

            if (!string.IsNullOrEmpty(userInfo.MobilePhone))
            {
                MobilePhone = userInfo.MobilePhone;
            }

            MobilePhoneActivationStatus = userInfo.MobilePhoneActivationStatus;

            if (!string.IsNullOrEmpty(userInfo.CultureName))
            {
                CultureName = userInfo.CultureName;
            }

            FillConacts(userInfo);

            if (context.Check("groups") || context.Check("department"))
            {
                var groups = CoreContext.UserManager.GetUserGroups(context.Tenant, userInfo.ID)
                             .Select(x => new GroupWrapperSummary(x, context))
                             .ToList();

                if (groups.Count > 0)
                {
                    Groups     = groups;
                    Department = string.Join(", ", Groups.Select(d => d.Name.HtmlEncode()));
                }
                else
                {
                    Department = "";
                }
            }

            var userInfoLM = userInfo.LastModified.GetHashCode();

            if (context.Check("avatarDefault"))
            {
                AvatarDefault = Convert.ToBase64String(CoreContext.UserManager.GetUserPhoto(context.Tenant.TenantId, userInfo.ID));
            }

            if (context.Check("avatarMax"))
            {
                AvatarMax = UserPhotoManager.GetMaxPhotoURL(context.Tenant.TenantId, userInfo.ID, out var isdef) + (isdef ? "" : $"?_={userInfoLM}");
            }

            if (context.Check("avatarMedium"))
            {
                AvatarMedium = UserPhotoManager.GetMediumPhotoURL(context.Tenant.TenantId, userInfo.ID, out var isdef) + (isdef ? "" : $"?_={userInfoLM}");
            }

            if (context.Check("avatar"))
            {
                Avatar = UserPhotoManager.GetBigPhotoURL(context.Tenant.TenantId, userInfo.ID, out var isdef) + (isdef ? "" : $"?_={userInfoLM}");
            }

            if (context.Check("listAdminModules"))
            {
                var listAdminModules = userInfo.GetListAdminModules(context.Tenant);

                if (listAdminModules.Any())
                {
                    ListAdminModules = listAdminModules;
                }
            }

            IsVisitor = userInfo.IsVisitor(context.Tenant);
            IsAdmin   = userInfo.IsAdmin(context.Tenant);
            IsOwner   = userInfo.IsOwner(context.Tenant);
            IsLDAP    = userInfo.IsLDAP();
            IsSSO     = userInfo.IsSSO();
        }