예제 #1
0
        public static void Test_Simple_Required_PatternConstraint(string value, bool valid)
        {
            // (-∞, ∞)
            var range = new PatternConstraint("a", true);

            Assert.True(range.IsValid(value) == valid);
        }
예제 #2
0
 public MatchPattern(Vector2Int index1, Vector2Int index2, PatternConstraint constraint, HexGrid grid)
 {
     this.index1     = index1;
     this.index2     = index2;
     this.constraint = constraint;
     maxX            = grid.gridSettings.horizontalCount;
     maxY            = grid.gridSettings.verticalCount;
     this.grid       = grid;
 }
예제 #3
0
 public static PatternConstraintModel Convert(PatternConstraint patternConstraint, long attributeId)
 {
     return(new PatternConstraintModel(attributeId)
     {
         Id = patternConstraint.Id,
         Negated = patternConstraint.Negated,
         Description = patternConstraint.Description,
         MatchingPhrase = patternConstraint.MatchingPhrase,
         FormalDescription = patternConstraint.FormalDescription
     });
 }
예제 #4
0
        public void PatternConstraintRegExTest()
        {
            string description    = "created by a unit test.";
            bool   negated        = false;
            string matchingPhrase = "^[a-w]+$";

            PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, description, negated, null, null, null, matchingPhrase, true);

            constraint.IsSatisfied("abc").Should().Be(true, "should be true because : value = abc & regex= " + matchingPhrase);
            constraint.IsSatisfied("123").Should().Be(false, "should be false because : value = 123 & regex= " + matchingPhrase + " is not matching.");
            constraint.IsSatisfied("xyz").Should().Be(false, "should be false because : value = xyz & regex= " + matchingPhrase + " is not matching.");
            constraint.IsSatisfied("xyza").Should().Be(false, "should be false because : value = xyza & regex= " + matchingPhrase + " is not matching.");
            constraint.IsSatisfied("ab123").Should().Be(false, "should be false because : value = ab123 & regex= " + matchingPhrase + " is not matching.");
            constraint.IsSatisfied("Abc").Should().Be(false, "should be false because : value = Abc & regex= " + matchingPhrase + " is not matching.");
        }
예제 #5
0
        internal PatternConstraint Update(PatternConstraint entity)
        {
            Contract.Requires(entity != null, "provided entity can not be null");
            Contract.Requires(entity.Id >= 0, "provided entity must have a permanent ID");

            Contract.Ensures(Contract.Result <PatternConstraint>() != null && Contract.Result <PatternConstraint>().Id >= 0, "No entity is persisted!");

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository <PatternConstraint> repo = uow.GetRepository <PatternConstraint>();
                repo.Merge(entity);
                var merged = repo.Get(entity.Id);
                repo.Put(merged);
                uow.Commit();
            }
            return(entity);
        }
예제 #6
0
        internal PatternConstraint SaveConstraint(PatternConstraint constraint, DataContainer container)
        {
            Contract.Requires(constraint != null);
            Contract.Requires(!string.IsNullOrWhiteSpace(constraint.MatchingPhrase));
            Contract.Requires(container != null);

            Contract.Ensures(Contract.Result <PatternConstraint>() != null && Contract.Result <PatternConstraint>().Id >= 0);

            constraint.DataContainer = container;
            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository <PatternConstraint> repo = uow.GetRepository <PatternConstraint>();
                repo.Put(constraint);
                uow.Commit();
            }
            return(constraint);
        }
예제 #7
0
        internal bool Delete(PatternConstraint entity)
        {
            Contract.Requires(entity != null);
            Contract.Requires(entity.Id >= 0);

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository <PatternConstraint> repo = uow.GetRepository <PatternConstraint>();

                entity = repo.Reload(entity);
                //delete the unit
                repo.Delete(entity);
                // commit changes
                uow.Commit();
            }
            // if any problem was detected during the commit, an exception will be thrown!
            return(true);
        }
예제 #8
0
        internal bool Delete(PatternConstraint entity)
        {
            Contract.Requires(entity != null);
            Contract.Requires(entity.Id >= 0);

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository<PatternConstraint> repo = uow.GetRepository<PatternConstraint>();

                entity = repo.Reload(entity);
                //delete the unit
                repo.Delete(entity);
                // commit changes
                uow.Commit();
            }
            // if any problem was detected during the commit, an exception will be thrown!
            return (true);
        }
        public DataAttribute storePatternConstraint(PatternConstraintModel constraintModel)
        {
            DataContainerManager dcManager = null;

            try
            {
                dcManager = new DataContainerManager();
                DataAttribute dataAttribute = dcManager.DataAttributeRepo.Get(constraintModel.AttributeId);

                if (constraintModel.MatchingPhrase != null && constraintModel.MatchingPhrase != "")
                {
                    if (constraintModel.Id == 0)
                    {
                        PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, constraintModel.Description, constraintModel.Negated, null, null, null, constraintModel.MatchingPhrase, false);
                        dcManager.AddConstraint(constraint, dataAttribute);
                    }
                    else
                    {
                        for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                        {
                            if (dataAttribute.Constraints.ElementAt(i).Id == constraintModel.Id)
                            {
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Description    = constraintModel.Description;
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Negated        = constraintModel.Negated;
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).MatchingPhrase = constraintModel.MatchingPhrase;
                                break;
                            }
                        }
                    }
                }
                return(dataAttribute);
            }
            finally
            {
                dcManager.Dispose();
            }
        }
예제 #10
0
 public void RemoveConstraint(PatternConstraint constraint)
 {
     helper.Delete(constraint);
 }
예제 #11
0
 public void AddConstraint(PatternConstraint constraint, DataContainer container)
 {
     helper.SaveConstraint(constraint, container);
 }
예제 #12
0
        public JsonResult getPatternConstraintFormalDescription(bool invert, string phrase)
        {
            PatternConstraint temp = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, "", invert, null, null, null, phrase, false);

            return(Json((temp.FormalDescription), JsonRequestBehavior.AllowGet));
        }
예제 #13
0
        private DataAttribute storeConstraint(ConstraintModel constraintModel, DataAttribute dataAttribute)
        {
            DataContainerManager dcManager = new DataContainerManager();

            if (constraintModel is RangeConstraintModel)
            {
                RangeConstraintModel rcm = (RangeConstraintModel)constraintModel;

                if (rcm.Id == 0)
                {
                    RangeConstraint constraint = new RangeConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, rcm.Description, rcm.Negated, null, null, null, rcm.Min, rcm.MinInclude, rcm.Max, rcm.MaxInclude);
                    dcManager.AddConstraint(constraint, dataAttribute);
                }
                else
                {
                    for(int i = 0; i < dataAttribute.Constraints.Count; i++)
                    {
                        if (dataAttribute.Constraints.ElementAt(i).Id == rcm.Id)
                        {
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Description = rcm.Description;
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Negated = rcm.Negated;
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Lowerbound = rcm.Min;
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).LowerboundIncluded = rcm.MinInclude;
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Upperbound = rcm.Max;
                            ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).UpperboundIncluded = rcm.MaxInclude;
                            break;
                        }
                    }
                }
            }

            if (constraintModel is PatternConstraintModel)
            {
                PatternConstraintModel pcm = (PatternConstraintModel)constraintModel;

                if (pcm.Id == 0)
                {
                    PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, pcm.Description, pcm.Negated, null, null, null, pcm.MatchingPhrase, false);
                    dcManager.AddConstraint(constraint, dataAttribute);
                }
                else
                {
                    for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                    {
                        if (dataAttribute.Constraints.ElementAt(i).Id == pcm.Id)
                        {
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Description = pcm.Description;
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Negated = pcm.Negated;
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).MatchingPhrase = pcm.MatchingPhrase;
                            break;
                        }
                    }
                }
            }

            if (constraintModel is DomainConstraintModel)
            {
                DomainConstraintModel dcm = (DomainConstraintModel)constraintModel;

                List<DomainItem> items = createDomainItems(dcm.Terms);

                dcm.Terms = cutSpaces(dcm.Terms);

                if (items.Count > 0)
                {
                    if (dcm.Id == 0)
                    {
                        DomainConstraint constraint = new DomainConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, dcm.Description, dcm.Negated, null, null, null, items);
                        dcManager.AddConstraint(constraint, dataAttribute);
                    }
                    else
                    {
                        DomainConstraint temp = new DomainConstraint();
                        for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                        {
                            if (dataAttribute.Constraints.ElementAt(i).Id == dcm.Id)
                            {
                                temp = (DomainConstraint)dataAttribute.Constraints.ElementAt(i);
                                temp.Materialize();
                                temp.Description = dcm.Description;
                                temp.Negated = dcm.Negated;
                                temp.Items = items;
                                dcManager.AddConstraint(temp, dataAttribute);
                                break;
                            }
                        }
                    }
                }
            }

            return dataAttribute;
        }
예제 #14
0
 public void RemoveConstraint(PatternConstraint constraint)
 {
     constraint.DataContainer = null;
     helper.Delete(constraint);
 }
예제 #15
0
        private PatternConstraint GetPatternConstraint(string patternString, string description,bool negated, MetadataAttribute attr)
        {
            PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", "en-US", description, negated, null, null, null, patternString, false);
            dataContainerManager.AddConstraint(constraint, attr);

            return constraint;
        }
예제 #16
0
 public JsonResult getPatternConstraintFormalDescription(string invert, string phrase)
 {
     PatternConstraint temp = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, "", Convert.ToBoolean(invert), null, null, null, phrase, false);
     return Json((temp.FormalDescription), JsonRequestBehavior.AllowGet);
 }
예제 #17
0
 public void AddConstraint(PatternConstraint constraint, DataContainer container)
 {
     helper.SaveConstraint(constraint, container);
 }
예제 #18
0
 public void RemoveConstraint(PatternConstraint constraint)
 {
     constraint.DataContainer = null;
     helper.Delete(constraint);
 }
예제 #19
0
 public void RemoveConstraint(PatternConstraint constraint)
 {
     helper.Delete(constraint);
 }
예제 #20
0
 public static PatternConstraintModel Convert(PatternConstraint patternConstraint, long attributeId)
 {
     return new PatternConstraintModel(attributeId)
     {
         Id = patternConstraint.Id,
         Negated = patternConstraint.Negated,
         Description = patternConstraint.Description,
         MatchingPhrase = patternConstraint.MatchingPhrase,
         FormalDescription = patternConstraint.FormalDescription
     };
 }
예제 #21
0
        private DataAttribute storeConstraint(ConstraintModel constraintModel, DataAttribute dataAttribute)
        {
            DataContainerManager dcManager = null;

            try
            {
                dcManager = new DataContainerManager();

                if (constraintModel is RangeConstraintModel)
                {
                    RangeConstraintModel rcm = (RangeConstraintModel)constraintModel;

                    if (rcm.Id == 0)
                    {
                        RangeConstraint constraint = new RangeConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, rcm.Description, rcm.Negated, null, null, null, rcm.Min, rcm.MinInclude, rcm.Max, rcm.MaxInclude);
                        dcManager.AddConstraint(constraint, dataAttribute);
                    }
                    else
                    {
                        for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                        {
                            if (dataAttribute.Constraints.ElementAt(i).Id == rcm.Id)
                            {
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Description        = rcm.Description;
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Negated            = rcm.Negated;
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Lowerbound         = rcm.Min;
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).LowerboundIncluded = rcm.MinInclude;
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).Upperbound         = rcm.Max;
                                ((RangeConstraint)dataAttribute.Constraints.ElementAt(i)).UpperboundIncluded = rcm.MaxInclude;
                                break;
                            }
                        }
                    }
                }

                if (constraintModel is PatternConstraintModel)
                {
                    PatternConstraintModel pcm = (PatternConstraintModel)constraintModel;

                    if (pcm.Id == 0)
                    {
                        PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, pcm.Description, pcm.Negated, null, null, null, pcm.MatchingPhrase, true);
                        dcManager.AddConstraint(constraint, dataAttribute);
                    }
                    else
                    {
                        for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                        {
                            if (dataAttribute.Constraints.ElementAt(i).Id == pcm.Id)
                            {
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Description    = pcm.Description;
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Negated        = pcm.Negated;
                                ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).MatchingPhrase = pcm.MatchingPhrase;
                                break;
                            }
                        }
                    }
                }

                if (constraintModel is DomainConstraintModel)
                {
                    DomainConstraintModel dcm = (DomainConstraintModel)constraintModel;

                    List <DomainItem> items = createDomainItems(dcm.Terms);

                    dcm.Terms = cutSpaces(dcm.Terms);

                    if (items.Count > 0)
                    {
                        if (dcm.Id == 0)
                        {
                            DomainConstraint constraint = new DomainConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, dcm.Description, dcm.Negated, null, null, null, items);
                            dcManager.AddConstraint(constraint, dataAttribute);
                        }
                        else
                        {
                            DomainConstraint temp = new DomainConstraint();
                            for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                            {
                                if (dataAttribute.Constraints.ElementAt(i).Id == dcm.Id)
                                {
                                    temp = (DomainConstraint)dataAttribute.Constraints.ElementAt(i);
                                    temp.Materialize();
                                    temp.Description = dcm.Description;
                                    temp.Negated     = dcm.Negated;
                                    temp.Items       = items;
                                    dcManager.AddConstraint(temp, dataAttribute);
                                    break;
                                }
                            }
                        }
                    }
                }

                return(dataAttribute);
            }
            finally
            {
                dcManager.Dispose();
            }
        }
예제 #22
0
        public DataAttribute storePatternConstraint(PatternConstraintModel constraintModel)
        {
            DataContainerManager dcManager = new DataContainerManager();
            DataAttribute dataAttribute = dcManager.DataAttributeRepo.Get(constraintModel.AttributeId);

            if (constraintModel.MatchingPhrase != null && constraintModel.MatchingPhrase != "")
            {
                if (constraintModel.Id == 0)
                {
                    PatternConstraint constraint = new PatternConstraint(ConstraintProviderSource.Internal, "", AppConfiguration.Culture.Name, constraintModel.Description, constraintModel.Negated, null, null, null, constraintModel.MatchingPhrase, false);
                    dcManager.AddConstraint(constraint, dataAttribute);
                }
                else
                {
                    for (int i = 0; i < dataAttribute.Constraints.Count; i++)
                    {
                        if (dataAttribute.Constraints.ElementAt(i).Id == constraintModel.Id)
                        {
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Description = constraintModel.Description;
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).Negated = constraintModel.Negated;
                            ((PatternConstraint)dataAttribute.Constraints.ElementAt(i)).MatchingPhrase = constraintModel.MatchingPhrase;
                            break;
                        }
                    }
                }
            }
            return dataAttribute;
        }
예제 #23
0
        private void addConstraintsTo()
        {
            DataContainerManager dcManager = new DataContainerManager();
            var attr = dcManager.DataAttributeRepo.Get(1);

            var c1 = new RangeConstraint(ConstraintProviderSource.Internal, "", "en-US", "should be between 1 and 12 meter", true, null, null, null, 1.00, true, 12.00, true);
            dcManager.AddConstraint(c1, attr);
            var v1 = c1.IsSatisfied(14);

            var c2 = new PatternConstraint(ConstraintProviderSource.Internal, "", "en-US", "a simple email validation constraint", false, null, null, null, @"^\S+@\S+$", false);
            dcManager.AddConstraint(c2, attr);
            var v2 = c2.IsSatisfied("*****@*****.**");

            List<DomainItem> items = new List<DomainItem>() { new DomainItem () {Key = "A", Value = "This is A" },
                                                              new DomainItem () {Key = "B", Value = "This is B" },
                                                              new DomainItem () {Key = "C", Value = "This is C" },
                                                              new DomainItem () {Key = "D", Value = "This is D" },
                                                            };
            var c3 = new DomainConstraint(ConstraintProviderSource.Internal, "", "en-US", "a simple domain validation constraint", false, null, null, null, items);
            dcManager.AddConstraint(c3, attr);
            var v3 = c3.IsSatisfied("A");
            v3 = c3.IsSatisfied("E");
            c3.Negated = true;
            v3 = c3.IsSatisfied("A");

            var c4 = new ComparisonConstraint(ConstraintProviderSource.Internal, "", "en-US", "a comparison validation constraint", false, null, null, null
                , ComparisonOperator.GreaterThanOrEqual, ComparisonTargetType.Value, "", ComparisonOffsetType.Ratio, 1.25);
            dcManager.AddConstraint(c4, attr);
            var v4 = c4.IsSatisfied(14, 10);
        }
예제 #24
0
        internal PatternConstraint SaveConstraint(PatternConstraint constraint, DataContainer container)
        {
            Contract.Requires(constraint != null);
            Contract.Requires(!string.IsNullOrWhiteSpace(constraint.MatchingPhrase));
            Contract.Requires(container != null);

            Contract.Ensures(Contract.Result<PatternConstraint>() != null && Contract.Result<PatternConstraint>().Id >= 0);

            constraint.DataContainer = container;
            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository<PatternConstraint> repo = uow.GetRepository<PatternConstraint>();
                repo.Put(constraint);
                uow.Commit();
            }
            return (constraint);
        }
예제 #25
0
        internal PatternConstraint Update(PatternConstraint entity)
        {
            Contract.Requires(entity != null, "provided entity can not be null");
            Contract.Requires(entity.Id >= 0, "provided entity must have a permanent ID");

            Contract.Ensures(Contract.Result<PatternConstraint>() != null && Contract.Result<PatternConstraint>().Id >= 0, "No entity is persisted!");

            using (IUnitOfWork uow = this.GetUnitOfWork())
            {
                IRepository<PatternConstraint> repo = uow.GetRepository<PatternConstraint>();
                repo.Put(entity); // Merge is required here!!!!
                uow.Commit();
            }
            return (entity);
        }