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; } }
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; } }