public UserModel CreateCustomUserModel(TLUser tlUser) { var props = tlUser.GetType().GetProperties(); var user = new UserModel(); try { var userProps = user.GetType().GetProperties(); for (int i = 0; i < userProps.Length; i++) { for (int y = 0; y < props.Length; y++) { var customUserProp = userProps[i]; var tlUserProp = props[y]; if (tlUserProp.Name == customUserProp.Name) { //assign TLUser's props to User var tlUserPropValue = tlUser.GetType().GetProperty(tlUserProp.Name).GetValue(tlUser); user.GetType().GetProperty(customUserProp.Name).SetValue( user, tlUserPropValue); } } } } catch (Exception ex) { Logger.Error(ex); } if (tlUser.Status != null) { user.UserStatus = tlUser.Status.ToString().Substring(25); if (tlUser.Status is TLUserStatusOffline) { var offline = tlUser.Status as TLUserStatusOffline; user.LastSeen = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) .AddSeconds(offline.WasOnline) .ToLocalTime() .ToString(); } } user.WithPhoto = tlUser.Photo != null ? true : false; return(user); }
private UserModel CreateCustomUser(TLUser tlUser, string userStatus = null, string lastSeen = null, bool?isPhoto = null) { var props = tlUser.GetType().GetProperties(); var user = new UserModel(); try { var userProps = user.GetType().GetProperties(); for (int i = 0; i < userProps.Length; i++) { for (int y = 0; y < props.Length; y++) { var customUserProp = userProps[i]; var tlUserProp = props[y]; if (tlUserProp.Name == customUserProp.Name) { //assign props of TLUser to User user.GetType().GetProperty(customUserProp.Name).SetValue( user, tlUser.GetType().GetProperty(tlUserProp.Name).GetValue(tlUser)); } } } } catch (Exception ex) { Debugger.Break(); } user.UserStatus = userStatus; user.LastSeen = lastSeen; if (isPhoto != null) { user.IsPhoto = (bool)isPhoto; } return(user); }