public void SaveChanges(EditableAccDocumentHeader selectedHeader) { var existingParent = _uow.AccDocumentHeaders .Where(p => p.AccDocumentHeaderId == selectedHeader.AccDocumentHeaderId) .Include(p => p.AccDocumentItems) .SingleOrDefault(); if (existingParent != null) { // Update parent _uow.Entry(existingParent).CurrentValues.SetValues(selectedHeader); // Delete AccDocumentItems //foreach (var existingChild in existingParent.AccDocumentItems.ToList()) //{ // if (!selectedHeader.AccDocumentItems.Any(c => c.AccDocumentItemId == existingChild.AccDocumentItemId)) // _uow.AccDocumentItems.Remove(existingChild); //} //// Update and Insert AccDocumentItems //foreach (var childModel in selectedHeader.AccDocumentItems) //{ // var existingChild = existingParent.AccDocumentItems // .SingleOrDefault(c => c.AccDocumentItemId == childModel.AccDocumentItemId); // if (existingChild != null) // // Update child // _uow.Entry(existingChild).CurrentValues.SetValues(childModel); // else // { // // Insert child // var newChild = new AccDocumentItem // { // SLId = childModel.SLId, // DL1Id = childModel.DL1Id, // DL2Id = childModel.DL2Id // , // Debit = childModel.Debit, // Credit = childModel.Credit, // Description1 = childModel.Description1, // Description2 = childModel.Description2 // };// AutoMapper.Mapper.Map<EditableAccDocumentItem, AccDocumentItem>(childModel);// new AccDocumentItem // //{ // // //Data = childModel.Data, // // ////... // //}; // existingParent.AccDocumentItems.Add(newChild); // } //} _uow.SaveChanges(); } }
public OpeningClosingDocItemListViewModel(IAccDocumentItemsService accDocumentItemsService, ISLsService sLsService, IExchangeRatesService exchangeRatesService, ICurrenciesService currenciesService, ISLStandardDescriptionsService sLStandardDescriptionsService) { _accDocumentItemsService = accDocumentItemsService; _sLsService = sLsService; _exchangeRatesService = exchangeRatesService; _currenciesService = currenciesService; _sLStandardDescriptionsService = sLStandardDescriptionsService; //EditAccDocumentItemCommand = new RelayCommand<AccDocumentItem>(OnEditAccDocumentItem); DeleteCommand = new RelayCommand <EditableAccDocumentItem>(OnDeleteAccDocumentItem); // CancelCommand = new RelayCommand(OnCancel); SaveCommand = new RelayCommand(OnSave, CanSave); CancelCommand = new RelayCommand(OnCancel); SLsDropDownOpenedCommand = new RelayCommand(OnSLsDropDownOpened); DLsDropDownOpenedCommand = new RelayCommand <string>(OnDLsDropDownOpened); SLStandardDescriptionsDropDownOpenedCommand = new RelayCommand <string>(OnSLStandardDescriptionsDropDownOpened); CurrenciesDropDownOpenedCommand = new RelayCommand <string>(OnCurrenciesDropDownOpened); ExchangeRatesDropDownOpenedCommand = new RelayCommand <string>(OnExchangeRatesDropDownOpened); CanAdd = true; AccDocumentHeader = new EditableAccDocumentHeader(); }