public EditEntityWithThreadsViewModel(ThreadReferenceRepository threadReferenceRepository, ThreadRepository threadRepository, IDialogService dialogService) { _initialIds = new List <int>(); _threadIdsToRemove = new List <int>(); _threadReferenceRepository = threadReferenceRepository; _threadRepository = threadRepository; _dialogService = dialogService; AddThreadModel = new AddThreadModel(); AddThreadCommand = new RelayCommand(OnAddThread, CanAddThread); DeleteThreadCommand = new RelayCommand <TThread>(OnDeleteThread, CanDeleteThread); }
protected virtual void OnAddThread() { if (Model.Threads.Any(o => o.ThreadReference.BrandId == AddThreadModel.BrandId && o.ThreadReference.BrandName == AddThreadModel.BrandName)) { _dialogService.ShowInfo($"Thread {AddThreadModel.BrandName}-{AddThreadModel.BrandId} already added to the entity", "Duplicate Thread Reference"); return; } var threadReference = _threadReferenceRepository .Query(o => o.BrandId == AddThreadModel.BrandId && o.BrandName == AddThreadModel.BrandName) .SingleOrDefault(); if (threadReference == null) { _dialogService.ShowInfo($"Thread {AddThreadModel.BrandName}-{AddThreadModel.BrandId} could not be found in the inventory", "Missing Thread Reference"); return; } AddThreadModel = new AddThreadModel(); Model.Threads.Add(GenerateThread(threadReference)); }
public override void Initialise(object param) { Model = (param as TEntity) ?? new TEntity(); AddThreadModel = new AddThreadModel(); PopulateInitialIds(); }