private void SaveMethod()
        {
            StockUnit.UnitList = UnitList;
            if (!SetCard())
            {
                return;
            }

            foreach (var unit in UnitList)
            {
                unit.StockUnit = StockUnit;
            }

            if (!CheckValues())
            {
                return;
            }

            _stockUnitRepository.Save(StockUnit);

            var unitRepository = new UnitRepository();

            unitRepository.Save(UnitList);
            unitRepository.Delete(_itemsToDelete);

            foreach (var note in StockUnitNoteList)
            {
                note.StockUnit = StockUnit;
            }
            _stockUnitNoteRepository.Save(StockUnitNoteList);

            var fileRepository = new StockUnitFileRepository();

            if (!SaveStockUnitFiles())
            {
                return;
            }
            fileRepository.Save(StockUnitFiles);
            fileRepository.Delete(_deletedStockUnitFiles);

            var         user       = ApplicationState.GetValue <UserAcc>("User");
            ILogFactory logFactory = new LogFactory();
            var         logEntity  = logFactory.CreateMessage(user, StockUnit);
            var         repository = new Repository <Log>();

            repository.Save(logEntity);

            CloseAction();
        }
        private void InitViewModel(StockUnit stockUnit)
        {
            _itemsToDelete         = new List <Unit>();
            _addedFiles            = new List <string>();
            _deletedFiles          = new List <string>();
            _deletedStockUnitFiles = new List <StockUnitFile>();

            StockUnit = stockUnit;
            if (StockUnit.IsNew && StockUnit.UnitList == null)
            {
                StockUnit.UnitList = new List <Unit>();
            }

            InitLists();
            UnitList = new ObservableCollection <Unit>(StockUnit.UnitList);
            UnitList.CollectionChanged += UnitList_CollectionChanged;

            var documentRepository = new DocumentRepository();

            DocumnetsList = new ObservableCollection <Document>(documentRepository.GetByStockUnit(StockUnit));
            var repairRepository = new RepairRepository();

            RepairList = new ObservableCollection <Repair>(repairRepository.GetAllByStockUnit(StockUnit));
            var filesRepository = new StockUnitFileRepository();

            StockUnitFiles = new ObservableCollection <StockUnitFile>(filesRepository.GetByStockUnitId(StockUnit));

            StockUnitNoteList = !StockUnit.IsNew ?
                                new ObservableCollection <StockUnitNote>(_stockUnitNoteRepository.GetByStockUnitId(StockUnit))
                : new ObservableCollection <StockUnitNote>();

            var repository = new UnitRepository();

            ManufactureList = repository.GetManufactureList();
            ModelList       = repository.GetModelList();

            AddUnitCommand    = new RelayCommand(x => UnitList.Add(new Unit()));
            RemoveUnitCommand = new RelayCommand(x => RemoveMethod());
            ReportsCommand    = new RelayCommand(x => ReportsMethod());
            SaveCommand       = new RelayCommand(x => SaveMethod());
            CloseCommand      = new RelayCommand(x => CloseMethod());
            AddFileCommand    = new RelayCommand(x => AddFileMethod());
            RemoveFileCommand = new RelayCommand(x => RemoveFileMethod());
            OpenFileCommand   = new RelayCommand(x => OpenFileMethod());
            OpenFolderCommand = new RelayCommand(x => OpenFolderMethod());
        }