Exemple #1
0
        public IActionResult CreateDuplicateRule(EditDuplicateRuleModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = new DuplicateRule();
                model.CopyTo(entity);
                entity.DuplicateRuleId = Guid.NewGuid();
                entity.CreatedBy       = CurrentUser.SystemUserId;
                var conditions = new List <DuplicateRuleCondition>();
                int i          = 0;
                foreach (var item in model.AttributeId)
                {
                    var cd = new DuplicateRuleCondition
                    {
                        DuplicateRuleConditionId = Guid.NewGuid(),
                        DuplicateRuleId          = entity.DuplicateRuleId,
                        EntityId         = model.EntityId,
                        IgnoreNullValues = model.IgnoreNullValues[i],
                        IsCaseSensitive  = model.IsCaseSensitive[i],
                        AttributeId      = item
                    };
                    conditions.Add(cd);
                    i++;
                }
                entity.Conditions = conditions;

                _duplicateRuleCreater.Create(entity);
                return(CreateSuccess(new { id = entity.DuplicateRuleId }));
            }
            var msg = GetModelErrors(ModelState);

            return(CreateFailure(msg));
        }
Exemple #2
0
        public IActionResult CreateDuplicateRule(Guid entityid)
        {
            EditDuplicateRuleModel model = new EditDuplicateRuleModel
            {
                SolutionId = SolutionId.Value,
                EntityId   = entityid,
                StateCode  = RecordState.Enabled
            };

            return(View(model));
        }
Exemple #3
0
        public IActionResult EditDuplicateRule(EditDuplicateRuleModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = _duplicateRuleFinder.FindById(model.DuplicateRuleId.Value);
                entity.Description = model.Description;
                entity.Name        = model.Name;
                entity.Intercepted = model.Intercepted;
                var conditions = _duplicateRuleConditionService.Query(n => n.Where(w => w.DuplicateRuleId == entity.DuplicateRuleId));
                int i          = 0;
                entity.Conditions = new List <DuplicateRuleCondition>();
                foreach (var item in model.AttributeId)
                {
                    var id        = model.DetailId[i];
                    var condition = new DuplicateRuleCondition
                    {
                        DuplicateRuleId  = entity.DuplicateRuleId,
                        EntityId         = model.EntityId,
                        IgnoreNullValues = model.IgnoreNullValues[i],
                        IsCaseSensitive  = model.IsCaseSensitive[i],
                        AttributeId      = item
                    };
                    if (id.Equals(Guid.Empty))
                    {
                        condition.DuplicateRuleConditionId = Guid.NewGuid();
                        _duplicateRuleConditionService.Create(condition);
                    }
                    else
                    {
                        condition.DuplicateRuleConditionId = id;
                        _duplicateRuleConditionService.Update(condition);
                        conditions.Remove(conditions.Find(n => n.DuplicateRuleConditionId == id));
                    }
                    entity.Conditions.Add(condition);

                    i++;
                }
                //delete lost detail
                var lostid = conditions.Select(n => n.DuplicateRuleConditionId).ToList();
                _duplicateRuleConditionService.DeleteById(lostid);

                _duplicateRuleUpdater.Update(entity);

                return(UpdateSuccess(new { id = entity.DuplicateRuleId }));
            }
            var msg = GetModelErrors(ModelState);

            return(UpdateFailure(msg));
        }
        public IActionResult Get(Guid id)
        {
            EditDuplicateRuleModel model = new EditDuplicateRuleModel();

            if (!id.Equals(Guid.Empty))
            {
                var entity = _duplicateRuleFinder.FindById(id);
                if (entity != null)
                {
                    entity.CopyTo(model);
                    model.Conditions = _duplicateRuleConditionService.Query(n => n.Where(w => w.DuplicateRuleId == entity.DuplicateRuleId));
                    return(JOk(model));
                }
            }
            return(NotFound());
        }