public void ProcessCanNotBeUpdatedWhileItEdit()
        {
            IListModel <IEventModel> model = new ListModel <IEventModel>();

            List <IItemModelAdapter <IEventModel> > items = new List <IItemModelAdapter <IEventModel> >();

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(235235, "Ivanovo", DateTime.Now, "Ivanovo station. 5 min.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(945853, "Airport", DateTime.Now, "Airport station. 15 min.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(124590, "Lake", DateTime.Now, "Lake station. 5 min. Temporarily closed.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(744935, "Central station.", DateTime.Now, "Central station. 7 min.")));

            model.AddItems(items);

            var creator           = new EventViewModelCreator();
            var eventModelCreator = new EventModelAdapterCreator();

            var vmFirst = new ListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel>(model, creator, eventModelCreator);

            vmFirst.LetUpdate = false;
            IListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel> viewModelFirst = vmFirst;

            var itemsVMFirst = viewModelFirst.ItemsVM;

            var vmSecond = new ListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel>(model, creator, eventModelCreator);

            vmSecond.LetUpdate = false;
            IListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel> viewModelSecond = vmSecond;

            var itemsVMSecond = viewModelSecond.ItemsVM;


            viewModelFirst.EditListCommand.Execute(null);

            viewModelSecond.EditListCommand.Execute(null);

            viewModelSecond.AddItemCommand.Execute(null);

            viewModelSecond.CurrentVM.DataViewModel.Id          = 5374623654;
            viewModelSecond.CurrentVM.DataViewModel.Name        = "XX century";
            viewModelSecond.CurrentVM.DataViewModel.Description = "station was built in XX century.";

            viewModelSecond.CurrentVM.SaveCommand.Execute(null);

            viewModelSecond.SaveListCommand.Execute(null);

            Assert.IsNull(itemsVMFirst.FirstOrDefault(ev => ev.DataViewModel.Name == "XX century"));

            Assert.IsTrue(itemsVMFirst.Count == 4);
        }
 public ProcessViewModel(IProcessModel model, EventViewModelCreator creator,
                         EventModelAdapterCreator eventModelCreator)
 {
     _model = model;
     Events = new ListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel>(_model, creator, eventModelCreator);
 }