public MainWindowViewModel(MainWindow mainWindow) { MainWindow = mainWindow; DataLayerAdapter = new DataLayerAdapter(); CurrentMode = EditContextMode.Soilders; InitializeData(); }
public void InitializeData() { try { var soilderMetaDataTable = DataLayerAdapter.ReadFromSoilderMetaDataTable(); SoilderMetaDataTable = new ObservableCollection <SoldierMetaData>(soilderMetaDataTable); IndexedSoilderMetaData = SoilderMetaDataTable.ToDictionary(i => i.Id, i => i); var equipmentMetaDataTable = DataLayerAdapter.ReadFromEquipmentMetaDataTable(); EquipmentMetaDataTable = new ObservableCollection <EquipmentMetaData>(equipmentMetaDataTable); IndexedEquipmentMetaData = equipmentMetaDataTable.ToDictionary(i => i.Id, i => i); var soilderEquipmentMappingTable = DataLayerAdapter.ReadFromSoilderEquipmentMappingTable(); var indexedSoilderEquipmentMapping = new Dictionary <string, List <string> >(); foreach (var soldierEquipmentMapping in soilderEquipmentMappingTable) { if (indexedSoilderEquipmentMapping.ContainsKey(soldierEquipmentMapping.SoilderId) == false) { indexedSoilderEquipmentMapping.Add(soldierEquipmentMapping.SoilderId, new List <string>()); } indexedSoilderEquipmentMapping[soldierEquipmentMapping.SoilderId].Add(soldierEquipmentMapping.EquipmentId); } var tmp = indexedSoilderEquipmentMapping.Select(i => new SoldierSignedEquipment(i.Key, i.Value)).ToList(); SoilderSignedEquipmentTable = new ObservableCollection <SoldierSignedEquipment>(tmp); //SoilderSignedEquipmentTable //indexedSoilderEquipmentMapping //IndexedSoilderIdToEquipmentId = soilderEquipmentMappingTable.ToDictionary(i => i.SoilderId, i => i.EquipmentId); //var soildersSignedEquipment = new List<SoilderSignedEquipment>(); /*foreach (var soilderId in IndexedSoilderIdToEquipmentId.Keys) * { * if (IndexedSoilderIdToEquipmentId * var soilderSignedEquipment = new SoilderSignedEquipment( * }*/ //IndexedSoilderIdToEquipmentId = new ObservableCollection<SoilderEquipmentMapping>(soilderEquipmentMappingTable); } catch (Exception e) { MessageBox.Show(e.ToString()); } }
internal bool ApplyEditChanges(EditOperationType operation, string firstValue, string secondValue) { if (operation == EditOperationType.Add) { if (string.IsNullOrEmpty(firstValue) || string.IsNullOrEmpty(secondValue)) { return(false); } switch (CurrentMode) { case EditContextMode.Soilders: var updatedSoilderMetaDataTable = new List <SoldierMetaData>(SoilderMetaDataTable); updatedSoilderMetaDataTable.Add(new SoldierMetaData(firstValue, secondValue)); DataLayerAdapter.WriteToSoilderMetaDataTable(updatedSoilderMetaDataTable); SoilderMetaDataTable = new ObservableCollection <SoldierMetaData>(updatedSoilderMetaDataTable); MainWindow.SoilderMetaDataItems.ItemsSource = null; MainWindow.SoilderMetaDataItems.ItemsSource = SoilderMetaDataTable; break; case EditContextMode.Equipment: var updatedEquipmentMetaDataTable = new List <EquipmentMetaData>(EquipmentMetaDataTable); updatedEquipmentMetaDataTable.Add(new EquipmentMetaData(firstValue, secondValue)); DataLayerAdapter.WriteToEquipmentMetaDataTable(updatedEquipmentMetaDataTable); EquipmentMetaDataTable = new ObservableCollection <EquipmentMetaData>(updatedEquipmentMetaDataTable); MainWindow.EquipmentMetaDataItems.ItemsSource = null; MainWindow.EquipmentMetaDataItems.ItemsSource = EquipmentMetaDataTable; break; case EditContextMode.SoildersEquipmentMapping: break; } } else if (operation == EditOperationType.Remove) { if (string.IsNullOrEmpty(firstValue) || string.IsNullOrEmpty(secondValue)) { return(false); } switch (CurrentMode) { case EditContextMode.Soilders: var updatedSoilderMetaDataTable = new List <SoldierMetaData>(SoilderMetaDataTable); updatedSoilderMetaDataTable.Remove(new SoldierMetaData(firstValue, secondValue)); if (updatedSoilderMetaDataTable.Count == SoilderMetaDataTable.Count) { return(false); } DataLayerAdapter.WriteToSoilderMetaDataTable(updatedSoilderMetaDataTable); SoilderMetaDataTable = new ObservableCollection <SoldierMetaData>(updatedSoilderMetaDataTable); MainWindow.SoilderMetaDataItems.ItemsSource = null; MainWindow.SoilderMetaDataItems.ItemsSource = SoilderMetaDataTable; break; case EditContextMode.Equipment: break; case EditContextMode.SoildersEquipmentMapping: break; } } return(true); }