示例#1
0
        /// Verifica vincoli in inserimento di una qualifica, campi validi e univocità codice
        public static ValidationResultInfo InsertQual(Qualifica qual)
        {
            ValidationResultInfo retValue = IsValidRequiredFieldsQualifica(DBActionTypeRegistroEnum.InsertMode, qual);

            // Verifica presenza codice univoco
            if (retValue.Value)
            {
                DocsPaDB.Query_DocsPAWS.Utenti dbUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                retValue.Value = dbUtenti.CheckUniqueCodiceQualifica(qual.CODICE, qual.ID_AMM.ToString());

                if (!retValue.Value)
                {
                    BrokenRule brokenRule = new BrokenRule();
                    brokenRule.ID          = "CODICE_QUALIFICA";
                    brokenRule.Description = "Codice qualifica già presente";
                    retValue.BrokenRules.Add(brokenRule);
                }
                else
                {
                    dbUtenti.InsertQual(qual.CODICE, qual.DESCRIZIONE, qual.ID_AMM.ToString());
                    retValue.Value = true;
                }
            }
            return(retValue);
        }
示例#2
0
        /// <summary>
        /// Verifica vincoli in inserimento di un registro
        /// </summary>
        /// <param name="registro"></param>
        /// <returns></returns>
        public static ValidationResultInfo CanInsertRegistro(OrgRegistro registro)
        {
            ValidationResultInfo retValue = IsValidRequiredFieldsRegistro(DBActionTypeRegistroEnum.InsertMode, registro);

            // Verifica presenza codice univoco
            if (retValue.Value)
            {
                DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
                retValue.Value = dbAmministrazione.CheckUniqueCodiceRegistro(registro.Codice, registro.CodiceAmministrazione);

                if (!retValue.Value)
                {
                    BrokenRule brokenRule = new BrokenRule();
                    if (registro.chaRF != null && registro.chaRF != string.Empty)
                    {
                        if (registro.chaRF == "0")
                        {
                            brokenRule.ID          = "CODICE_REGISTRO";
                            brokenRule.Description = "Codice registro già presente";
                        }
                        else
                        {
                            brokenRule.ID          = "CODICE_RF";
                            brokenRule.Description = "Codice RF già presente";
                        }
                    }
                    retValue.BrokenRules.Add(brokenRule);
                }
            }

            return(retValue);
        }
示例#3
0
        /// Verifica presenza dati obbligatori della qualifica
        private static ValidationResultInfo IsValidRequiredFieldsQualifica(
            DBActionTypeRegistroEnum actionType,
            DocsPaVO.Qualifica.Qualifica qual)
        {
            ValidationResultInfo retValue   = new ValidationResultInfo();
            BrokenRule           brokenRule = null;

            if (actionType == DBActionTypeRegistroEnum.InsertMode ||
                actionType == DBActionTypeRegistroEnum.UpdateMode)
            {
                if (qual.CODICE == null || qual.CODICE == string.Empty)
                {
                    retValue.Value         = false;
                    brokenRule             = new BrokenRule();
                    brokenRule.ID          = "CODICE_QUALIFICA";
                    brokenRule.Description = "Codice qualifica mancante";
                    retValue.BrokenRules.Add(brokenRule);
                }

                if (qual.DESCRIZIONE == null || qual.DESCRIZIONE == string.Empty)
                {
                    retValue.Value         = false;
                    brokenRule             = new BrokenRule();
                    brokenRule.ID          = "DESCRIZIONE_QUALIFICA";
                    brokenRule.Description = "Descrizione qualifica mancante";
                    retValue.BrokenRules.Add(brokenRule);
                }
            }

            retValue.Value = (retValue.BrokenRules.Count == 0);

            return(retValue);
        }
示例#4
0
        public async Task <IActionResult> Login([FromBody] UserLoginDTO model)
        {
            var resultLogin = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, false, false);

            if (resultLogin.Succeeded)
            {
                var user = UserManager.Users.SingleOrDefault(r => r.UserName == model.UserName);

                var token = GenerateJwtToken(user.Email, user);

                var result = new UserLoggedDTO
                {
                    User = new UserDTO
                    {
                        Id       = user.Id,
                        Name     = user.Name,
                        UserName = user.UserName
                    },
                    Token = token
                };

                return(Ok(result));
            }
            else
            {
                var rule = new BrokenRule("Invalid username or password.");
                rule.Add("UserName", "Invalid username or password");

                throw new RuleException(rule);
            }
        }
        private void UpdateState()
        {
            Popup popup = (Popup)FindName("popup");

            if (popup != null)
            {
                popup.IsOpen = false;
            }

            BusinessBase businessObject = Source as BusinessBase;

            if (businessObject != null)
            {
                // for some reason Linq does not work against BrokenRulesCollection...
                List <BrokenRule> allRules = new List <BrokenRule>();
                foreach (var r in businessObject.BrokenRulesCollection)
                {
                    if (r.Property == Property)
                    {
                        allRules.Add(r);
                    }
                }

                var removeRules = (from r in BrokenRules
                                   where !allRules.Contains(r)
                                   select r).ToArray();

                var addRules = (from r in allRules
                                where !BrokenRules.Contains(r)
                                select r).ToArray();

                foreach (var rule in removeRules)
                {
                    BrokenRules.Remove(rule);
                }
                foreach (var rule in addRules)
                {
                    BrokenRules.Add(rule);
                }

                BrokenRule worst = (from r in BrokenRules
                                    orderby r.Severity
                                    select r).FirstOrDefault();

                if (worst != null)
                {
                    _worst = worst.Severity;
                }

                _isValid = BrokenRules.Count == 0;
                GoToState(true);
            }
            else
            {
                BrokenRules.Clear();
                _isValid = true;
                GoToState(true);
            }
        }
示例#6
0
        public void Add(BrokenRule rule, object link)
        {
            IsReadOnly = false;
            var item = new ExtendedBrokenRule(rule, link);

            Add(item);
            IsReadOnly = true;
        }
示例#7
0
 internal ExtendedBrokenRule(BrokenRule rule, object link)
 {
     _ruleName    = rule.RuleName;
     _description = rule.Description;
     _property    = rule.Property;
     _severity    = rule.Severity;
     _link        = link;
 }
示例#8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="description"></param>
        /// <returns></returns>
        private static BrokenRule CreateBrokenRule(string id, string description)
        {
            BrokenRule brokenRule = new BrokenRule();

            brokenRule.ID          = id;
            brokenRule.Description = description;
            return(brokenRule);
        }
示例#9
0
        /// <summary>
        /// Creazione oggetto BrokenRule
        /// </summary>
        /// <param name="id"></param>
        /// <param name="description"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        private static BrokenRule CreateBrokenRule(string id, string description, BrokenRule.BrokenRuleLevelEnum level)
        {
            BrokenRule brokenRule = new BrokenRule();

            brokenRule.ID          = id;
            brokenRule.Description = description;
            brokenRule.Level       = level;
            return(brokenRule);
        }
示例#10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="description"></param>
        /// <returns></returns>
        protected BrokenRule GetBrokenRule(string id, string description)
        {
            BrokenRule brokenRule = new BrokenRule();

            brokenRule.ID          = id;
            brokenRule.Description = description;
            brokenRule.Level       = BrokenRuleLevelEnum.Error;
            return(brokenRule);
        }
示例#11
0
        public void Can_access_broken_rule_details()
        {
            var rule       = CreateStub <IRule>();
            var person     = new Person();
            var brokenRule = new BrokenRule(rule, person, "FullName", "Full Name", -123);

            Assert.That(brokenRule.InvalidInstance, Is.EqualTo(person));
            Assert.That(brokenRule.InvalidValue, Is.EqualTo(-123));
            Assert.That(brokenRule.PropertyDisplayName, Is.EqualTo("Full Name"));
            Assert.That(brokenRule.PropertyKey, Is.EqualTo("FullName"));
        }
示例#12
0
        public async Task <IActionResult> Post([FromBody] UserRegisterDTO model)
        {
            var user = new User
            {
                UserName = model.UserName,
                Email    = model.Email,
                Name     = model.Name
            };

            var resultCreate = await UserManager.CreateAsync(user, model.Password);

            if (resultCreate.Succeeded)
            {
                await SignInManager.SignInAsync(user, false);

                var token = GenerateJwtToken(model.Email, user);

                user = await UserManager.FindByEmailAsync(model.Email);

                var result = new UserLoggedDTO
                {
                    User = new UserDTO
                    {
                        Id       = user.Id,
                        Name     = user.Name,
                        UserName = user.UserName
                    },
                    Token = token
                };

                return(Ok(result));
            }
            else
            {
                if (resultCreate.Errors.Count() > 0)
                {
                    var rule = new BrokenRule("Error!");

                    foreach (var item in resultCreate.Errors)
                    {
                        rule.Add("UserName", item.Description);
                    }

                    throw new RuleException(rule);
                }
                else
                {
                    var rule = new BrokenRule("Error!");
                    rule.Add("UserName", "Register failed");

                    throw new RuleException(rule);
                }
            }
        }
示例#13
0
        public override BrokenRule Validate(object value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            if (null == value || string.IsNullOrWhiteSpace(value.ToString()))
            {
                rule.IsBroken     = true;
                rule.ErrorMessage = this.Message;
                rule.Name         = this.Name;
            }

            return(rule);
        }
示例#14
0
    public void AddRule(string Name, string Description, int Cost)
    {
        BrokenRule r = Instantiate <BrokenRule>(BrokenRulePrefab);

        r.Name = Name;
        if (Description != null && Description.Length > 0)
        {
            r.Description = Description;
        }

        r.Value            = Cost;
        r.transform.parent = transform;
    }
示例#15
0
        public virtual bool Update(Comment obj, int userLoggedId)
        {
            var ownerId = base.GetAll().Where(x => x.Id == obj.Id).Select(x => x.OwnerUserId).FirstOrDefault();

            if (ownerId != userLoggedId)
            {
                var rule = new BrokenRule("Not allowed");
                rule.Add("Comment", "Not allowed");

                throw new RuleException(rule);
            }

            return(base.Update(obj));
        }
        public override BrokenRule Validate(object value, ValidationContext context)
        {
            BrokenRule rule     = new BrokenRule();
            var        DataType = ((AssignmentTrial.Models.TestInput)context.SourceObject).value_type;
            var        signal   = ((AssignmentTrial.Models.TestInput)context.SourceObject).signal;

            try
            {
                if (null == value || string.IsNullOrWhiteSpace(value.ToString()))
                {
                    rule.IsBroken     = true;
                    rule.ErrorMessage = $"signal: { signal} {this.Message}";
                    rule.Name         = this.Name;
                }

                if (DataType.Equals("String", StringComparison.OrdinalIgnoreCase))
                {
                    var val = Convert.ToString(value);
                }
                else if (DataType.Equals("Integer", StringComparison.OrdinalIgnoreCase))
                {
                    var val = Convert.ToInt32(value);
                }
                else if (DataType.Equals("DateTime", StringComparison.OrdinalIgnoreCase))
                {
                    var val = Convert.ToDateTime(value);
                    if (val > DateTime.Now)
                    {
                        rule.IsBroken     = true;
                        rule.ErrorMessage = $"signal: {signal} should not be in future";
                        rule.Name         = this.Name;
                    }
                }
                else
                {
                    rule.IsBroken     = true;
                    rule.ErrorMessage = $"signal: {signal} No maching datatype defined";
                    rule.Name         = this.Name;
                }
            }
            catch (Exception e)
            {
                rule.IsBroken     = true;
                rule.ErrorMessage = $"signal: { signal} value is not a matching value type";
                rule.Name         = this.Name;
            }

            return(rule);
        }
示例#17
0
        public void Can_use_resource_as_message()
        {
            ValidationContext.ResourceManagers.Add(TestMessages.ResourceManager);

            var rule = CreateStub <IRule>();

            rule.Stub(r => r.Resource).Return("personInvalidName");

            var person     = new Person();
            var brokenRule = new BrokenRule(rule, person, "Name", "Name", "John Doe");

            var message = brokenRule.Message;

            Assert.That(message, Is.EqualTo("John Doe is not a valid name."));
        }
示例#18
0
        public void Should_format_message()
        {
            var rule = CreateStub <IRule>();

            rule.Stub(r => r.Message).Return("{Instance.Name} has invalid {Property}: {Value}");

            var person = new Person {
                Name = "John Doe"
            };
            var brokenRule = new BrokenRule(rule, person, "Age", "Age", -123);

            var message = brokenRule.Message;

            Assert.That(message, Is.EqualTo("John Doe has invalid Age: -123"));
        }
        public override BrokenRule Validate(object value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            if (null != value || !string.IsNullOrWhiteSpace(value.ToString()))
            {
                if (value.ToString().Length >= Max)
                {
                    rule.IsBroken = true;
                    rule.Name = this.Name;
                    rule.ErrorMessage = this.Message;
                }
            }
            return rule;
        }
        public override BrokenRule Validate(object value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            var targetField = context.SourceObject.GetType().GetProperty(this.Name);

            if (value != targetField.GetValue(context.SourceObject))
            {
                rule.IsBroken = true;
                rule.ErrorMessage = this.Message;
                rule.Name = this.Name;
            }

            return rule;
        }
        public override BrokenRule Validate(dynamic value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            if (null != value || !string.IsNullOrWhiteSpace(value.ToString()))
            {
                if (!Regex.IsMatch(value, expr))
                {
                    rule.IsBroken     = true;
                    rule.Name         = this.Name;
                    rule.ErrorMessage = this.Message;
                }
            }
            return(rule);
        }
示例#22
0
        /// <summary>Get error message for a particular property, ready for binding in a UI.</summary>
        /// <remarks>This implementation displays the property's "first" broken rule if there are many.
        /// Could override to provide alternative messaging
        /// such as line wrapping all of the property's broken rules.
        /// </remarks>
        protected virtual string DataErrorInfoCore(string pPropertyName)
        {
            string result = string.Empty;

            if (!IsValid)
            {
                BrokenRule rule =
                    BrokenRuleManager.BrokenRules.GetFirstBrokenRule(pPropertyName);
                if (rule != null)
                {
                    result = rule.Description;
                }
            }
            return(result);
        }
        public override BrokenRule Validate(dynamic value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            var targetField = context.SourceObject.GetType().GetProperty(Name);

            if (value != targetField.GetValue(context.SourceObject))
            {
                rule.IsBroken     = true;
                rule.ErrorMessage = Message;
                rule.Name         = Name;
            }

            return(rule);
        }
示例#24
0
        public static ValidationResultInfo UpdateRightRuoloMailRegistro(RightRuoloMailRegistro[] visRuolo)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            result.Value = dbAmministrazione.UpdateRightRuoloMailRegistro(visRuolo);
            if (!result.Value)
            {
                BrokenRule brokenRule = new BrokenRule();
                brokenRule.ID          = "DB_ERROR";
                brokenRule.Description = "Si è verificato un errore in aggiornamento visibilità ruolo sulle caselle di posta associate al registro";
                result.BrokenRules.Add(brokenRule);
            }
            return(result);
        }
示例#25
0
        public static ValidationResultInfo DeleteMailRegistro(string idRegistro, string casella)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            result.Value = dbAmministrazione.DeleteMailRegistro(idRegistro, casella);
            if (!result.Value)
            {
                // Errore nell'eliminazione delle caselle di posta associate al registro
                BrokenRule brokenRule = new BrokenRule();
                brokenRule.ID          = "DB_ERROR";
                brokenRule.Description = "Si è verificato un errore durante l'eliminazione delle caselle di posta associate al registro";
                result.BrokenRules.Add(brokenRule);
            }
            return(result);
        }
示例#26
0
        public static ValidationResultInfo InsertMailRegistro(string idRegistro, CasellaRegistro[] caselle, bool insertInteropInt)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            result.Value = dbAmministrazione.InsertMailRegistro(idRegistro, caselle, insertInteropInt);
            if (!result.Value)
            {
                // Errore nell'aggiornamento delle caselle di posta associate al registro
                BrokenRule brokenRule = new BrokenRule();
                brokenRule.ID          = "DB_ERROR";
                brokenRule.Description = "Si è verificato un errore in inserimento caselle di posta del registro";
                result.BrokenRules.Add(brokenRule);
            }
            return(result);
        }
示例#27
0
        /// <summary>
        /// Eliminazione diritti di visibilità del ruolo di un registro/RF sulle caselle di posta associate
        /// </summary>
        /// <param name="idRegistro"></param>
        /// <param name="idAooInUO"></param>
        /// <returns></returns>
        public static ValidationResultInfo DeleteRightRuoloMailRegistro(string idRegistro, string idRuoloInUO, string indirizzoEmail)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            result.Value = dbAmministrazione.DeleteRigthRuoloMailRegistro(idRegistro, idRuoloInUO, indirizzoEmail);
            if (!result.Value)
            {
                // Errore nell'eliminazione dei diritti
                BrokenRule brokenRule = new BrokenRule();
                brokenRule.ID          = "DB_ERROR";
                brokenRule.Description = "Si è verificato un errore durante l'eliminazione dei diritti di visibilità dei ruoli del registro/RF sulle caselle di posta";
                result.BrokenRules.Add(brokenRule);
            }
            return(result);
        }
示例#28
0
        /// <summary>
        /// Inserimernto diritti di visibilità del ruolo di un registro/RF sulle caselle di posta associate
        /// </summary>
        /// <param name="idRegistro"></param>
        /// <param name="idAooInUO"></param>
        /// <returns></returns>
        public static ValidationResultInfo InsertRightRuoloMailRegistro(System.Collections.Generic.List <RightRuoloMailRegistro> rightRuoloMailRegistro)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmministrazione = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            result.Value = dbAmministrazione.InsertRigthRuoloMailRegistro(rightRuoloMailRegistro);
            if (!result.Value)
            {
                // Errore nell'inserimento dei diritti
                BrokenRule brokenRule = new BrokenRule();
                brokenRule.ID          = "DB_ERROR";
                brokenRule.Description = "Si è verificato un errore durante l'inserimento dei diritti di visibilità dei ruoli del registro/RF sulle caselle di posta";
                result.BrokenRules.Add(brokenRule);
            }
            return(result);
        }
示例#29
0
 RuleFailed RuleFailed(IRuleContext ruleContext, Dictionary <IRule, BrokenRule> brokenRules)
 {
     return((rule, instance, reason) =>
     {
         BrokenRule brokenRule;
         if (brokenRules.ContainsKey(rule))
         {
             brokenRule = brokenRules[rule];
         }
         else
         {
             brokenRule = new BrokenRule(rule, instance, ruleContext);
             brokenRules[rule] = brokenRule;
         }
         brokenRule.AddReason(reason);
     });
 }
示例#30
0
        /// <summary>
        /// Gets the first validation information message for a
        /// property on the Model
        /// </summary>
        /// <param name="propertyName">Property name</param>
        /// <returns></returns>
        public string GetInformationText(string propertyName)
        {
            var result = string.Empty;

            if (Model is Core.BusinessBase obj)
            {
                BrokenRule worst = (from r in obj.BrokenRulesCollection
                                    where r.Property == propertyName &&
                                    r.Severity == RuleSeverity.Information
                                    select r).FirstOrDefault();
                if (worst != null)
                {
                    result = worst.Description;
                }
            }
            return(result);
        }
示例#31
0
        public override BrokenRule Validate(object value, ValidationContext context)
        {
            BrokenRule rule = new BrokenRule();

            var targetField = context.SourceObject.GetType().GetProperty(this.Name);

            UnityEngine.Debug.Log(value + " = " + layerTypeBelow);

            if ((LayersType)value == layerTypeBelow)
            {
                rule.IsBroken     = true;
                rule.ErrorMessage = this.Message;
                rule.Name         = this.Name;
            }

            return(rule);
        }
示例#32
0
        /// Verifica presenza descrizione per aggiornamento qualifica
        private static ValidationResultInfo IsValidRequiredFieldsQualificaUpdate(String descrizione)
        {
            ValidationResultInfo retValue   = new ValidationResultInfo();
            BrokenRule           brokenRule = null;

            if (descrizione == null || descrizione == string.Empty)
            {
                retValue.Value         = false;
                brokenRule             = new BrokenRule();
                brokenRule.ID          = "DESCRIZIONE_QUALIFICA";
                brokenRule.Description = "Descrizione qualifica mancante";
                retValue.BrokenRules.Add(brokenRule);
            }

            retValue.Value = (retValue.BrokenRules.Count == 0);
            return(retValue);
        }