Example #1
0
 public RecordsCreator_()
 {
     _user = A.Fake<IProvidingUser>();
     A.CallTo(() => _user.CurrentUserName()).Returns("Test");
     var executor = new DbCommandExecutor(_admin, _user);
     _creator = new RecordsCreator(_admin, executor, _user);
 }
Example #2
0
 public RecordsUpdater_()
 {
     _source = new RecordsSource(_admin, new Notificator());
     _user = A.Fake<IProvidingUser>();
     A.CallTo(() => _user.CurrentUserName()).Returns("Test");
     var executor = new DbCommandExecutor(_admin, _user);
     _updater = new RecordsUpdater(_admin, executor, _source, _user);
 }
Example #3
0
        public RecordsCreator_()
        {
            _user = A.Fake <IProvidingUser>();
            A.CallTo(() => _user.CurrentUserName()).Returns("Test");
            var executor = new DbCommandExecutor(_admin, _user);

            _creator = new RecordsCreator(_admin, executor, _user);
        }
Example #4
0
        public void updates_record_and_does_not_create_entity_change_when_is_not_added()
        {
            set_up_test();

            _entityRecord["ProductName"].Raw = "Product2";
            _updater.Update(_entityRecord);

            var products = (List <Product>)DB.Products.All();

            Assert.Equal(1, products.Count);
            Assert.Equal("Product2", products.First().ProductName);

            A.CallTo(() => _user.CurrentUserName()).MustNotHaveHappened();
            var changes = DB.EntityChanges.All().ToList();

            Assert.Equal(0, changes.Count);
        }
        public RecordsUpdater_ManyToMany()
        {
            _source = new RecordsSource(_admin, new Notificator());
            _user   = A.Fake <IProvidingUser>();
            A.CallTo(() => _user.CurrentUserName()).Returns("Test");
            var executor = new DbCommandExecutor(_admin, _user);

            _updater = new RecordsUpdater(_admin, executor, _source, _user);
        }
Example #6
0
        public RecordsDeleter_()
        {
            _user = A.Fake <IProvidingUser>();
            A.CallTo(() => _user.CurrentUserName()).Returns("Test");
            var executor = new DbCommandExecutor(_admin, _user);

            _hierarchySource = new RecordsHierarchySource(_admin);
            _deleter         = new RecordsDeleter(_admin, executor, _hierarchySource, _user);
            _source          = new RecordsSource(_admin, new Notificator());
        }
Example #7
0
        public void creates_record_and_does_not_create_entity_change_when_is_not_added()
        {
            register_default_entities();

            var values = new Dictionary <string, object>
            {
                { "ProductName", "Product" },
                { "Discontinued", false }
            };

            _creator.Create(EntityRecordCreator.CreateRecord(_productEntity, values));

            var products = DB.Products.All().ToList();

            Assert.Equal(1, products.Count);

            A.CallTo(() => _user.CurrentUserName()).MustNotHaveHappened();
            var changes = DB.EntityChanges.All().ToList();

            Assert.Equal(0, changes.Count);
        }
Example #8
0
        private void AddParam(DbCommand cmd, PropertyValue propertyValue)
        {
            if (propertyValue.Raw is ValueBehavior)
            {
                switch (propertyValue.Raw as ValueBehavior?)
                {
                case ValueBehavior.Now:
                    cmd.AddParam(DateTime.Now);
                    break;

                case ValueBehavior.UtcNow:
                    cmd.AddParam(DateTime.UtcNow);
                    break;

                case ValueBehavior.Guid:
                    cmd.AddParam(Guid.NewGuid());
                    break;

                case ValueBehavior.CurrentUserId:
                    cmd.AddParam((int)_user.CurrentId());
                    break;

                case ValueBehavior.CurrentUserName:
                    cmd.AddParam(_user.CurrentUserName());
                    break;
                }
            }
            else
            {
                if (propertyValue.Property.TypeInfo.IsFileStoredInDb)
                {
                    cmd.AddParam(propertyValue.Raw, DbType.Binary);
                }
                else
                {
                    cmd.AddParam(propertyValue.Raw);
                }
            }
        }
Example #9
0
        private object GetDefaultValue(object value)
        {
            if (value is ValueBehavior)
            {
                switch ((ValueBehavior)value)
                {
                case ValueBehavior.CurrentUserId:
                    return(_user.CurrentId());

                case ValueBehavior.CurrentUserName:
                    return(_user.CurrentUserName());

                case ValueBehavior.Now:
                    return(_clock.Now);

                case ValueBehavior.UtcNow:
                    return(_clock.UtcNow);
                }
            }

            return(value);
        }
Example #10
0
        private DbCommand CreateChangeCommand(
            EntityRecord entityRecord,
            EntityChangeType changeType,
            string keyValue,
            Func <string> changeDescriber = null)
        {
            if (changeType == EntityChangeType.Insert)
            {
                entityRecord.SetKeyValue(keyValue);
            }

            var cmd = DB.CreateCommand(_admin.ConnectionStringName);

            var changeEntity        = _admin.ChangeEntity;
            var table               = changeEntity.Table;
            var entityNameColumn    = changeEntity["EntityName"].Column;
            var entityKeyColumn     = changeEntity["EntityKey"].Column;
            var changeTypeColumn    = changeEntity["ChangeType"].Column;
            var recordDisplayColumn = changeEntity["RecordDisplayName"].Column;
            var descriptionColumn   = changeEntity["Description"].Column;
            var changedOnColumn     = changeEntity["ChangedOn"].Column;
            var changedByColumn     = changeEntity["ChangedBy"].Column;

            var sql =
                $@"INSERT INTO {table} ({entityNameColumn}, {entityKeyColumn}, {changeTypeColumn}, {recordDisplayColumn}, {descriptionColumn}, {changedOnColumn}, {changedByColumn})
VALUES (@0,@1,@2,@3,@4,@5,@6);";

            cmd.AddParam(entityRecord.Entity.Name);
            cmd.AddParam(keyValue);
            cmd.AddParam(changeType);
            cmd.AddParam(entityRecord.ToString());
            cmd.AddParam(changeDescriber == null ? null : changeDescriber());
            cmd.AddParam(DateTime.UtcNow);
            cmd.AddParam(_user.CurrentUserName());

            cmd.CommandText = sql;

            return(cmd);
        }