예제 #1
0
        public void Parse(string fileName)
        {
            using (StreamReader reader = new StreamReader(fileName))
            {
                int dbgLimiter = 0;

                string firstLine = reader.ReadLine();
                ColumnHeaders ch = new ColumnHeaders(firstLine);

                while (!reader.EndOfStream)
                {
                    //if (dbgLimiter > 900) break;
                    dbgLimiter++;

                    string line = reader.ReadLine();

                    Columns cm = new Columns(line);

                    AromaSet set;

                    Aroma newAroma = new Aroma(line);
                    AllAromas.Add(newAroma.Id, newAroma);

                    if (!AllAromaSets.ContainsKey(newAroma.BareTitleEng))
                    {
                        set = new AromaSet();
                        set.Add(newAroma);
                        AllAromaSets.Add(set.TitleEng, set);
                    }
                    else
                    {
                        set = AllAromaSets[newAroma.BareTitleEng];
                        set.Add(newAroma);
                    }
                }
            }

            XmlCatalogParser xmlParser = new XmlCatalogParser();
            xmlParser.SetQuantities(AllAromas);

            int adCounter = 0;
            using (StreamWriter writer = new StreamWriter("ads.txt"))
            {
                ColumnHeaders.WriteHeaderToOutput(writer);

                foreach (KeyValuePair<string, AromaSet> p in AllAromaSets)
                {
                    p.Value.BuildAds(ref adCounter, writer);
                }
            }

            Logger.Close();
        }
예제 #2
0
        public Aroma(string line)
        {
            Columns cm = new Columns(line);

            float volTmp, vol = 0;

            this.Id = cm.Id;
            this.BareTitleEng = TitleTools.RemoveVolume(cm.TitleEng, out vol);
            this.BareTitleRus = TitleTools.RemoveVolume(cm.TitleRus, out volTmp);

            TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;
            BareTitleEng = textInfo.ToTitleCase(BareTitleEng.ToLower());

            textInfo = new CultureInfo("ru-RU", false).TextInfo;
            BareTitleRus = textInfo.ToTitleCase(BareTitleRus.ToLower());

            this.Volume = vol;
            this.IsTester = TitleTools.IsTester(cm.TitleEng);
            this.Brand = cm.Category;

            string category = cm.Category
                .Replace("&", "_")
                .Replace(".", "_")
                .Replace(" ", "_")
                .ToLower();

            this.Url = "http://www.vikinora.ru/parfumeria/" + category + "/" + cm.Url + "/";

            string imageUrl = "http://www.vikinora.ru" + cm.ImageUrl;

            if (cm.ImageUrl != string.Empty)
            {
                string[] parts = cm.ImageUrl.Split('/');
                string fileName = parts[parts.Length - 1];

                string[] fileNameParts = fileName.Split('.');
                string onlyName = fileNameParts[0];

                this.ImageUrl = "d:\\Projects\\VikinoraDirect\\data\\img\\" + onlyName + ".jpg";
            }
            else
            {
                this.ImageUrl = string.Empty;
            }
        }