示例#1
0
        public void MatchesRuleTest()
        {
            try {
                MetadataLocator.Default = MetadataLocator.Create().AddMetadata <ValidationEntity, ValidationEntityMetadata>();
                var entity = new ValidationEntity();
                var v      = CreateValidator <ValidationEntity, int>(x => x.MatchesRulePropery);
                Assert.AreEqual("Cannot be less than 0: -2", v.GetErrorText(-2, entity));
                Assert.AreEqual("Cannot be greater than 2: 3", v.GetErrorText(3, entity));

                v = CreateValidator <ValidationEntity, int>(x => x.MatchesInstanceRulePropery);
                Assert.AreEqual("Cannot be less than 0: -2", v.GetErrorText(-2, entity));
                Assert.AreEqual("Cannot be greater than 2: 3", v.GetErrorText(3, entity));
            } finally {
                MetadataLocator.Default = null;
                ValidationEntityMetadata.IncludeValueToError = false;
                MetadataHelper.ClearMetadata();
            }
        }
        public void CombinedTest()
        {
            var defaultLocator = MetadataLocator.Create()
                                 .AddMetadata <TestDataMetadataDefault>()
            ;

            MetadataLocator.Default = defaultLocator;
            MetadataHelper.AddMetadata <TestDataMetadata>();
            try {
                Assert.IsTrue(GetExternalAndFluentAPIAttrbutes(typeof(TestData), "Prop1").OfType <DisplayAttribute>().Single().AutoGenerateField);
            } finally {
                MetadataHelper.ClearMetadata();
                MetadataLocator.Default = null;
            }
            MetadataHelper.AddMetadata <TestDataMetadata>();
            try {
                Assert.IsFalse(GetExternalAndFluentAPIAttrbutes(typeof(TestData), "Prop1").OfType <DisplayAttribute>().Single().AutoGenerateField);
            } finally {
                MetadataHelper.ClearMetadata();
            }
        }
示例#3
0
 public void Validation2()
 {
     try {
         ValidationEntityMetadata.IncludeValueToError = true;
         MetadataLocator.Default = MetadataLocator.Create().AddMetadata <ValidationEntity, ValidationEntityMetadata>();
         ValidationCore((x, y, e) => {
             if (y != null)
             {
                 return(e + x.ToString() + y.ToString());
             }
             else
             {
                 return(e + x.ToString());
             }
         });
     } finally {
         MetadataLocator.Default = null;
         ValidationEntityMetadata.IncludeValueToError = false;
         MetadataHelper.ClearMetadata();
     }
 }
 static ConstructionDataContextViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <ConstructionDataContextMetadataProvider>();
 }
 static DepartmentContextViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <DepartmentContextMetadataProvider>();
 }
 static NorthwindEntitiesViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <NorthwindEntitiesMetadataProvider>();
 }
示例#7
0
                public void Perform(
                    HttpListenerContext _Context,
                    EAddRemove _Operation,
                    List <Metadata> _MetadataList,
                    MetadataLocator _MetadataLocator,
                    string _UserID)
                {
                    Action <HttpListenerContext, string, string, BPrimitiveType, string, BPrimitiveType[]> Function;

                    if (_Operation == EAddRemove.Add)
                    {
                        Function = Controller_DeliveryEnsurer.Get().DB_AddElementsToArrayItem_FireAndForget;
                    }
                    else
                    {
                        Function = Controller_DeliveryEnsurer.Get().DB_RemoveElementsFromArrayItem_FireAndForget;
                    }

                    int ParallelOperationsNumber = _MetadataList.Count * AttributeTables.Length;

                    var ParallelOperationsStack = new Stack <bool>(ParallelOperationsNumber);

                    for (var i = 0; i < ParallelOperationsNumber; i++)
                    {
                        ParallelOperationsStack.Push(true);
                    }

                    var WaitFor = new ManualResetEvent(false);

                    foreach (var Data in _MetadataList)
                    {
                        var CombinedValues = ""; var c = 0;
                        Data.MetadataValues.Sort();
                        foreach (var DataValue in Data.MetadataValues)
                        {
                            CombinedValues += DataValue;
                            if (++c < Data.MetadataValues.Count)
                            {
                                CombinedValues += METADATA_V_DELIMITER;
                            }
                        }

                        for (var j = 0; j < AttributeTables.Length; j++)
                        {
                            var Table        = AttributeTables[j];
                            var Key          = AttributeTableKeys[j];
                            var AttributeKey = AttributeKeyGeneration[j](new AttributeKeyGeneration_Input()
                            {
                                MetadataKey            = Data.MetadataKey,
                                MetadataCombinedValues = CombinedValues,
                                UserID = _UserID
                            });
                            BTaskWrapper.Run(() =>
                            {
                                //Only the metadata key as index
                                Function(
                                    _Context,
                                    Table,
                                    Key,
                                    new BPrimitiveType(AttributeKey),
                                    AttributeKeyDBEntryBase.METADATA_LOCATOR_PROPERTY,
                                    new BPrimitiveType[]
                                {
                                    new BPrimitiveType(_MetadataLocator.ToString())
                                });

                                lock (ParallelOperationsStack)
                                {
                                    ParallelOperationsStack.TryPop(out bool _);
                                    if (ParallelOperationsStack.Count == 0)
                                    {
                                        try
                                        {
                                            WaitFor.Set();
                                        }
                                        catch (Exception) { }
                                    }
                                }
                            });
                        }
                    }

                    try
                    {
                        if (ParallelOperationsNumber > 0)
                        {
                            WaitFor.WaitOne();
                        }
                        WaitFor.Close();
                    }
                    catch (Exception) { }
                }
 internal static void RegisterLocator(MetadataLocator locator)
 {
     lock (locators) {
         locators.Add(new WeakReference(locator));
     }
 }
 static IEnumerable <Type> GetMetadataTypes(IMetadataLocator locator, Type type)
 {
     return((locator ?? MetadataLocator.Create()).GetMetadataTypes(GetTypeOrGenericTypeDefinition(type))
            .Return(x => x, () => Enumerable.Empty <Type>()));
 }
 static ProductEntitiesViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <ProductEntitiesMetadataProvider>();
 }
 static DevAVDbViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <DevAVDbMetadataProvider>();
 }
 static OrdersDbEntitiesViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <OrdersDbEntitiesMetadataProvider>();
 }
示例#13
0
 public MainWindow()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <bool, EditorProvider>();
     InitializeComponent();
 }
 public MainViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <EnumWithExternalMetadata>();
 }
示例#15
0
 static SchoolDBContextViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <SchoolDBContextMetadataProvider>();
 }
 static IssueContextViewModel()
 {
     MetadataLocator.Default = MetadataLocator.Create().AddMetadata <IssueContextMetadataProvider>();
 }