private AuthenticationLevel LoginToIndividualSource(string sourceAlias, string username, string password) { AuthenticationLevel ret = AuthenticationLevel.None; try { string wsId = m_SysConfig.GetDefaultConfig().WorkstationAlias; UserInfo userInfo = new UserInfo(username, password); WorkstationInfo wsInfo = new WorkstationInfo(wsId, userInfo); LoginResponse loginResponse = m_DataSourceAccess.Login(sourceAlias, wsInfo); ret = loginResponse.UserAuthenticationLevel; if (!ret.Equals(AuthenticationLevel.None)) { SysConfiguration sysConfig = new SysConfiguration(); sysConfig.ID = sourceAlias; sysConfig.ContainerDBConnectionString = loginResponse.systemConfiguration.ContainerDBConnectString; sysConfig.ContainerRefreshPeriodmsecs = loginResponse.systemConfiguration.ContainerRefreshPeriodSeconds * 1000; if (m_SysConfig.Contains(sourceAlias)) { m_SysConfig.Delete(sourceAlias); } m_SysConfig.Add(sysConfig); if (m_SysConfig.UserProfileManager.Profile == null) { ProfileObject profile = ProfileTranslator.Translate(loginResponse.UserProfile, 4); profile.SourceAlias = sourceAlias; profile.UserName = wsInfo.userInfo.UserName; profile.Password = wsInfo.userInfo.Password; m_SysConfig.UserProfileManager.Profile = profile; m_SysConfig.UserProfileManager.Profile.ProfileUpdatedEvent += new ProfileUpdated(ProfileUpdated); } DataSet caselist = null; m_DataSourceAccess.GetCaseList(sourceAlias, out caselist); if (caselist != null) { CaseListDataSet caseListDataSet = (CaseListDataSet)caselist; caseListDataSet.CaseListTable.CaseListTableRowChanged += new CaseListDataSet.CaseListTableRowChangeEventHandler(CaseListTable_CaseListTableRowChanged); } } } catch (Exception ex) { throw ex; } return(ret); }
private void Tab1GetCaseListButton_Click(object sender, RoutedEventArgs e) { CaseListDataSet caseListDataSet = m_AWSCommEndPoint1.RequestCaseList(m_AWSId); Tab1CaseListBox.Items.Clear(); foreach (DataRow row in caseListDataSet.Tables[0].Rows) { Tab1CaseListBox.Items.Add(row[caseListDataSet.CaseListTable.CaseIdColumn].ToString()); } }
void Source_listBox_SelectionChanged(object sender, RoutedEventArgs e) { ListBox ListBox1 = sender as ListBox; try { Source_dataGrid.DataContext = null; SelectedCaseSource = ListBox1.SelectedItem as CaseSourcesObject; if (SelectedCaseSource != null && SelectedCaseSource.IsLoggedIn) { string selectedItem = SelectedCaseSource.Name; try { DataSet tempDataSet; m_SysMgr.GetCaseList(selectedItem, out tempDataSet); m_CaseList = (CaseListDataSet)tempDataSet; var CaseListview = (ExtendedCollectionViewSource)FindResource("cvs"); CaseListview.Source = m_CaseList.Tables[0].DefaultView; Source_dataGrid.DataContext = CaseListview; Source_dataGrid.SelectedIndex = -1; foreach (DataGridColumn column in Source_dataGrid.Columns) { string path = BindingOperations.GetBindingExpression(column, DataGridColumn.HeaderProperty).ParentBinding.Path.Path; if (path == "UpdateTime") { ListSortDirection direction = ListSortDirection.Descending; column.SortDirection = direction; SortCaseList(direction, column); break; } } } catch (Exception ex) { //TODO: Log error } if (selectedItem.Contains("AWSComm")) { m_SysConfigMgr.GetConfig(selectedItem); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public CaseListDataSet getAllEntries(UInt16 timeSpan) { string queryString; if (timeSpan > 0) { DateTime datetime = DateTime.Now.AddDays(-timeSpan); queryString = QuerySelectRowString + " WHERE UpdateTime >= '" + datetime + "' ORDER BY UpdateTime DESC"; } else { queryString = QuerySelectRowString + " ORDER BY UpdateTime DESC"; } try { int rows; CaseListDataSet ds = new CaseListDataSet(); // Create the DbCommand. DbCommand SelectTableCommand = factory.CreateCommand(); SelectTableCommand.CommandText = queryString; SelectTableCommand.Connection = connection; //adapter = factory.CreateDataAdapter(); adapter.SelectCommand = SelectTableCommand; rows = adapter.Fill(ds.CaseListTable); //foreach (CaseListDataSet.CaseListTableRow row in ds.CaseListTable) //{ // try // { // row[ds.CaseListTable.ResultColumn] = Enum.GetName(typeof(WorkstationDecision), Convert.ToInt32(row[ds.CaseListTable.ResultColumn])); // } // catch (Exception) // { // row[ds.CaseListTable.ResultColumn] = WorkstationDecision.Unknown; // } //} return(ds); } catch (Exception exp) { throw exp; } }
public override void PopulateCaseList() { CaseListDataSet ds = new CaseListDataSet(); try { // get all entries from the database ds = m_ArchiveDB.getAllEntries(0); List.Merge(ds); } catch (Exception exp) { throw exp; } }
private void GetCaseList(CaseSource <T> caseSourceT, string alias) { try { caseSourceT.CaseList = new CaseListDataSet(); CaseListDataSet tempCaseList = caseSourceT.EndPoint.RequestCaseList(m_WSId); lock (caseSourceT.CaseListLock) { caseSourceT.CaseList.Merge(tempCaseList); } } catch (Exception ex) { RemoveSource(caseSourceT); throw; } }
override public void update(CaseListDataSet.CaseListTableDataTable table) { try { if (connection.State == ConnectionState.Closed) connection.Open(); adapter.Update(table); if (table.HasErrors) { CaseListDataSet.CaseListTableRow[] rows = (CaseListDataSet.CaseListTableRow[])table.GetErrors(); foreach (CaseListDataSet.CaseListTableRow row in rows) { if (row.RowState == DataRowState.Added && row.RowError.Contains("duplicate")) UpdateCaseFields(row); else base.logger.PrintInfoLine(row.RowError); } } } catch (DbException ex) { //duplicate row being inserted error if (ex.ErrorCode == -2146232060) { CaseListDataSet.CaseListTableRow[] rows = (CaseListDataSet.CaseListTableRow[])table.GetErrors(); foreach (CaseListDataSet.CaseListTableRow row in rows) { if(row.RowState == DataRowState.Added) UpdateCaseFields(row); } } else throw; } catch { throw; } }
public int LoadDataSet(CaseListDataSet csDataSet) { int rowAffected = 0; try { rowAffected = m_adapter.Fill(csDataSet.CaseListTable); } catch (SqlCeException sqlexception) { throw sqlexception; } catch (Exception ex) { throw ex; } return(rowAffected); }
override public CaseListDataSet query(string caseid) { try { string queryString = QuerySelectRowString + " WHERE CaseId = '" + caseid + "'"; int rows; CaseListDataSet ds = new CaseListDataSet(); // Create the DbCommand. DbCommand SelectTableCommand = factory.CreateCommand(); SelectTableCommand.CommandText = queryString; SelectTableCommand.Connection = connection; //adapter = factory.CreateDataAdapter(); adapter.SelectCommand = SelectTableCommand; rows = adapter.Fill(ds.CaseListTable); foreach (CaseListDataSet.CaseListTableRow row in ds.CaseListTable) { try { row[ds.CaseListTable.ResultColumn] = Enum.GetName(typeof(WorkstationDecision), Convert.ToInt32(row[ds.CaseListTable.ResultColumn])); } catch (Exception) { row[ds.CaseListTable.ResultColumn] = WorkstationDecision.Unknown; } } return(ds); } catch { throw; } }
virtual public void update(CaseListDataSet.CaseListTableDataTable table) { }
public override void PopulateCaseList() { CaseListDataSet ds = new CaseListDataSet(); try { // get all entries from the database ds = m_ArchiveDB.getAllEntries(0); List.Merge(ds); } catch (Exception exp) { throw exp; } }
void Source_listBox_SelectionChanged(object sender, RoutedEventArgs e) { ListBox ListBox1 = sender as ListBox; try { Source_dataGrid.DataContext = null; SelectedCaseSource = ListBox1.SelectedItem as CaseSourcesObject; if (SelectedCaseSource != null && SelectedCaseSource.IsLoggedIn) { string selectedItem = SelectedCaseSource.Name; try { DataSet tempDataSet; m_SysMgr.GetCaseList(selectedItem, out tempDataSet); m_CaseList = (CaseListDataSet)tempDataSet; var CaseListview = (ExtendedCollectionViewSource)FindResource("cvs"); CaseListview.Source = m_CaseList.Tables[0].DefaultView; Source_dataGrid.DataContext = CaseListview; Source_dataGrid.SelectedIndex = -1; foreach (DataGridColumn column in Source_dataGrid.Columns) { string path = BindingOperations.GetBindingExpression(column, DataGridColumn.HeaderProperty).ParentBinding.Path.Path; if (path == "UpdateTime") { ListSortDirection direction = ListSortDirection.Descending; column.SortDirection = direction; SortCaseList(direction, column); break; } } } catch (Exception ex) { //TODO: Log error } if (selectedItem.Contains("AWSComm")) m_SysConfigMgr.GetConfig(selectedItem); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public CaseListDataSet getAllEntries(UInt16 timeSpan) { string queryString; if (timeSpan > 0) { DateTime datetime = DateTime.Now.AddDays(-timeSpan); queryString = QuerySelectRowString + " WHERE UpdateTime >= '" + datetime + "' ORDER BY UpdateTime DESC"; } else queryString = QuerySelectRowString + " ORDER BY UpdateTime DESC"; try { int rows; CaseListDataSet ds = new CaseListDataSet(); // Create the DbCommand. DbCommand SelectTableCommand = factory.CreateCommand(); SelectTableCommand.CommandText = queryString; SelectTableCommand.Connection = connection; //adapter = factory.CreateDataAdapter(); adapter.SelectCommand = SelectTableCommand; rows = adapter.Fill(ds.CaseListTable); //foreach (CaseListDataSet.CaseListTableRow row in ds.CaseListTable) //{ // try // { // row[ds.CaseListTable.ResultColumn] = Enum.GetName(typeof(WorkstationDecision), Convert.ToInt32(row[ds.CaseListTable.ResultColumn])); // } // catch (Exception) // { // row[ds.CaseListTable.ResultColumn] = WorkstationDecision.Unknown; // } //} return ds; } catch (Exception exp) { throw exp; } }
public void UpdateCaseFields(CaseListDataSet.CaseListTableRow row) { try { string ImageStr = "0x" + BitConverter.ToString(row.Image).Replace("-", string.Empty); string updateString = "UPDATE ArchiveData SET " + "[CaseId]= '" + row.CaseId + "'" + ", [ReferenceImage]= " + Convert.ToInt32(row.ReferenceImage) + ", [ObjectId]= '" + row.ObjectId + "'" + ", [AnalystComment]= '" + row.AnalystComment + "'" + ", [FlightNumber]= '" + row.FlightNumber + " '" + ", [Analyst]= '" + row.Analyst + "'" + ", [CaseDirectory]= '" + row.CaseDirectory + "'" + ", [Result]= " + row.Result + ", [UpdateTime]= '" + row.UpdateTime.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss'.'fff") + "'" + ", [Archived]= " + Convert.ToInt32(row.Archived) + ", [AnalysisTime]= " + row.AnalysisTime + ", [DFCMatch]= " + Convert.ToInt32(row.DFCMatch) + ", [CreateTime]= '" + row.CreateTime.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss'.'fff") + "'" + ", [Image] = " + ImageStr + " WHERE CaseId='" + row.CaseId + "' AND ReferenceImage= " + Convert.ToInt32(row.ReferenceImage); base.UpdateDatabasePartialEntry(updateString); } catch { throw; } }
public override void UpdateCaseList(Boolean modifyExistingEntry, string casefile) { CaseListDataSet ds = new CaseListDataSet(); try { //if case has been added to the temporary archive and case.xml file exist if (/*!modifyExistingEntry && */ casefile.EndsWith("\\case.xml")) { if (m_ContainerDBPresent) { String casefilepath = casefile.Substring(0, casefile.LastIndexOf("\\")); String caseFile = casefile.Substring(casefile.LastIndexOf("\\") + 1); CaseObject caseObj = base.GetCaseObj(casefilepath, caseFile); bool DFCMatch = false; //udpate Container DB if (caseObj != null) { if (caseObj.scanInfo != null) { if (caseObj.scanInfo.container != null) { if (caseObj.scanInfo.container.Id != null) { try { DataRow Row = m_ContainerDB.query(caseObj.scanInfo.container.Id); //If case's container Id exist in the container database table if (Row != null) { bool ImageExists = false; foreach (DataAttachment attach in caseObj.attachments.GetXrayImageAttachments()) { if (attach.attachmentId.Contains(".pxe")) { ImageExists = true; break; } } int SequenceNum = -1; int BatchNum = -1; //if case.xml lists sequence number and container DB CheckInSequence value is not listed //then go ahead and update the db from xml file value. if (caseObj.scanInfo != null && caseObj.scanInfo.container != null && !String.IsNullOrWhiteSpace(caseObj.scanInfo.container.SequenceNum) && m_ContainerDB.GetSequenceNumber(Row) == 0) { SequenceNum = Convert.ToInt32(caseObj.scanInfo.container.SequenceNum); } if (caseObj.scanInfo != null && caseObj.scanInfo.conveyance != null && !String.IsNullOrWhiteSpace(caseObj.scanInfo.conveyance.BatchNum) && m_ContainerDB.GetBatchNumber(Row) == 0) { BatchNum = Convert.ToInt32(caseObj.scanInfo.conveyance.BatchNum); } int StatusMajor = 30; if (caseObj.ResultsList != null && caseObj.ResultsList.Count > 0) { result tempResult = caseObj.ResultsList[0]; DateTime tempDt = Convert.ToDateTime(tempResult.CreateTime); foreach (result res in caseObj.ResultsList) { DateTime dt = Convert.ToDateTime(res.CreateTime); if (dt.CompareTo(tempDt) > 0) { tempResult = res; } } if (tempResult.Decision == WorkstationDecision.Clear.ToString()) { StatusMajor = 40; } else if (tempResult.Decision == WorkstationDecision.Reject.ToString()) { StatusMajor = 60; } else if (tempResult.Decision == WorkstationDecision.Caution.ToString()) { if (tempResult.Reason == WorkstationReason.NoImage.ToString()) { StatusMajor = 30; } else { StatusMajor = 50; } } } int rowsUpdated = 0; //update container db with statusMajor, ImageExists, SequenceNum and BatchNum if (SequenceNum > 0 && BatchNum > 0) { rowsUpdated = m_ContainerDB.Update(Row, StatusMajor, ImageExists, SequenceNum, BatchNum); } //update container db with statusMajor, ImageExists and SequenceNum else if (SequenceNum > 0) { rowsUpdated = m_ContainerDB.UpdateStatusImageAndSeq(Row, StatusMajor, ImageExists, SequenceNum); } //update container db with statusMajor, ImageExists and Batch else if (BatchNum > 0) { rowsUpdated = m_ContainerDB.UpdateStatusImageAndBatch(Row, StatusMajor, ImageExists, BatchNum); } ////update container db with statusMajor and ImageExists else { rowsUpdated = m_ContainerDB.Update(Row, StatusMajor, ImageExists); } logger.PrintInfoLine("Container DB updated " + rowsUpdated + " row(s), FlightNumber = " + Row["FlightNumber"] + " ULDNumber = " + Row["ULDNumber"]); DFCMatch = true; } } catch (Exception ex) { logger.PrintInfoLine(ex.Message); } } } } } base.m_isDFCMatch = DFCMatch; } base.UpdateCaseList(modifyExistingEntry, casefile); } } catch (Exception exp) { throw exp; } }
override public CaseListDataSet query(string caseid) { try { string queryString = QuerySelectRowString + " WHERE CaseId = '" + caseid + "'"; int rows; CaseListDataSet ds = new CaseListDataSet(); // Create the DbCommand. DbCommand SelectTableCommand = factory.CreateCommand(); SelectTableCommand.CommandText = queryString; SelectTableCommand.Connection = connection; //adapter = factory.CreateDataAdapter(); adapter.SelectCommand = SelectTableCommand; rows = adapter.Fill(ds.CaseListTable); foreach (CaseListDataSet.CaseListTableRow row in ds.CaseListTable) { try { row[ds.CaseListTable.ResultColumn] = Enum.GetName(typeof(WorkstationDecision), Convert.ToInt32(row[ds.CaseListTable.ResultColumn])); } catch (Exception) { row[ds.CaseListTable.ResultColumn] = WorkstationDecision.Unknown; } } return ds; } catch { throw; } }
public CaseListUpdate(CaseListDataSet list, CaseListUpdateState state) { m_state = state; m_dsCaseList = list; }
public CaseListUpdate() { m_state = CaseListUpdateState.None; m_dsCaseList = null; }
public int LoadDataSet(CaseListDataSet csDataSet) { int rowAffected = 0; try { rowAffected = m_adapter.Fill(csDataSet.CaseListTable); } catch (SqlCeException sqlexception) { throw sqlexception; } catch (Exception ex) { throw ex; } return rowAffected; }
override public void update(CaseListDataSet.CaseListTableDataTable table) { try { if (m_connection.State == ConnectionState.Closed) m_connection.Open(); SqlCeTransaction se = m_connection.BeginTransaction(IsolationLevel.Serializable); try { m_adapter.Update(table); } catch (Exception ex) { m_connection.Close(); m_connection.Open(); se = m_connection.BeginTransaction(IsolationLevel.Serializable); m_adapter.Update(table); } se.Commit(CommitMode.Immediate); } catch (SqlCeException ex) { if (!ex.Message.Contains("duplicate")) throw; } catch { throw; } }
override public void update(CaseListDataSet.CaseListTableDataTable table) { }
public void CreateTable(CaseListDataSet.CaseListTableDataTable table) { SqlCeCommand cmd; //if table already exist then take not action string tableAlreadyExist = "Select * from information_schema.tables where table_name = 'LocalArchiveData'"; cmd = new SqlCeCommand(tableAlreadyExist, m_connection); object result; try { result =cmd.ExecuteScalar(); } catch (SqlCeException sqlexception) { throw sqlexception; } catch (Exception ex) { throw ex; } if (result == null) { string sql = "create table LocalArchiveData ("; foreach (DataColumn column in table.Columns) { string datatype = "nvarchar (256)"; String allowNull = string.Empty; if (column.ColumnName == "Image") datatype = "image"; switch (column.ColumnName) { case "Image": datatype = "image"; break; case "CaseId": datatype = "nvarchar (24)"; allowNull = "not null"; break; case "Result": datatype = "nvarchar (24)"; break; case "AnalystComment": datatype = "nvarchar (256)"; break; case "ObjectId": case "FlightNumber": case "CreateTime": datatype = "nvarchar (50)"; break; case "Analyst": datatype = "nvarchar (64)"; break; case "CaseDirectory": datatype = "nvarchar (96)"; break; case "ReferenceImage": datatype = "bit"; allowNull = "not null"; break; case "Archived": case "DFCMatch": datatype = "bit"; break; case "UpdateTime": datatype = "datetime"; break; case "AnalysisTime": datatype = "int"; break; } if(column.ColumnName != "CTI" && column.ColumnName != "Area" && column.ColumnName != "AssignedId") sql += column.ColumnName + " " + datatype + " " + allowNull + ", "; } sql += "Constraint PK Primary Key ("; foreach (DataColumn column in table.PrimaryKey) { sql += column.ColumnName + ", "; } sql = sql.Substring(0, sql.LastIndexOf(",")); sql += ") )"; cmd = new SqlCeCommand(sql, m_connection); try { cmd.ExecuteNonQuery(); } catch (SqlCeException sqlexception) { throw sqlexception; } catch (Exception ex) { throw ex; } } try { string cmdText = "INSERT INTO LocalArchiveData (CaseId, AnalystComment, ObjectId, FlightNumber, Analyst, CaseDirectory, ReferenceImage, Result, UpdateTime, CreateTime, Image, DFCMatch) " + "VALUES (@CaseId, @AnalystComment, @ObjectId, @FlightNumber, @Analyst, @CaseDirectory, @ReferenceImage, @Result, @UpdateTime, @CreateTime, @Image, @DFCMatch)"; SqlCeCommand command = new SqlCeCommand(cmdText, m_connection); command.Parameters.Add("@CaseId", SqlDbType.NVarChar, 24, "CaseId"); command.Parameters.Add("@AnalystComment", SqlDbType.NVarChar, 256, "AnalystComment"); command.Parameters.Add("@ObjectId", SqlDbType.NVarChar, 50, "ObjectId"); command.Parameters.Add("@FlightNumber", SqlDbType.NVarChar, 50, "FlightNumber"); command.Parameters.Add("@Analyst", SqlDbType.NVarChar, 64, "Analyst"); command.Parameters.Add("@CaseDirectory", SqlDbType.NVarChar, 96, "CaseDirectory"); command.Parameters.Add("@ReferenceImage", SqlDbType.Bit, 1, "ReferenceImage"); command.Parameters.Add("@Result", SqlDbType.NVarChar, 24, "Result"); command.Parameters.Add("@UpdateTime", SqlDbType.DateTime, 50, "UpdateTime"); command.Parameters.Add("@CreateTime", SqlDbType.NVarChar, 50, "CreateTime"); command.Parameters.Add("@Image", SqlDbType.Image, 20000, "Image"); command.Parameters.Add("@DFCMatch", SqlDbType.Bit, 1, "DFCMatch"); m_adapter.InsertCommand = command; cmdText = "UPDATE LocalArchiveData SET CaseId = @CaseId, AnalystComment = @AnalystComment, ObjectId = @ObjectId," + "FlightNumber = @FlightNumber, Analyst = @Analyst, CaseDirectory = @CaseDirectory, ReferenceImage = @ReferenceImage," + "Result = @Result, UpdateTime = @UpdateTime, CreateTime = @CreateTime, Image = @Image, DFCMatch = @DFCMatch " + "WHERE CaseId = @oldCaseId AND ReferenceImage = @oldReferenceImage"; command = new SqlCeCommand(cmdText, m_connection); command.Parameters.Add("@CaseId", SqlDbType.NVarChar, 24, "CaseId"); command.Parameters.Add("@AnalystComment", SqlDbType.NVarChar, 256, "AnalystComment"); command.Parameters.Add("@ObjectId", SqlDbType.NVarChar, 50, "ObjectId"); command.Parameters.Add("@FlightNumber", SqlDbType.NVarChar, 50, "FlightNumber"); command.Parameters.Add("@Analyst", SqlDbType.NVarChar, 64, "Analyst"); command.Parameters.Add("@CaseDirectory", SqlDbType.NVarChar, 96, "CaseDirectory"); command.Parameters.Add("@ReferenceImage", SqlDbType.Bit, 1, "ReferenceImage"); command.Parameters.Add("@Result", SqlDbType.NVarChar, 24, "Result"); command.Parameters.Add("@UpdateTime", SqlDbType.DateTime, 50, "UpdateTime"); command.Parameters.Add("@CreateTime", SqlDbType.NVarChar, 50, "CreateTime"); command.Parameters.Add("@Image", SqlDbType.Image, 20000, "Image"); command.Parameters.Add("@DFCMatch", SqlDbType.Bit, 1, "DFCMatch"); SqlCeParameter parameter = command.Parameters.Add("@oldCaseId", SqlDbType.NVarChar, 24, "CaseId"); parameter.SourceVersion = DataRowVersion.Original; parameter = command.Parameters.Add("@oldReferenceImage", SqlDbType.Bit, 1, "ReferenceImage"); parameter.SourceVersion = DataRowVersion.Original; m_adapter.UpdateCommand = command; cmdText = "DELETE FROM LocalArchiveData WHERE CaseId = @oldCaseId AND ReferenceImage = @oldReferenceImage"; command = new SqlCeCommand(cmdText, m_connection); parameter = parameter = command.Parameters.Add("@oldCaseId", SqlDbType.NVarChar, 24, "CaseId"); parameter.SourceVersion = DataRowVersion.Original; parameter = command.Parameters.Add("@oldReferenceImage", SqlDbType.Bit, 1, "ReferenceImage"); parameter.SourceVersion = DataRowVersion.Original; m_adapter.DeleteCommand = command; m_adapter.MissingSchemaAction = MissingSchemaAction.Ignore; } catch { throw; } }
public CaseListUpdate(CaseListDataSet list, CaseListUpdateState state) { m_state = state; m_dsCaseList = list; }
public CaseListUpdate() { m_state = CaseListUpdateState.None; m_dsCaseList = null; }
public override void UpdateCaseList(Boolean modifyExistingEntry, string casefile) { CaseListDataSet ds = new CaseListDataSet(); try { base.UpdateCaseList(modifyExistingEntry, casefile); //if case has been added to the temporary archive and case.xml file exist if (/*!modifyExistingEntry && */ casefile.EndsWith("\\case.xml")) { if (m_ContainerDBPresent) { String casefilepath = casefile.Substring(0, casefile.LastIndexOf("\\")); String caseFile = casefile.Substring(casefile.LastIndexOf("\\") + 1); CaseObject caseObj = base.GetCaseObj(casefilepath, caseFile); bool DFCMatch = false; //udpate Container DB if (caseObj != null) { if (caseObj.scanInfo != null) { if (caseObj.scanInfo.container != null) { if (caseObj.scanInfo.container.Id != null) { try { DataRow Row = m_ContainerDB.query(caseObj.scanInfo.container.Id); //If case's container Id exist in the container database table if (Row != null) { bool ImageExists = false; foreach (DataAttachment attach in caseObj.attachments.GetXrayImageAttachments()) { if (attach.attachmentId.Contains(".pxe")) { ImageExists = true; break; } } int SequenceNum = -1; int BatchNum = -1; //if case.xml lists sequence number and container DB CheckInSequence value is not listed //then go ahead and update the db from xml file value. if (caseObj.scanInfo != null && caseObj.scanInfo.container != null && !String.IsNullOrWhiteSpace(caseObj.scanInfo.container.SequenceNum) && m_ContainerDB.GetSequenceNumber(Row) == 0) { SequenceNum = Convert.ToInt32(caseObj.scanInfo.container.SequenceNum); } if (caseObj.scanInfo != null && caseObj.scanInfo.conveyance != null && !String.IsNullOrWhiteSpace(caseObj.scanInfo.conveyance.BatchNum) && m_ContainerDB.GetBatchNumber(Row) == 0) { BatchNum = Convert.ToInt32(caseObj.scanInfo.conveyance.BatchNum); } int StatusMajor = 30; if (caseObj.ResultsList != null && caseObj.ResultsList.Count > 0) { result tempResult = caseObj.ResultsList[0]; DateTime tempDt = Convert.ToDateTime(tempResult.CreateTime); foreach (result res in caseObj.ResultsList) { DateTime dt = Convert.ToDateTime(res.CreateTime); if (dt.CompareTo(tempDt) > 0) { tempResult = res; } } if (tempResult.Decision == WorkstationDecision.Clear.ToString()) StatusMajor = 40; else if (tempResult.Decision == WorkstationDecision.Reject.ToString()) StatusMajor = 60; else if (tempResult.Decision == WorkstationDecision.Caution.ToString()) { if (tempResult.Reason == WorkstationReason.NoImage.ToString()) StatusMajor = 30; else StatusMajor = 50; } } int rowsUpdated = 0; //update container db with statusMajor, ImageExists, SequenceNum and BatchNum if (SequenceNum > 0 && BatchNum > 0) { rowsUpdated = m_ContainerDB.Update(Row, StatusMajor, ImageExists, SequenceNum, BatchNum); } //update container db with statusMajor, ImageExists and SequenceNum else if (SequenceNum > 0) { rowsUpdated = m_ContainerDB.UpdateStatusImageAndSeq(Row, StatusMajor, ImageExists, SequenceNum); } //update container db with statusMajor, ImageExists and Batch else if (BatchNum > 0) { rowsUpdated = m_ContainerDB.UpdateStatusImageAndBatch(Row, StatusMajor, ImageExists, BatchNum); } ////update container db with statusMajor and ImageExists else { rowsUpdated = m_ContainerDB.Update(Row, StatusMajor, ImageExists); } logger.PrintInfoLine("Container DB updated " + rowsUpdated + " row(s), FlightNumber = " + Row["FlightNumber"] + " ULDNumber = " + Row["ULDNumber"]); DFCMatch = true; } } catch (Exception ex) { logger.PrintInfoLine(ex.Message); } } } } } base.m_isDFCMatch = DFCMatch; } } } catch (Exception exp) { throw exp; } }
private void CaseListTable_RowChanged(object sender, CaseListDataSet.CaseListTableRowChangeEvent e) { try { if (e.Action == System.Data.DataRowAction.Add) { CaseListUpdateEvent(e.Row.CaseId, String.Empty, true); } else if (e.Action == System.Data.DataRowAction.Delete) { CaseListUpdateEvent(e.Row.CaseId, String.Empty, false); } } catch { throw; } }
public void SendCaseList(String awsID, CaseList caselist) { int CaseListCount = caselist.List.CaseListTable.Count; int currentRowIndex = 0; CaseListDataSet.CaseListTableRow CurrentRow = null; if (CaseListCount > 0) { CurrentRow = (CaseListDataSet.CaseListTableRow)caselist.List.CaseListTable.Rows[currentRowIndex]; } while (CaseListCount > 0) { CaseListDataSet dataset = new CaseListDataSet(); int MaxIndexValue; //lock caselist lock (caselist.CaseListLock) { currentRowIndex = caselist.List.CaseListTable.Rows.IndexOf(CurrentRow); if (CaseListCount > MaxNumCasesPerBatch) { MaxIndexValue = currentRowIndex + MaxNumCasesPerBatch; } else { MaxIndexValue = currentRowIndex + CaseListCount; } for (int i = currentRowIndex; i < MaxIndexValue; i++) { CaseListDataSet.CaseListTableRow row = (CaseListDataSet.CaseListTableRow)caselist.List.CaseListTable.Rows[i]; dataset.CaseListTable.AddCaseListTableRow(row.CaseId, row.AnalystComment, row.ObjectId, row.FlightNumber, row.Analyst, row.CaseDirectory, row.ReferenceImage, row.Result, row.UpdateTime, row.Archived, row.AnalysisTime, row.CreateTime, row.Area, row.Image, row.CTI, row.AssignedId, row.DFCMatch); } if (CaseListCount > MaxNumCasesPerBatch) { CaseListCount = CaseListCount - MaxNumCasesPerBatch; currentRowIndex = currentRowIndex + MaxNumCasesPerBatch; CurrentRow = (CaseListDataSet.CaseListTableRow)caselist.List.CaseListTable.Rows[currentRowIndex]; } else { CaseListCount = CaseListCount - CaseListCount; } //unlock caselist } try { CaseListUpdate listupdate = new CaseListUpdate(dataset, CaseListUpdateState.Add); ICaseRequestManagerCallback callback = connectionList[awsID]; lock (m_UpdateCaseListLock) { callback.UpdatedCaseList(listupdate); } } catch (Exception exp) { if (logger != null) { logger.PrintLine("SendCaseList exp: " + exp); } connectionList.Remove(awsID); break; } } if (logger != null) { logger.PrintInfoLine("SendCaseList in chunks to " + awsID + " Done."); } }