Ejemplo n.º 1
0
        private void UploadData()
        {
            try
            {
                RdLlbMessage.Text = "Uploading Data..";
                RdLlbMessage.Update();
                Application.DoEvents();
                DvBhavCopyFile           = new DataView();
                DvBhavCopyFile           = _DataSet.DefaultViewManager.CreateDataView(DtBhavCopyFile);
                DvBhavCopyFile.RowFilter = "isnull(lFileDownloaded,0)=1";
                if (DvBhavCopyFile.Count > 0)
                {
                    string StrCsvFileLoation = "";
                    StrCsvFileLoation = Path.GetTempPath() + @"BhavCopyDataCsvFiles";
                    if (Directory.Exists(StrCsvFileLoation) == false)
                    {
                        Directory.CreateDirectory(StrCsvFileLoation);
                    }
                    foreach (DataRowView DrvFiles in DvBhavCopyFile)
                    {
                        string zipPath     = DrvFiles["cFileLoation"].ToString();
                        string extractPath = StrCsvFileLoation;//+"\\"+ Path.GetFileName(zipPath);

                        FastZip z = new FastZip
                        {
                            CreateEmptyDirectories = true
                        };
                        z.ExtractZip(zipPath, extractPath, "");
                    }
                    DtBhavCopyData = new DataTable();

                    RdProgressBar.Minimum = 1;
                    RdProgressBar.Maximum = DvBhavCopyFile.Count;
                    foreach (DataRowView DrvFiles in DvBhavCopyFile)
                    {
                        RdProgressBar.Value1 = RdProgressBar.Value1 < DvBhavCopyFile.Count ? RdProgressBar.Value1 + 1 : DvBhavCopyFile.Count;
                        RdProgressBar.Text   = ((RdProgressBar.Value1 * 100) / DvBhavCopyFile.Count).ToString() + " %";
                        RdProgressBar.Update();
                        RdProgressBar.Refresh();
                        RdLlbMessage.Text = "Getting < " + DrvFiles["cFileName"].ToString().Replace(".zip", "") + " > File Data..";
                        RdLlbMessage.Update();
                        Application.DoEvents();


                        ConnectCSV(StrCsvFileLoation, DrvFiles["cFileName"].ToString().Replace(".zip", ""));
                    }
                    DataColumn DcCol = new DataColumn("dTIMESTAMP", typeof(DateTime));
                    DtBhavCopyData.Columns.Add(DcCol);

                    foreach (DataRowView DrvFilesData in DtBhavCopyData.DefaultView)
                    {
                        DrvFilesData.BeginEdit();
                        string[] StrDateFormat;
                        StrDateFormat = DrvFilesData["cTIMESTAMP"].ToString().Split('-');

                        DrvFilesData["dTIMESTAMP"] = StrDateFormat[1] + "/" + StrDateFormat[0] + "/" + StrDateFormat[2];
                        DrvFilesData.EndEdit();
                    }
                    RdProgressBar.ResetText();
                    RdProgressBar.Refresh();
                    RdProgressBar.Minimum = 0;
                    RdProgressBar.Maximum = DvBhavCopyFile.Count;
                    RdProgressBar.Value1  = 0;

                    DvBhavCopyFile.Sort = " dFileDate DESC";

                    using (A3DBhavCopyDataContext dbContxt = new A3DBhavCopyDataContext())
                    {
                        using (DbContextTransaction transaction = dbContxt.Database.BeginTransaction())
                        {
                            try
                            {
                                int iFileID = 0;
                                foreach (DataRowView DrvFiles in DvBhavCopyFile)
                                {
                                    string StrFileName = DrvFiles["cFileName"].ToString().Replace(".zip", "");

                                    RdLlbMessage.Text = "Reading < " + StrFileName + " > File Data..";
                                    RdLlbMessage.Update();
                                    Application.DoEvents();



                                    var vBhavCopyHead = dbContxt._MBhavCopyHead.Where(f => f.cFileName == StrFileName).Select(BCH => BCH.iFileID).ToList();
                                    if (vBhavCopyHead != null && vBhavCopyHead.Count > 0)
                                    {
                                        RdLlbMessage.Text = "Deleting existing < " + StrFileName + " > File Data..";
                                        RdLlbMessage.Update();
                                        Application.DoEvents();

                                        foreach (var item in vBhavCopyHead)
                                        {
                                            IList <MClsBhavCopyHead> mClsBhavCopyHeads = dbContxt._MBhavCopyHead.Where(bch => bch.iFileID == item).ToList();
                                            if (mClsBhavCopyHeads != null && mClsBhavCopyHeads.Count > 0)
                                            {
                                                dbContxt._MBhavCopyHead.RemoveRange(mClsBhavCopyHeads);
                                                dbContxt.SaveChanges();
                                                //foreach (var vBhavCopyHeads in mClsBhavCopyHeads)
                                                //{
                                                //    dbContxt._MBhavCopyHead.Remove(vBhavCopyHeads);
                                                //    dbContxt.SaveChanges();
                                                //}
                                            }
                                            IList <MClsBhavCopyDetails> mClsBhavCopyDetails = dbContxt._MClsBhavCopyDetails.Where(bcd => bcd.iFileID == item).ToList();
                                            if (mClsBhavCopyDetails != null && mClsBhavCopyDetails.Count > 0)
                                            {
                                                dbContxt._MClsBhavCopyDetails.RemoveRange(mClsBhavCopyDetails);
                                                dbContxt.SaveChanges();
                                                //foreach (var vBhavCopyDetails in mClsBhavCopyDetails)
                                                //{
                                                //    dbContxt._MClsBhavCopyDetails.Remove(vBhavCopyDetails);
                                                //    dbContxt.SaveChanges();
                                                //}
                                            }
                                        }
                                    }
                                    /**********************************************************************************************/
                                    iFileID = 0;
                                    MClsBhavCopyHead _mClsBhavCopyHead = new MClsBhavCopyHead();
                                    _mClsBhavCopyHead.cFileName       = DrvFiles["cFileName"].ToString().Replace(".zip", "");
                                    _mClsBhavCopyHead.dFileDate       = Convert.ToDateTime(DrvFiles["dFileDate"]);
                                    _mClsBhavCopyHead.dFileUploadDate = DateTime.Now;
                                    dbContxt._MBhavCopyHead.Add(_mClsBhavCopyHead);
                                    dbContxt.SaveChanges();
                                    iFileID = _mClsBhavCopyHead.iFileID;
                                    /**********************************************************************************************/

                                    RdLlbMessage.Text = "Getting all data of < " + StrFileName + " > File ..";
                                    RdLlbMessage.Update();
                                    Application.DoEvents();

                                    DtBhavCopyData.DefaultView.RowFilter = "cFileName='" + DrvFiles["cFileName"].ToString().Replace(".zip", "") + "'";

                                    RdLlbMessage.Text = "Saving data of  < " + StrFileName + " > File. Total no of record < " + DtBhavCopyData.DefaultView.Count.ToString() + " >";
                                    RdLlbMessage.Update();
                                    Application.DoEvents();


                                    List <MClsBhavCopyDetails> _mClsBhavCopyDetails = new List <MClsBhavCopyDetails>();
                                    _mClsBhavCopyDetails = (from DataRowView DrvFilesData in DtBhavCopyData.DefaultView
                                                            select new MClsBhavCopyDetails()
                                    {
                                        iFileID = iFileID,
                                        cSYMBOL = DrvFilesData["cSYMBOL"].ToString().Trim(),
                                        cSERIES = DrvFilesData["cSERIES"].ToString().Trim(),
                                        cOPEN = DrvFilesData["cOPEN"].ToString().Trim(),
                                        cHIGH = DrvFilesData["cHIGH"].ToString().Trim(),
                                        cLOW = DrvFilesData["cLOW"].ToString().Trim(),
                                        cCLOSE = DrvFilesData["cCLOSE"].ToString().Trim(),
                                        cLAST = DrvFilesData["cLAST"].ToString().Trim(),
                                        cPREVCLOSE = DrvFilesData["cPREVCLOSE"].ToString().Trim(),
                                        cTOTTRDQTY = DrvFilesData["cTOTTRDQTY"].ToString().Trim(),
                                        cTOTTRDVAL = DrvFilesData["cTOTTRDVAL"].ToString().Trim(),
                                        cTIMESTAMP = DrvFilesData["cTIMESTAMP"].ToString().Trim(),
                                        cTOTALTRADES = DrvFilesData["cTOTALTRADES"].ToString().Trim(),
                                        cISIN = DrvFilesData["cISIN"].ToString().Trim(),
                                        dTIMESTAMP = Convert.ToDateTime(DrvFilesData["dTIMESTAMP"])
                                    }).ToList();
                                    dbContxt._MClsBhavCopyDetails.AddRange(_mClsBhavCopyDetails);

                                    //foreach (DataRowView DrvFilesData in DtBhavCopyData.DefaultView)
                                    //{

                                    //    RdProgressBar.Value1 = RdProgressBar.Value1 < DtBhavCopyData.DefaultView.Count ? RdProgressBar.Value1 + 1 : DtBhavCopyData.DefaultView.Count;
                                    //    RdProgressBar.Text = ((RdProgressBar.Value1 * 100) / DtBhavCopyData.DefaultView.Count).ToString() + " %";
                                    //    RdProgressBar.Update();
                                    //    RdProgressBar.Refresh();
                                    //    Application.DoEvents();

                                    //    MClsBhavCopyDetails _mClsBhavCopyDetails = new MClsBhavCopyDetails();
                                    //    _mClsBhavCopyDetails.iFileID = iFileID;
                                    //    _mClsBhavCopyDetails.cSYMBOL = DrvFilesData["cSYMBOL"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cSERIES = DrvFilesData["cSERIES"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cOPEN = DrvFilesData["cSYMBOL"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cHIGH = DrvFilesData["cHIGH"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cLOW = DrvFilesData["cLOW"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cCLOSE = DrvFilesData["cCLOSE"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cLAST = DrvFilesData["cLAST"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cPREVCLOSE = DrvFilesData["cPREVCLOSE"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cTOTTRDQTY = DrvFilesData["cTOTTRDQTY"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cTOTTRDVAL = DrvFilesData["cTOTTRDVAL"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cTIMESTAMP = DrvFilesData["cTIMESTAMP"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cTOTALTRADES = DrvFilesData["cTOTALTRADES"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.cISIN = DrvFilesData["cISIN"].ToString().Trim();
                                    //    _mClsBhavCopyDetails.dTIMESTAMP = Convert.ToDateTime(DrvFilesData["dTIMESTAMP"]);
                                    //    dbContxt._MClsBhavCopyDetails.Add(_mClsBhavCopyDetails);
                                    //}
                                    DtBhavCopyData.DefaultView.RowFilter = "";

                                    RdProgressBar.Value1 = RdProgressBar.Value1 < DvBhavCopyFile.Count ? RdProgressBar.Value1 + 1 : DvBhavCopyFile.Count;
                                    RdProgressBar.Text   = ((RdProgressBar.Value1 * 100) / DvBhavCopyFile.Count).ToString() + " %";
                                    RdProgressBar.Update();
                                    RdProgressBar.Refresh();
                                    Application.DoEvents();
                                }
                                dbContxt.SaveChanges();
                                transaction.Commit();
                            }

                            catch (Exception ex)
                            {
                                transaction.Rollback();
                                ClsMessage._IClsMessage.ProjectExceptionMessage(ex);
                            }
                        }
                    }
                    DtBhavCopyData.AcceptChanges();
                    RdGrdBhavCopyData.DataSource = DtBhavCopyData;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        private void DownLoadFiles(DateTime DtpFromDate, DateTime DtpToDate)
        {
            try
            {
                GetMDIProgessBar();
                RdLlbDateRange.Text = "Date Range Selected  <From " + DtpFromDate.ToString("dd-MMM-yyyy") + " To " + DtpToDate.ToString("dd-MMM-yyyy") + " >";

                if (ClsMessage._IClsMessage.showQuestionMessage(RdLlbDateRange.Text + Environment.NewLine + "Do You Want To Continue?") == DialogResult.No)
                {
                    return;
                }

                double _IDaysInMonth = (DtpToDate - DtpFromDate).TotalDays;

                RdProgressBar.Minimum = 1;
                RdProgressBar.Maximum = Convert.ToInt32(_IDaysInMonth) + 1;
                RdProgressBar.Value1  = 1;
                RdLlbMessage.Text     = "Starting Downloading!! Please Wait....";
                RdLlbMessage.Update();
                Application.DoEvents();
                DtBhavCopyFile.Rows.Clear();
                for (int i = 0; i <= _IDaysInMonth; i++)
                {
                    //lSelect cFileName dFileDate cFileDownLoadStatus  // cFileLoation  lFileDownloaded
                    DataRow  _DataBhavCopyFileRow = DtBhavCopyFile.NewRow();
                    DateTime _DtMonthDate         = _DtpFromDate.AddDays(Convert.ToDouble(i));

                    if (_DtMonthDate.DayOfWeek.ToString() == "Sunday" || _DtMonthDate.DayOfWeek.ToString() == "Saturday")
                    {
                        continue;
                    }


                    string StrUrl = "";
                    StrUrl = @"/" + _DtMonthDate.Year + @"/" + _DtMonthDate.ToString("MMM").ToUpper() + @"/cm" + _DtMonthDate.ToString("ddMMMyyyy").ToUpper() + "bhav.csv.zip";

                    _DataBhavCopyFileRow["cFileName"] = "cm" + _DtMonthDate.ToString("ddMMMyyyy").ToUpper() + "bhav.csv.zip";
                    _DataBhavCopyFileRow["dFileDate"] = _DtMonthDate.ToShortDateString();
                    RdLlbMessage.Text = "Checking InterNet Connection !! Please Wait....";
                    RdLlbMessage.Update();
                    Application.DoEvents();
                    if (CheckForInternetConnection() == true)
                    {
                        RdLlbMessage.Text = "Checking File " + "cm" + _DtMonthDate.ToString("ddMMMyyyy") + "bhav.csv.zip" + " Exists Or Not !! Please Wait....";
                        RdLlbMessage.Update();
                        Application.DoEvents();
                        string StrNseUrl = "https://www.nseindia.com/content/historical/EQUITIES";

                        if (CheckFileExists(StrNseUrl + StrUrl) == false)
                        {
                            StrNseUrl = "https://www1.nseindia.com/content/historical/EQUITIES";
                            //https://www1.nseindia.com/content/historical/EQUITIES/2020/JAN/cm08JAN2020bhav.csv.zip
                            if (CheckFileExists(StrNseUrl + StrUrl) == false)
                            {
                                RdLlbMessage.Text = "File " + _DtMonthDate.ToString("ddMMMyyyy") + " Bhav-Copy " + " Not Found .";
                                _DataBhavCopyFileRow["cFileDownLoadStatus"] = RdLlbMessage.Text;
                                _DataBhavCopyFileRow["cFileLoation"]        = "";
                                _DataBhavCopyFileRow["lFileDownloaded"]     = false;
                                DtBhavCopyFile.Rows.Add(_DataBhavCopyFileRow);
                                continue;
                            }
                            RdLlbMessage.Text = "File " + _DtMonthDate.ToString("ddMMMyyyy") + " Bhav-Copy " + " Exists.";
                        }
                        string StrTempFolder = System.IO.Path.GetTempPath();
                        StrNseUrl = "https://www1.nseindia.com/content/historical/EQUITIES";
                        StrNseUrl = StrNseUrl + StrUrl;


                        string    traget    = Path.Combine(Path.GetTempPath(), Path.GetFileName(StrNseUrl));
                        WebClient webClient = new WebClient();

                        string accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

                        string agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1";

                        webClient.Headers.Add(HttpRequestHeader.Accept, accept);

                        webClient.Headers.Add(HttpRequestHeader.UserAgent, agent);

                        webClient.UseDefaultCredentials = true;

                        webClient.DownloadFile(StrNseUrl, traget);

                        webClient.Dispose();
                        System.Threading.Thread.Sleep(10000);
                        _DataBhavCopyFileRow["cFileDownLoadStatus"] = "Download Completed.";
                        _DataBhavCopyFileRow["cFileLoation"]        = StrTempFolder + "cm" + _DtMonthDate.ToString("ddMMMyyyy") + "bhav.csv.zip";
                        _DataBhavCopyFileRow["lFileDownloaded"]     = true;
                        RdLlbMessage.Text = "File " + _DtMonthDate.ToString("ddMMMyyyy") + " Bhav-Copy " + " Downloaded.";
                        //}
                    }
                    else
                    {
                        _DataBhavCopyFileRow["cFileDownLoadStatus"] = "No InterNet Connection.";
                        _DataBhavCopyFileRow["cFileLoation"]        = "";
                        _DataBhavCopyFileRow["lFileDownloaded"]     = false;
                    }
                    DtBhavCopyFile.Rows.Add(_DataBhavCopyFileRow);
                    RdProgressBar.Value1 = RdProgressBar.Value1 >= RdProgressBar.Maximum ? RdProgressBar.Maximum : RdProgressBar.Value1 + 1;
                    RdStatusStrip.Refresh();
                }

                RdLlbMessage.Text = "Download Completed.";
                RdLlbMessage.Text = "";
                RdLlbMessage.Update();
                Application.DoEvents();
                //ClsMessage._IClsMessage.showMessage("Download completed!");
                RdProgressBar.Value1         = 1;
                RdGrdBhavCopyFile.DataSource = DtBhavCopyFile.DefaultView;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }