Пример #1
0
        public Bid_IDK(bool use3PartBidding, FileInfo parserBidFile)
        {
            string bidContent = LCAFileUtils.getTextFileContents(parserBidFile.FullName);

            m_Use3PartBidding = use3PartBidding;

            processFullBidString(bidContent);
        }
Пример #2
0
        private List <double> readDataFromFlatFile(FlatFileTypeEnum interval, long pointID, bool isInternal, DateTime sDateTime, double numRecToRead, bool isRaw, string fixedFileName)
        {
            try
            {
                string   fName;
                int      curRec;
                int      secPerRec = 60;
                DateTime lastDateTime;
                DateTime curDateTime;
                int      recInFile;

                List <double> data = new List <double>();

                if (fixedFileName == null)
                {
                    if (!isRaw)
                    {
                        fName = getFileName(interval, pointID, isInternal, sDateTime);
                    }
                    else
                    {
                        fName = getFileName(FlatFileTypeEnum.FF_TENSECRAW, pointID, isInternal, sDateTime);
                    }
                }
                else
                {
                    fName = fixedFileName;
                }

                switch (interval)
                {
                case FlatFileTypeEnum.FF_ONEMIN:
                case FlatFileTypeEnum.FF_ONEMINPRED:
                    secPerRec = 60;
                    if (sDateTime.Second != 0)
                    {
                        sDateTime = sDateTime.AddSeconds(sDateTime.Second * -1);
                    }
                    break;

                case FlatFileTypeEnum.FF_FIVEMIN:
                    secPerRec = 300;
                    if (sDateTime.Second != 0)
                    {
                        sDateTime = sDateTime.AddSeconds(sDateTime.Second * -1);
                    }
                    if (sDateTime.Minute % 5 != 0)
                    {
                        sDateTime = sDateTime.AddMinutes(5 - (sDateTime.Minute % 5));
                    }
                    break;

                case FlatFileTypeEnum.FF_TENSEC:
                    secPerRec = 10;
                    if (sDateTime.Second % 10 != 0)
                    {
                        sDateTime = sDateTime.AddSeconds(10 - (sDateTime.Second % 10));
                    }
                    break;
                }

                recInFile = DateTime.DaysInMonth(sDateTime.Year, sDateTime.Month) * (86400 / secPerRec);
                createFile(fName, recInFile);

                curRec = calcRecordNum(interval, sDateTime);
                if (curRec == -1)
                {
                    throw new IndexOutOfRangeException("Record could not be located");
                }

                lastDateTime = sDateTime;
                curDateTime  = sDateTime;

                FileStream   fs = new FileStream(fName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                BinaryReader br = new BinaryReader(fs);

                br.BaseStream.Seek((curRec * 8), SeekOrigin.Begin);

                bool midnightRoll = false;

                for (int i = 0; i < numRecToRead; i++)
                {
                    lastDateTime = curDateTime;

                    data.Add(br.ReadDouble());

                    if (i == 280)
                    {
                        Console.Write("");
                    }

                    if (midnightRoll)
                    {
                        curDateTime  = curDateTime.AddDays(1);
                        midnightRoll = false;
                    }

                    curDateTime = curDateTime.AddSeconds(secPerRec);
                    if ((curDateTime.Hour == 0) && (curDateTime.Minute == 0))
                    {
                        curDateTime  = curDateTime.AddDays(-1);
                        midnightRoll = true;
                    }
                    if (curDateTime.Month != lastDateTime.Month)
                    {
                        // The month has changed so we nee to get the next month's file
                        br.Close();
                        fs.Close();

                        fName = getFileName(interval, pointID, isInternal, curDateTime);
                        createFile(fName, recInFile);

                        fs = new FileStream(fName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);
                        br = new BinaryReader(fs);
                    }
                }

                return(data);
            }
            catch (Exception e)
            {
                LCAFileUtils.logErrorDetails("readDataFromFlatFile", "LCAFlatFileErr.txt", e);

                return(new List <double>());
            }
        }