Пример #1
0
        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);
        }