public static void ReadReplaceItems(ref RevitSheetData sheetData) { try { sheetData.ItemMaps.Clear(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM ReplaceItems"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { RevitItemMapper item = new RevitItemMapper(); item.ItemId = reader.GetGuid(reader.GetOrdinal("ReplaceItem_Id")); item.ItemType = (MappingType)Enum.Parse(typeof(MappingType), reader.GetString(reader.GetOrdinal("ReplaceItem_Type"))); item.ParameterName = reader.GetString(reader.GetOrdinal("ReplaceItem_Parameter")); item.SourceValue = reader.GetString(reader.GetOrdinal("ReplaceItem_Source_Value")); item.TargetValue = reader.GetString(reader.GetOrdinal("ReplaceItem_Target_Value")); sheetData.ItemMaps.Add(item); } } } } catch (Exception ex) { string message = ex.Message; } }
private void dataGridItem_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { DataGridRow row = e.Row; if (null != row) { RevitItemMapper item = row.Item as RevitItemMapper; string propertyName = e.Column.Header.ToString(); switch (propertyName) { case "Source Value": TextBox sourceTextBox = e.EditingElement as TextBox; if (null != sourceTextBox) { var itemFound = from itemMap in rvtSheetData.ItemMaps where itemMap.SourceValue == sourceTextBox.Text && itemMap.ItemType == item.ItemType && itemMap.ItemId != item.ItemId select item; if (itemFound.Count() > 0) { MessageBoxResult msgResult = MessageBox.Show("[" + sourceTextBox.Text + "] Item already exists in the list. \nPlease enter a different value.", "Existing Value", MessageBoxButton.OK, MessageBoxImage.Information); if (msgResult == MessageBoxResult.OK) { e.Cancel = true; } } else { item.SourceValue = sourceTextBox.Text; bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.UPDATE); } } break; case "Target Value": TextBox targetTextBox = e.EditingElement as TextBox; if (null != targetTextBox) { item.TargetValue = targetTextBox.Text; bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.UPDATE); } break; } } } catch (Exception ex) { string message = ex.Message; } }
private void buttonAddItem_Click(object sender, RoutedEventArgs e) { try { if (null != comboBoxType.SelectedItem && null != comboBoxParameter.SelectedItem) { ItemMap itemMap = comboBoxType.SelectedItem as ItemMap; string parameter = comboBoxParameter.SelectedItem.ToString(); if (null != itemMap && !string.IsNullOrEmpty(parameter)) { string sampleSourceName = ""; double suffix = 0; if (dataGridItem.Items.Count > 0) { RevitItemMapper lastItem = dataGridItem.Items[dataGridItem.Items.Count - 1] as RevitItemMapper; sampleSourceName = lastItem.SourceValue.ToString(); if (DataGridUtils.GetSuffix(sampleSourceName, out suffix)) { sampleSourceName = sampleSourceName.Replace(suffix.ToString(), (suffix + 1).ToString()); } else { sampleSourceName += " " + (suffix + 1).ToString(); } } if (string.IsNullOrEmpty(sampleSourceName)) { sampleSourceName = "New Item 1"; } RevitItemMapper itemMapper = new RevitItemMapper(Guid.NewGuid(), itemMap.ItemMapType, parameter, sampleSourceName, ""); this.RvtSheetData.ItemMaps.Add(itemMapper); bool dbUpdated = SheetDataWriter.ChangeReplaceItem(itemMapper, CommandType.INSERT); } } } catch (Exception ex) { string message = ex.Message; } }
public static bool ChangeReplaceItem(RevitItemMapper item, CommandType cmdType) { bool result = false; try { if (null != connection && null != command) { switch (cmdType) { case CommandType.INSERT: command.CommandText = @"INSERT INTO ReplaceItems (ReplaceItem_Id, ReplaceItem_Type, ReplaceItem_Parameter, ReplaceItem_Source_Id, ReplaceItem_Source_Value, ReplaceItem_Target_Value) " + "VALUES ('" + item.ItemId.ToString() + "', '" + item.ItemType.ToString() + "', '" + item.ParameterName + "', '" + item.SourceId + "', '" + item.SourceValue + "', '" + item.TargetValue + "')"; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.UPDATE: command.CommandText = "UPDATE ReplaceItems SET ReplaceItem_Source_Value = '" + item.SourceValue.ToString() + "', ReplaceItem_Target_Value = '" + item.TargetValue.ToString() + "' WHERE ReplaceItem_Id = '" + item.ItemId.ToString() + "'"; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.DELETE: command.CommandText = "DELETE FROM ReplaceItems WHERE ReplaceItem_Id = '" + item.ItemId.ToString() + "'"; if (command.ExecuteNonQuery() > 0) { result = true; } break; } } } catch (Exception ex) { string message = ex.Message; } return(result); }
private static bool IsNewItem(object item) { bool isNewItem = false; try { if (item.GetType() == typeof(RevitItemMapper)) { RevitItemMapper replaceItem = item as RevitItemMapper; if (replaceItem.ItemId == Guid.Empty) { isNewItem = true; } } } catch (Exception ex) { string message = ex.Message; } return(isNewItem); }