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); } }
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(); }