Пример #1
0
        public static Dictionary <string, List <UserRating> > DeserializeFileSample(string filename, string delimiter, Constants.ClassTypes paramType)
        {
            TextReader textReader = File.OpenText(filename);

            CsvConfiguration config = new CsvConfiguration(CultureInfo.InvariantCulture);

            config.HasHeaderRecord   = true;
            config.MissingFieldFound = null;
            config.BadDataFound      = null;
            config.Delimiter         = delimiter;

            var csv = new CsvReader(textReader, config);

            List <UserRating> dataList = csv.GetRecords <UserRating>().ToList();

            Dictionary <string, List <UserRating> > values = new Dictionary <string, List <UserRating> >();

            foreach (UserRating user in dataList)
            {
                if (!values.ContainsKey((user as UserRating).userId))
                {
                    values.Add((user as UserRating).userId, (new List <UserRating>()
                    {
                        user as UserRating
                    }));
                }
                else
                {
                    ((List <UserRating>)((object)(values[(user as UserRating).userId]))).Add(user as UserRating);;
                }
            }
            return(values);
        }
Пример #2
0
        public static Dictionary <string, T> DeserializeFile <T>(string filename, string delimiter, Constants.ClassTypes paramType)
        {
            TextReader textReader = File.OpenText(filename);

            CsvConfiguration config = new CsvConfiguration(CultureInfo.InvariantCulture);

            config.HasHeaderRecord   = true;
            config.MissingFieldFound = null;
            config.BadDataFound      = null;
            config.Delimiter         = delimiter;

            var csv = new CsvReader(textReader, config);

            List <T> dataList = csv.GetRecords <T>().ToList();

            Dictionary <string, T> values = new Dictionary <string, T>();

            switch (paramType)
            {
            case Constants.ClassTypes.Movie:
            {
                foreach (T movie in dataList)
                {
                    values.Add((movie as Movie).tconst, movie);
                }
                break;
            }

            case Constants.ClassTypes.MovieShort:
            {
                foreach (T movieShort in dataList)
                {
                    values.Add((movieShort as MovieShort).tconst, movieShort);
                }
                break;
            }

            case Constants.ClassTypes.MovieResult:
            {
                foreach (T movieResult in dataList)
                {
                    values.Add((movieResult as MovieResult).titleId, movieResult);
                }
                break;
            }

            case Constants.ClassTypes.Rating:
            {
                foreach (T rating in dataList)
                {
                    values.Add((rating as Rating).tconst, rating);
                }
                break;
            }

            case Constants.ClassTypes.Director:
            {
                foreach (T director in dataList)
                {
                    values.Add((director as Director).tconst, director);
                }
                break;
            }

            case Constants.ClassTypes.DirectorShort:
            {
                foreach (T directorShort in dataList)
                {
                    values.Add((directorShort as DirectorShort).tconst, directorShort);
                }
                break;
            }

            case Constants.ClassTypes.Cast:
            {
                foreach (T castShort in dataList)
                {
                    values.Add((castShort as Cast).tconst, castShort);
                }
                break;
            }

            case Constants.ClassTypes.Name:
            {
                foreach (T name in dataList)
                {
                    values.Add((name as Name).nconst, name);
                }
                break;
            }

            case Constants.ClassTypes.NameShort:
            {
                foreach (T nameShort in dataList)
                {
                    values.Add((nameShort as NameShort).nconst, nameShort);
                }
                break;
            }

            case Constants.ClassTypes.User:
            {
                foreach (T user in dataList)
                {
                    values.Add((user as User).userId, user);
                }
                break;
            }
            }

            return(values);
        }