示例#1
0
        /// <summary>
        /// Load data and don't do any upgrade.
        /// </summary>
        private UserDataBundle Load(string encryptedData)
        {
            int    lastColonPosition = encryptedData.LastIndexOf(':');
            string jsonData          = _encryptionProvider.DecryptString(encryptedData.Substring(lastColonPosition + 1));

            return(_serializationProvider.DeserializeObject <UserDataBundle>(jsonData));
        }
示例#2
0
        /// <summary>
        /// Applies the filters.
        /// </summary>
        /// <typeparam name="T">The type of the entity within the query.</typeparam>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <param name="serializer">The serializer.</param>
        /// <returns>The filtered query.</returns>
        private static IEnumerable <T> ApplyFilters <T>(this IEnumerable <T> query, GetCollectionRequest request, ISerializationProvider serializer)
        {
            if (string.IsNullOrWhiteSpace(request.Filter))
            {
                return(query);
            }

            FilterModel filter = null;

            try
            {
                filter = serializer.DeserializeObject <FilterModel>(request.Filter);
            }
            catch
            {
            }

            if (filter == null)
            {
                return(query);
            }

            int           paramCount = 0;
            List <object> values     = new List <object>();
            string        clause     = query.ApplySingleFilter(filter, ref paramCount, ref values);

            return(query.Where(clause, values.ToArray()));
        }