예제 #1
0
        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();
 }