private bool importMemberData( bool inNcwsa ) { bool curReturn = true, curTeamHeaderActive = false, curNcwsa = inNcwsa, curTourRegFmt = false; string inputBuffer, myfileName, MemberId; string[] inputCols; string[] inputColsSaved = null; char[] tabDelim = new char[] { '\t' }; DateTime curFileDate; SqlCeCommand sqlStmt = null; StreamReader myReader; DialogResult msgResp; int numCk = 0, idxMemberId = 0, idx2010FmtCheck = 18 ; int curInputLineCount = 0; myTourEventReg = new TourEventReg(); myMemberIdValidate = new MemberIdValidate(); myCountMemberInput = 0; myCountMemberAdded = 0; myCountMemberUpdate = 0; myCountTourRegAdded = 0; myCountSlalomAdded = 0; myCountTrickAdded = 0; myCountJumpAdded = 0; //Choose an input file to be processed String curPath = Properties.Settings.Default.ExportDirectory; OpenFileDialog myFileDialog = new OpenFileDialog(); myFileDialog.InitialDirectory = curPath; myFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; myFileDialog.FilterIndex = 2; try { if ( myFileDialog.ShowDialog() == DialogResult.OK ) { myfileName = myFileDialog.FileName; if ( myfileName == null ) { return false; } else { myProgressInfo.setProgessMsg( "File selected " + myfileName ); myProgressInfo.Show(); myProgressInfo.Refresh(); //Prepare database interaction combonents for processing SqlCeConnection myDbConn = new global::System.Data.SqlServerCe.SqlCeConnection(); //Get file date and prepare to read input data curFileDate = File.GetLastWriteTime( myfileName ); try { curInputLineCount = 0; myReader = new StreamReader( myfileName ); while ( ( inputBuffer = myReader.ReadLine() ) != null ) { curInputLineCount++; } myReader.Close(); myProgressInfo.setProgressMin( 1 ); myProgressInfo.setProgressMax( curInputLineCount ); } catch ( Exception ex ) { MessageBox.Show( "Error: Could not read file" + myFileDialog.FileName + "\n\nError: " + ex.Message ); return false; } curInputLineCount = 0; myReader = new StreamReader( myfileName ); try { //Open database connection myDbConn.ConnectionString = Properties.Settings.Default.waterskiConnectionStringApp; myDbConn.Open(); #region Process each input file data row while ( ( inputBuffer = myReader.ReadLine() ) != null ) { curInputLineCount++; myProgressInfo.setProgressValue( curInputLineCount ); //Initialize SQL statement variable for database processing sqlStmt = myDbConn.CreateCommand(); //Check input row to ensure it is a data row if ( inputBuffer.ToLower().IndexOf( "end-of-list" ) > -1 || inputBuffer.ToLower().IndexOf( "end of list" ) > -1 || inputBuffer.ToLower().IndexOf( "end_of_list" ) > -1 || inputBuffer.ToLower().IndexOf( "endoflist" ) > -1 ) { break; } else { inputCols = inputBuffer.Split( tabDelim ); if ( inputCols.Length > 8 ) { //Check first line of input file to analyze the file format supplied if ( curInputLineCount == 1 && curNcwsa == false ) { if ( inputCols.Length > 25 ) { if ( inputCols[26].ToLower().IndexOf( "membership status" ) > -1 ) { curTourRegFmt = true; } else if ( inputCols[25].ToLower().IndexOf( "membership status" ) > -1 ) { curTourRegFmt = true; } else if ( inputCols[12].ToLower().IndexOf( "membership status" ) > -1 ) { curNcwsa = true; } } else if (inputCols.Length > 12) { if (inputCols[12].ToLower().IndexOf( "membership status" ) > -1) { curNcwsa = true; } } } else { if ( inputCols[idxMemberId].Trim().Length > 10 ) { MemberId = inputCols[idxMemberId].Substring( 0, 3 ) + inputCols[idxMemberId].Substring( 4, 2 ) + inputCols[idxMemberId].Substring( 7, 4 ); } else { MemberId = "---"; } //If a valid member id is detected in the first column //assume valid record available for input if ( int.TryParse( MemberId.Substring( 0, 3 ), out numCk ) ) { curTeamHeaderActive = false; if (curNcwsa) { inputColsSaved = new String[inputCols.Length]; curReturn = procMemberInput( sqlStmt, inputCols, MemberId, curFileDate, curTourRegFmt, curNcwsa, inputColsSaved ); } else { curReturn = procMemberInput( sqlStmt, inputCols, MemberId, curFileDate, curTourRegFmt, curNcwsa, null ); } if ( curReturn ) { if (curNcwsa && inputColsSaved != null) { if ( inputColsSaved[0] != null ) { curReturn = procMemberInput( sqlStmt, inputColsSaved, MemberId, curFileDate, curTourRegFmt, curNcwsa, null ); } } } else { msgResp = MessageBox.Show( "Error encountered on last record./n Do you want to continue processing?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1 ); if ( msgResp == DialogResult.Yes ) { curReturn = true; } else { curReturn = false; break; } } } else { if ( inputCols[idxMemberId].ToLower().Equals( "end-of-list" ) || inputCols[idxMemberId].ToLower().Equals( "end of list" ) || inputCols[idxMemberId].ToLower().Equals( "end_of_list" ) || inputCols[idxMemberId].ToLower().Equals( "endoflist" ) ) { break; } else if ( ( inputCols[0].ToLower().IndexOf( "team header" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "teamheader" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "team-header" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "team_header" ) > -1 ) ) { curTeamHeaderActive = true; curReturn = procTeamHeaderInput( sqlStmt, inputCols, inNcwsa ); } else if ( inputCols[idxMemberId].ToLower().Equals( "tourn name:" ) ) { curTeamHeaderActive = false; String curInputSanctionId = inputCols[6]; if ( curInputSanctionId.Length > 6 ) { curInputSanctionId = curInputSanctionId.Substring( 0, 6 ); } if ( !( curInputSanctionId.Equals( mySanctionNum ) ) ) { String dialogMsg = "Sanction number on import file is " + inputCols[6] + "\n Current tournament being scored is " + mySanctionNum + "\n\n Do you still want to continue?"; msgResp = MessageBox.Show( dialogMsg, "Database Copy", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1 ); if ( msgResp == DialogResult.No ) { break; } } } else { if ( curTeamHeaderActive ) { curReturn = procTeamHeaderInput( sqlStmt, inputCols, inNcwsa ); } } } } } else { if ( inputCols.Length > 3 ) { if ( ( inputCols[0].ToLower().IndexOf( "team header" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "teamheader" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "team-header" ) > -1 ) || ( inputCols[0].ToLower().IndexOf( "team_header" ) > -1 ) ) { curTeamHeaderActive = true; curReturn = procTeamHeaderInput( sqlStmt, inputCols, inNcwsa ); } } } } } MessageBox.Show( "Info: Member import processed" + "\nMember records read: " + myCountMemberInput + "\nmyCountMemberAdded: " + myCountMemberAdded + "\nmyCountMemberUpdate: " + myCountMemberUpdate + "\nmyCountTourRegAdded: " + myCountTourRegAdded + "\nmyCountSlalomAdded: " + myCountSlalomAdded + "\nmyCountTrickAdded: " + myCountTrickAdded + "\nmyCountJumpAdded: " + myCountJumpAdded ); #endregion } catch ( Exception ex ) { String ExcpMsg = ex.Message; if ( sqlStmt != null ) { ExcpMsg += "\n" + sqlStmt.CommandText; } MessageBox.Show( "Error: Performing SQL operations" + "\n\nError: " + ExcpMsg ); } finally { myDbConn.Close(); myReader.Close(); myReader.Dispose(); } } } else { return false; } } catch ( Exception ex ) { MessageBox.Show( "Error: Could not read file" + myFileDialog.FileName + "\n\nError: " + ex.Message ); return false; } return true; }
private void EditMember_Load( object sender, EventArgs e ) { if ( Properties.Settings.Default.EditMember_Width > 0 ) { this.Width = Properties.Settings.Default.EditMember_Width; } if ( Properties.Settings.Default.EditMember_Height > 0 ) { this.Height = Properties.Settings.Default.EditMember_Height; } if ( Properties.Settings.Default.EditMember_Location.X > 0 && Properties.Settings.Default.EditMember_Location.Y > 0 ) { this.Location = Properties.Settings.Default.EditMember_Location; } mySanctionNum = Properties.Settings.Default.AppSanctionNum; if ( mySanctionNum == null ) { MessageBox.Show( "An active tournament must be selected from the Administration menu Tournament List option" ); } else { if ( mySanctionNum.Length < 6 ) { MessageBox.Show( "An active tournament must be selected from the Administration menu Tournament List option" ); } else { //Retrieve selected tournament attributes myDbConn = new global::System.Data.SqlServerCe.SqlCeConnection(); myDbConn.ConnectionString = Properties.Settings.Default.waterskiConnectionStringApp; DataTable curTourDataTable = getTourData(); if (curTourDataTable.Rows.Count > 0) { myTourRow = curTourDataTable.Rows[0]; AgeAsOfLabel.Text = AgeAsOfLabel.Text.Substring( 0, AgeAsOfLabel.Text.Length - 2 ) + mySanctionNum.Substring( 0, 2 ); myFedDropdownList = new FedDropdownList(); myMemberStatusDropdownList = new MemberStatusDropdownList(); myMemberIdValidate = new MemberIdValidate(); editFederation.DataSource = myFedDropdownList.DropdownList; editFederation.DisplayMember = "ItemName"; editFederation.ValueMember = "ItemValue"; editMemberStatus.DataSource = myMemberStatusDropdownList.DropdownList; editMemberStatus.DisplayMember = "ItemName"; editMemberStatus.ValueMember = "ItemValue"; if ( isEditRequest ) { this.Text = "Edit Member Information"; NextAvailableLabel.Visible = false; editMemberDataLoad(); } else { this.Text = "Add Member"; NextAvailableLabel.Visible = true; initMemberDataLoad(); } } else { MessageBox.Show( "An active tournament must be selected from the Administration menu Tournament List option" ); } } } }