示例#1
0
        public void SaveItemCommand_DoSave()
        {
            var fakeBattery = new BatteryType
            {
                name = "Test Battery"
            };

            Assert.That(fakeBattery.IsChanged, nameof(fakeBattery.IsChanged), Is.True);
            Assert.That(fakeBattery.name, Is.EqualTo("Test Battery"));
            //Assert.That(fakeBattery.displayName, Is.EqualTo(fakeBattery.name));

            var cmd = new SaveItemCommand();

            Assert.NotNull(cmd, nameof(SaveItemCommand));

            Assert.IsTrue(cmd.CanExecute(fakeBattery));

            cmd.Execute(fakeBattery);
            Assert.IsFalse(cmd.CanExecute(fakeBattery));

            var db = DataRepository.GetDataRepository;
            var fakeBatteryReplica = db.Load <BatteryType>(fakeBattery.PrimaryKey);

            Assert.NotNull(fakeBatteryReplica, nameof(fakeBatteryReplica));

            db.Delete(fakeBattery);
        }
示例#2
0
        public void SaveItemCommand_CanSave_NullConstraintsNotMet()
        {
            var fakeUnit = new EquipmentUnitType
            {
                name = "Test Trailer"
            };

            Assert.That(fakeUnit.IsChanged, nameof(fakeUnit.IsChanged), Is.True);
            Assert.That(fakeUnit.name, Is.EqualTo("Test Trailer"));
            Assert.That(fakeUnit.displayName, Is.EqualTo(fakeUnit.name));

            var cmd = new SaveItemCommand();

            Assert.NotNull(cmd, nameof(SaveItemCommand));

            // description and unitCode are both null, so can't save yet
            Assert.IsFalse(cmd.CanExecute(fakeUnit));

            fakeUnit.description = "My Description";
            Assert.IsFalse(cmd.CanExecute(fakeUnit));

            fakeUnit.unitCode = "T";
            Assert.IsTrue(cmd.CanExecute(fakeUnit));

            fakeUnit.AcceptChanges();
            Assert.IsFalse(cmd.CanExecute(fakeUnit));
        }
        private ICommand EnsureCommand(ECommandId idCommand)
        {
            NavigatorCommand command = null;

            lock (mSyncRoot)
            {
                command = mCachedCommands[(int)idCommand];
                if (command == null)
                {
                    switch (idCommand)
                    {
                    case ECommandId.NullRecord:
                        break;

                    case ECommandId.NextRecord:
                        command = new NextItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.PreviousRecord:
                        command = new PrevItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.FirstRecord:
                        command = new FirstItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.LastRecord:
                        command = new LastItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.GoToRecord:
                        break;

                    case ECommandId.AddRecord:
                        command = new AddItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.Save:
                        command = new SaveItemCommand(mViewDataManipulator);
                        break;

                    case ECommandId.DeleteRecord:
                        command = new DeleteItemCommand(mViewDataManipulator);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(nameof(idCommand), idCommand, null);
                    }

                    if (command != null)
                    {
                        mCachedCommands[(int)idCommand] = command;
                    }
                }
            }

            return(command);
        }
示例#4
0
 protected ViewModelCollection()
 {
     Status         = "Data nebyla načtena";
     RemoveItem     = new RemoveCommand <T>(this);
     SaveNewItem    = new SaveItemCommand <T>(this);
     DiscardNewItem = new DiscardItemCommand <T>(this);
     SaveChanges    = new SaveChangesCommand <T>(this);
     NewItem        = new T();
 }
示例#5
0
        private void addOrUpdateItems(UpdateOrderViewModel model, Order order)
        {
            var itemCmd = new SaveItemCommand(_itemRepository, _itemValidator);

            foreach (var item in model.Items)
            {
                var entity = item.Adapt <Item>();
                entity.PedidoId = order.Id;
                itemCmd.Execute(entity);
                AddNotifications(itemCmd);

                if (Invalid)
                {
                    break;
                }
            }
        }
示例#6
0
        public void SaveItemCommand_DoSave_ManyToMany()
        {
            var fakeUnit = new EquipmentUnitType
            {
                name        = "Test Trailer",
                description = "My Description",
                unitCode    = "T"
            };

            Assert.That(fakeUnit.IsChanged, nameof(fakeUnit.IsChanged), Is.True);
            Assert.That(fakeUnit.name, Is.EqualTo("Test Trailer"));
            Assert.That(fakeUnit.displayName, Is.EqualTo(fakeUnit.name));

            var cmd = new SaveItemCommand();

            Assert.NotNull(cmd, nameof(SaveItemCommand));

            fakeUnit.unitCode = "T";
            Assert.IsTrue(cmd.CanExecute(fakeUnit));

            var fakeSite = new SiteLocation
            {
                name      = "My Site",
                locSuffix = "My"
            };

            Assert.That(fakeSite.IsChanged, nameof(fakeSite.IsChanged), Is.True);
            Assert.That(fakeSite.name, Is.EqualTo("My Site"));

            fakeSite.equipmentUnitTypesAvailable.Add(fakeUnit);
            Assert.IsTrue(cmd.CanExecute(fakeSite));

            cmd.Execute(fakeSite);
            Assert.IsFalse(cmd.CanExecute(fakeSite));
            Assert.IsFalse(cmd.CanExecute(fakeUnit));

            var db = DataRepository.GetDataRepository;
            var fakeSiteReplica = db.Load <SiteLocation>(fakeSite.PrimaryKey);

            Assert.NotNull(fakeSiteReplica, nameof(fakeSiteReplica));
            Assert.That(fakeSiteReplica.equipmentUnitTypesAvailable.Count, Is.GreaterThan(0));

            // note that must delete site first to remove mappings otherwise will fail due to mapping fk constraints
            db.Delete(fakeSite);
            db.Delete(fakeUnit);
        }
示例#7
0
        private void addItems(Order order)
        {
            if (Valid)
            {
                var itemCmd = new SaveItemCommand(_itemRepository, _itemValidator);
                foreach (var item in order.Items)
                {
                    item.PedidoId = order.Id;
                    itemCmd.Execute(item);
                    AddNotifications(itemCmd);

                    if (Invalid)
                    {
                        break;
                    }
                }
            }
        }
示例#8
0
        public void SaveItemCommand_CanSave()
        {
            var fakeBattery = new BatteryType
            {
                name = "Test Battery"
            };

            Assert.That(fakeBattery.IsChanged, nameof(fakeBattery.IsChanged), Is.True);
            Assert.That(fakeBattery.name, Is.EqualTo("Test Battery"));
            Assert.That(fakeBattery.displayName, Is.EqualTo(fakeBattery.name));

            var cmd = new SaveItemCommand();

            Assert.NotNull(cmd, nameof(SaveItemCommand));

            Assert.IsTrue(cmd.CanExecute(fakeBattery));

            fakeBattery.AcceptChanges();
            Assert.IsFalse(cmd.CanExecute(fakeBattery));
        }
示例#9
0
        public void AddItemCommand()
        {
            var cmd = new SaveItemCommand();

            var db = DataRepository.GetDataRepository;

            Assert.NotNull(db);

            var testInstance = db.Load <ItemInstance>(SampleItemInstance);

            Assert.NotNull(testInstance);
            Assert.IsFalse(cmd.CanExecute(testInstance));               // not an Item, can't add ItemInstance directly
            Assert.IsFalse(cmd.CanExecute(testInstance.item));          // because it already exists
            Assert.IsFalse(cmd.CanExecute(testInstance.item.itemType)); // an ItemType, reference data

            var item = db.Load <Item>("f69eb75a-3468-2f78-6b54-2530f95e75e0");

            Assert.NotNull(item);
            Assert.IsFalse(cmd.CanExecute(item));

            // mutate as new item so we can add it
            item.id     = Guid.Empty;
            item.itemId = 99999; // way too large to be valid, ideally we'd ask for proper value
            Assert.IsTrue(cmd.CanExecute(item));

            // add the item instances (and item is not already saved)
            cmd.Execute(item);
            var itemInstances = db.db.LoadRows <ItemInstance>("WHERE itemId=?", item.id.ToString());

            Assert.That(itemInstances.Count, Is.EqualTo(13));
            // cleanup, remove the item instances
            foreach (var itemInstance in itemInstances)
            {
                db.Delete(itemInstance);
            }
            db.Delete(item);
        }
示例#10
0
 public async Task <IActionResult> Post(SaveItemCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }