예제 #1
0
 /// <summary>
 /// Writes the specified <see cref="BulkEntity"/> to the file.
 /// </summary>
 /// <param name="entity">The bulk entity to write to the file.</param>
 /// <remarks>
 /// Bulk entities that are derived from <see cref="SingleRecordBulkEntity"/> will be written to a single row in the file.
 /// Bulk entities that are derived from <see cref="MultiRecordBulkEntity"/> will be written to multiple rows in the file.
 /// </remarks>
 public void WriteEntity(BulkEntity entity)
 {
     entity.WriteToStream(_bulkObjectWriter, false);
 }
예제 #2
0
 /// <summary>
 /// Writes the specified <see cref="BulkEntity"/> to the file.
 /// </summary>
 /// <param name="entity">The bulk entity to write to the file.</param>
 /// <param name="excludeReadonlyData">Whether read only fields should be ignored.</param>
 /// <remarks>
 /// Bulk entities that are derived from <see cref="SingleRecordBulkEntity"/> will be written to a single row in the file.
 /// Bulk entities that are derived from <see cref="MultiRecordBulkEntity"/> will be written to multiple rows in the file.
 /// </remarks>
 public void WriteEntity(BulkEntity entity, bool excludeReadonlyData)
 {
     entity.WriteToStream(_bulkObjectWriter, excludeReadonlyData);
 }
 /// <summary>
 /// Writes the specified <see cref="BulkEntity"/> to the file.
 /// </summary>
 /// <param name="entity">The bulk entity to write to the file.</param>
 /// <remarks>
 /// Bulk entities that are derived from <see cref="SingleRecordBulkEntity"/> will be written to a single row in the file.
 /// Bulk entities that are derived from <see cref="MultiRecordBulkEntity"/> will be written to multiple rows in the file.
 /// </remarks>
 public void WriteEntity(BulkEntity entity)
 {            
     entity.WriteToStream(_bulkObjectWriter, false);            
 }
 /// <summary>
 /// Writes the specified <see cref="BulkEntity"/> to the file.
 /// </summary>
 /// <param name="entity">The bulk entity to write to the file.</param>
 /// <param name="excludeReadonlyData">Whether read only fields should be ignored.</param>
 /// <remarks>
 /// Bulk entities that are derived from <see cref="SingleRecordBulkEntity"/> will be written to a single row in the file.
 /// Bulk entities that are derived from <see cref="MultiRecordBulkEntity"/> will be written to multiple rows in the file.
 /// </remarks>
 public void WriteEntity(BulkEntity entity, bool excludeReadonlyData)
 {
     entity.WriteToStream(_bulkObjectWriter, excludeReadonlyData);
 }
예제 #5
0
        public List <RBOEntity> RBO(string _defaultDate)
        {
            List <RBOEntity> objRBOEntityList     = new List <RBOEntity>();
            string           _masterDatapathBasic = ConfigurationManager.AppSettings["MasterDatapathBasic"];
            string           _masterDatapathDMA   = ConfigurationManager.AppSettings["MasterDatapathDMA"];

            BulkData   obj         = new BulkData();
            OBJtoXML   xmltoObj    = new OBJtoXML();
            BulkEntity datafromXML = new BulkEntity();

            datafromXML.BasicData = new List <CompanyDetails>();
            int RBOcount = 173;

            string[] txtFiles = Directory.GetFiles(_masterDatapathBasic, "*.txt*", SearchOption.AllDirectories).OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();

            List <string> filesList = FilterDates(txtFiles.ToList(), _defaultDate);

            foreach (string currentFile in filesList)
            {
                if (checkIsValidFileForRBO(currentFile))
                {
                    datafromXML.BasicData.AddRange((List <CompanyDetails>)xmltoObj.CreateObject(datafromXML.BasicData, currentFile, false));
                    if (RBOcount == datafromXML.BasicData.Count)
                    {
                        break;
                    }
                    else
                    {
                        datafromXML.BasicData = new List <CompanyDetails>();
                    }
                }
            }

            //test to read data
            datafromXML.DMAData = new List <Rank>();
            var txtDMAFiles = Directory.EnumerateFiles(_masterDatapathDMA, "*.txt").OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();

            foreach (string currentFile in txtDMAFiles)
            {
                if (checkIsValidFileForRBO(currentFile))
                {
                    datafromXML.DMAData.AddRange((List <Rank>)xmltoObj.CreateObject(datafromXML.DMAData, currentFile, false));
                    break;
                }
            }

            RBOEntity objEntity;

            foreach (var basicData in datafromXML.BasicData.Where(x => x.Code != null))
            {
                objEntity             = new RBOEntity();
                objEntity.Code        = basicData.Code;
                objEntity.LTPValue    = basicData.lastPrice;
                objEntity.LTPDate     = basicData.BasicSavedTimeStamp;
                objEntity.low52       = basicData.low52;
                objEntity.high52      = basicData.high52;
                objEntity.TotalVolume = basicData.TotalVolume;
                objEntity.CurrentPrevdayVolumePercentage = basicData.CurrentPrevdayVolumePercentage;

                objEntity.BOPercentage = Math.Round(((Convert.ToDecimal(objEntity.LTPValue) * 100) / Convert.ToDecimal(objEntity.high52)), 2).ToString();
                var     dmaData  = datafromXML.DMAData.Where(x => x.SourceName == basicData.Code).ToList();
                decimal rboValue = 0.0M;
                decimal ltpValue = 0.0M;
                int     count    = 0;
                foreach (var itemDma in dmaData)
                {
                    if (itemDma.Day != "LTP")
                    {
                        rboValue = rboValue + Convert.ToDecimal(itemDma.Value); count++;
                    }
                    else
                    {
                        ltpValue = Convert.ToDecimal(itemDma.Value);
                    }
                }
                decimal rboAvgValue   = rboValue / count;
                decimal rboPercentage = ((ltpValue - rboAvgValue) * 100) / ltpValue;
                objEntity.RangeBoundPercentage = Math.Round(rboPercentage, 2).ToString();
                objRBOEntityList.Add(objEntity);
            }
            return(objRBOEntityList);
        }
        // Returns either the multiline entity itself or its child objects
        private IEnumerable<BulkEntity> ExtractChildEntitiesIfNeeded(BulkEntity entity)
        {
            var multilineEntity = entity as MultiRecordBulkEntity;

            // If the entity is a multiline entity and it has all child objects (delete all row was present), just return it
            if (multilineEntity == null || multilineEntity.AllChildrenArePresent)
            {
                yield return entity;
            }
            else
            {
                // If not all child objects are present (there was no delete all row and we only have part of the multiline entity), return child object individually 
                foreach (var child in (multilineEntity.ChildEntities.SelectMany(ExtractChildEntitiesIfNeeded)))
                {
                    yield return child;
                }
            }
        }
예제 #7
0
        public string ProcessRequest(string id)
        {
            string message               = "Sucussfully loaded data for ";
            string _nseUrlIo             = ConfigurationManager.AppSettings["NseUrlIO"].Replace("&amp;", "&");
            string _nseUrlBasic          = ConfigurationManager.AppSettings["NseUrlBasic"].Replace("&amp;", "&");
            string _nifty50              = ConfigurationManager.AppSettings["nifty50"].Replace("&amp;", "&");
            string _allFO                = ConfigurationManager.AppSettings["AllFO"].Replace("&amp;", "&");
            string _indexOnly            = ConfigurationManager.AppSettings["IndexOnly"].Replace("&amp;", "&");
            string _banknifty            = ConfigurationManager.AppSettings["Banknifty"].Replace("&amp;", "&");
            string _expiryDate           = ConfigurationManager.AppSettings["ExpiryDate"];
            string _masterDMAExcelSource = ConfigurationManager.AppSettings["MasterDMAExcelSource"];
            string _TodayCSVFile         = ConfigurationManager.AppSettings["TodayCSVFile"];
            string _masterDatapathOI     = ConfigurationManager.AppSettings["MasterDatapathOI"];
            string _masterDatapathBasic  = ConfigurationManager.AppSettings["MasterDatapathBasic"];
            string _masterDatapathDMA    = ConfigurationManager.AppSettings["MasterDatapathDMA"];



            BulkEntity objData  = new BulkEntity();
            Dma        objDma   = new Dma();
            OBJtoXML   xmltoObj = new OBJtoXML();

            try
            {
                string _list = "";

                if (id.Contains("IndexOnly"))
                {
                    _list   = _indexOnly;
                    message = message + " IndexOnly,";
                }
                else if (id.Contains("Banknifty"))
                {
                    _list   = _banknifty;
                    message = message + " Banknifty,";
                }
                else if (id.Contains("nifty50"))
                {
                    _list   = _nifty50;
                    message = message + " nifty50,";
                }
                else
                {
                    _list   = _allFO;
                    message = message + " All listed items.,";
                }

                foreach (string item in id.Split(','))
                {
                    if (item == "BasicData")
                    {
                        objData.BasicData = BasicData.ColletData(_nseUrlBasic, _list);
                        message           = message + " BasicData,";
                        xmltoObj.CreateXML(objData.BasicData, _masterDatapathBasic, "BasicData", false);


                        List <KeyValue> objLtpPrices = GenerateLastPrices(objData.BasicData);
                        objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, objLtpPrices, "");
                        message         = message + " DMA,";
                        xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "DMAData", false);
                    }
                    if (item == "DMA")
                    {
                        //DMA moved to Basic data refresh, when you click referesh request for the
                        //basic data then system refresh DMA data also
                        //So, no need to saparate request for the DMA.
                        //Presently signing off the DMA refresh option based on the data.csv file

                        objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, _TodayCSVFile, "");
                        message         = message + " DMA,";
                        xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "DMAData", false);
                    }
                    if (item == "OI")
                    {
                        IOData objOI = new IOData();
                        objData.OIData = objOI.LoadOIData(_nseUrlIo, _expiryDate, _list);
                        message        = message + " OI,";
                        xmltoObj.CreateXML(objData.OIData, _masterDatapathOI, "OIData", false);
                    }
                }
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }

            return(message);
        }
예제 #8
0
        public List <CompanyDetails> GetBasicData(List <Weightage> weightageData, string companyCode, string path, string _defaultDate)
        {
            List <CompanyDetails> returnData = new List <CompanyDetails>();

            if (companyCode == "Discounting")
            {
                BulkData obj = new BulkData();
                // BulkEntity data = obj.AnalyzerData("BHARTIARTL");
                ////test to read data
                OBJtoXML   xmltoObj    = new OBJtoXML();
                BulkEntity datafromXML = new BulkEntity();
                datafromXML.BasicData = new List <CompanyDetails>();
                string[] txtFiles = Directory.GetFiles(path, "*.txt*", SearchOption.AllDirectories).OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();

                //var txtFiles = Directory.EnumerateFiles("D:\\MasterData\\Basic\\", " *.txt").OrderByDescending(x => x);
                List <string> filesList = FilterDates(txtFiles.ToList(), _defaultDate);
                foreach (string currentFile in filesList)
                {
                    datafromXML.BasicData.AddRange((List <CompanyDetails>)xmltoObj.CreateObject(datafromXML.BasicData, currentFile, false)); break;
                }
                List <CompanyDetails> queryData = new List <CompanyDetails>();
                returnData = datafromXML.BasicData.OrderBy(x => x.BasicSavedTimeStamp).ToList();
            }
            else if (companyCode == "All")
            {
                BulkData obj = new BulkData();
                // BulkEntity data = obj.AnalyzerData("BHARTIARTL");
                ////test to read data
                OBJtoXML   xmltoObj    = new OBJtoXML();
                BulkEntity datafromXML = new BulkEntity();
                datafromXML.BasicData = new List <CompanyDetails>();
                string[] txtFiles = Directory.GetFiles(path, "*.txt*", SearchOption.AllDirectories).OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();

                //var txtFiles = Directory.EnumerateFiles("D:\\MasterData\\Basic\\", " *.txt").OrderByDescending(x => x);
                List <string> filesList = FilterDates(txtFiles.ToList(), _defaultDate);
                foreach (string currentFile in filesList)
                {
                    datafromXML.BasicData.AddRange((List <CompanyDetails>)xmltoObj.CreateObject(datafromXML.BasicData, currentFile, false));
                }
                List <CompanyDetails> queryData = new List <CompanyDetails>();
                queryData  = datafromXML.BasicData.OrderBy(x => x.BasicSavedTimeStamp).ToList();
                returnData = CalcFastMoversForAll(companyCode, queryData.Where(x => x.TotalVolume != null && x.totalBuyQuantity != "1" && x.totalSellQuantity != "1").ToList());
            }
            else if (companyCode.Split(',')[0].ToUpper() == "BANKNIFTY")
            {
                BulkData   obj         = new BulkData();
                OBJtoXML   xmltoObj    = new OBJtoXML();
                BulkEntity datafromXML = new BulkEntity();
                datafromXML.BasicData = new List <CompanyDetails>();
                string[] txtFiles = Directory.GetFiles(path, "*.txt*", SearchOption.AllDirectories).OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();

                List <string> filesList = FilterDates(txtFiles.ToList(), _defaultDate);
                foreach (string currentFile in filesList)
                {
                    datafromXML.BasicData.AddRange((List <CompanyDetails>)xmltoObj.CreateObject(datafromXML.BasicData, currentFile, false));
                }
                List <CompanyDetails> queryData = new List <CompanyDetails>();
                queryData  = datafromXML.BasicData.OrderBy(x => x.BasicSavedTimeStamp).ToList();
                returnData = CalcFastMoversForBankNifty(weightageData, companyCode, queryData.Where(x => x.TotalVolume != null && x.totalBuyQuantity != "1" && x.totalSellQuantity != "1").ToList());
            }
            else
            {
                BulkData obj = new BulkData();
                // BulkEntity data = obj.AnalyzerData("BHARTIARTL");
                ////test to read data
                OBJtoXML   xmltoObj    = new OBJtoXML();
                BulkEntity datafromXML = new BulkEntity();
                datafromXML.BasicData = new List <CompanyDetails>();
                string[]      txtFiles  = Directory.GetFiles(path, "*.txt*", SearchOption.AllDirectories).OrderByDescending(d => new FileInfo(d).LastWriteTime).ToArray();
                List <string> filesList = FilterDates(txtFiles.ToList(), _defaultDate);
                foreach (string currentFile in filesList)
                {
                    datafromXML.BasicData.AddRange((List <CompanyDetails>)xmltoObj.CreateObject(datafromXML.BasicData, currentFile, false));
                }
                List <CompanyDetails> queryData = new List <CompanyDetails>();
                queryData  = datafromXML.BasicData.OrderBy(x => x.BasicSavedTimeStamp).ToList();
                returnData = CalcFastMoversBasedOnCode(queryData.Where(x => x.TotalVolume != null && x.totalBuyQuantity != "1" && x.totalSellQuantity != "1" && x.Code == companyCode).ToList());
            }

            return(returnData);
        }
예제 #9
0
        public static string LoadBasicData(string id)
        {
            string message               = "Sucussfully loaded data for ";
            string _nseUrlIo             = ConfigurationManager.AppSettings["NseUrlIO"].Replace("&amp;", "&");
            string _nseUrlBasic          = ConfigurationManager.AppSettings["NseUrlBasic"].Replace("&amp;", "&");
            string _nifty50              = ConfigurationManager.AppSettings["nifty50"].Replace("&amp;", "&");
            string _allFO                = ConfigurationManager.AppSettings["AllFO"].Replace("&amp;", "&");
            string _indexOnly            = ConfigurationManager.AppSettings["IndexOnly"].Replace("&amp;", "&");
            string _banknifty            = ConfigurationManager.AppSettings["Banknifty"].Replace("&amp;", "&");
            string _expiryDate           = ConfigurationManager.AppSettings["ExpiryDate"];
            string _masterDMAExcelSource = ConfigurationManager.AppSettings["MasterDMAExcelSource"];
            string _TodayCSVFile         = ConfigurationManager.AppSettings["TodayCSVFile"];
            string _masterDatapathOI     = ConfigurationManager.AppSettings["MasterDatapathOI"];
            string _masterDatapathBasic  = ConfigurationManager.AppSettings["MasterDatapathBasic"];
            string _masterDatapathDMA    = ConfigurationManager.AppSettings["MasterDatapathDMA"];



            BulkEntity objData  = new BulkEntity();
            Dma        objDma   = new Dma();
            OBJtoXML   xmltoObj = new OBJtoXML();

            try
            {
                string _list = "";

                if (id.Contains("IndexOnly"))
                {
                    _list   = _indexOnly;
                    message = message + " IndexOnly,";
                }
                else if (id.Contains("Banknifty"))
                {
                    _list   = _banknifty;
                    message = message + " Banknifty,";
                }
                else if (id.Contains("nifty50"))
                {
                    _list   = _nifty50;
                    message = message + " nifty50,";
                }
                else
                {
                    _list   = _allFO;
                    message = message + " All listed items.,";
                }

                foreach (string item in id.Split(','))
                {
                    if (item == "BasicData")
                    {
                        objData.BasicData = BasicData.ColletData(_nseUrlBasic, _list);
                        message           = message + " BasicData,";
                        xmltoObj.CreateXML(objData.BasicData, _masterDatapathBasic, "basicdata", true);

                        //Need to implement this one when master data been ready
                        //List<KeyValue> objLtpPrices = GenerateLastPrices(objData.BasicData);
                        //objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, objLtpPrices, "");
                        //message = message + " DMA,";
                        //xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "dmadata", true);
                    }
                    if (item == "OI")
                    {
                        IOData objOI = new IOData();
                        objData.OIData = objOI.LoadOIData(_nseUrlIo, _expiryDate, _list);
                        message        = message + " OI,";
                        xmltoObj.CreateXML(objData.OIData, _masterDatapathOI, "openinterest", true);
                    }
                }
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }
            return(message);
        }