コード例 #1
0
        /// <summary>
        /// CheckIn del documento corrente MTEXT
        /// </summary>
        private void CheckInMTextDocument(String file)
        {
            // Salvataggio del docNumber del documento in CheckOut
            String docNumber = CheckOutContext.Current.Status.DocumentNumber;

            // Estrai porzione del path di interesse per M/TEXT
            file = file.Substring(8);

            // Accedi a MTEXT per prelevare il PDF
            MTextModelProvider mtext = ModelProviderFactory <MTextModelProvider> .GetInstance();

            // Preleva contenuto PDF
            Byte[] content = mtext.ExportDocument(file, "application/pdf");

            // Fai sembrare il file M/TEXT un file FDF
            CheckOutContext.Current.Status.DocumentLocation = "mtext.pdf";

            // Effettua il checkin del documento
            ValidationResultInfo result = CheckInOutServices.CheckInDocument(content);

            // Salva l'FQN del file M/TEXT
            DocsPaWebService ws = new DocsPaWebService();

            ws.SetMTextFullQualifiedName(new MTextDocumentInfo()
            {
                DocumentDocNumber = docNumber,
                FullQualifiedName = file
            });

            if (!result.Value)
            {
                // Scrittura dei messaggi di errore nel checkin
                Response.Write(this.GetErrorMessage(result));
            }
        }
コード例 #2
0
        /// <summary>
        /// Verifica della validità formale della password
        /// </summary>
        /// <param name="password"></param>
        /// <param name="idAmministrazione"></param>
        /// <returns></returns>
        private static ValidationResultInfo CheckPasswordString(string password, int idAmministrazione)
        {
            ValidationResultInfo result = new ValidationResultInfo();

            // Verifica della presenza di caratteri non validi
            if (!CheckPasswordInvalidChars(password))
            {
                result.BrokenRules.Add(CreateBrokenRule("PASSWORD_INVALID_CHARS", "La password contiene caratteri non ammessi", BrokenRule.BrokenRuleLevelEnum.Error));
            }

            // Verifica della lunghezza della password fornita
            DocsPaVO.amministrazione.PasswordConfigurations config = AdminPasswordConfigServices.GetPasswordConfigurations(idAmministrazione);

            if (password.Length < config.MinLength)
            {
                result.BrokenRules.Add(CreateBrokenRule("PASSWORD_LENGHT", string.Format("La lunghezza della password deve essere di almeno {0} caratteri", config.MinLength.ToString()), BrokenRule.BrokenRuleLevelEnum.Error));
            }

            // Verifica la presenza di caratteri speciali obbligatori
            if (config.SpecialCharacters.Length > 0 && password.IndexOfAny(config.SpecialCharacters) == -1)
            {
                result.BrokenRules.Add(CreateBrokenRule("PASSWORD_REQUIRED_SPECIAL_CHARS", string.Format("La password deve contenere almeno uno tra i seguenti caratteri speciali:{0}", " " + new string(config.SpecialCharacters)), BrokenRule.BrokenRuleLevelEnum.Error));
            }
            //result.BrokenRules.Add(CreateBrokenRule("PASSWORD_REQUIRED_SPECIAL_CHARS", "La password deve contenere almeno uno tra i caratteri speciali previsti in amministrazione", BrokenRule.BrokenRuleLevelEnum.Error));

            return(result);
        }
コード例 #3
0
        public Guid Save(County entity, bool?isSync = null)
        {
            var vri = new ValidationResultInfo();

            if (isSync == null || !isSync.Value)
            {
                vri = Validate(entity);
            }

            if (!vri.IsValid)
            {
                throw new DomainValidationException(vri, "County not valid");
            }
            DateTime dt = DateTime.Now;

            using (var ctx = GetVtsContext("CountyRepository"))
            {
                County county = GetById(entity.Id);
                if (county == null)
                {
                    entity.Status      = EntityStatus.Active;
                    entity.DateCreated = dt;
                }
                entity.DateLastUpdated = dt;
                ctx.UpdateGraph(entity, map => map.OwnedCollection(n => n.CountyGovernors)
                                .OwnedCollection(n => n.CountySenators)
                                .OwnedCollection(n => n.CountyWomenReps));
                ctx.SaveChanges();
            }

            return(entity.Id);
        }
コード例 #4
0
        public Guid Save(Ward entity, bool?isSync = null)
        {
            var vri = new ValidationResultInfo();

            if (isSync == null || !isSync.Value)
            {
                vri = Validate(entity);
            }

            if (!vri.IsValid)
            {
                throw new DomainValidationException(vri, "Ward not valid");
            }
            DateTime dt = DateTime.Now;

            using (var ctx = GetVtsContext("WardRepository"))
            {
                Ward ward = GetById(entity.Id);
                if (ward == null)
                {
                    entity.Status      = EntityStatus.Active;
                    entity.DateCreated = dt;
                }
                entity.DateLastUpdated = dt;
                ctx.UpdateGraph(entity, map => map.OwnedCollection(n => n.WardMcas));

                ctx.SaveChanges();
            }

            return(entity.Id);
        }
コード例 #5
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);
        }
コード例 #6
0
        public Guid Save(Race entity, bool?isSync = null)
        {
            var vri = new ValidationResultInfo();

            if (isSync == null || !isSync.Value)
            {
                vri = Validate(entity);
            }

            if (!vri.IsValid)
            {
                throw new DomainValidationException(vri, "Race not valid");
            }
            DateTime dt = DateTime.Now;

            using (var ctx = GetVtsContext("RaceRepository"))
            {
                Race race = GetById(entity.Id);
                if (race == null)
                {
                    entity.Status      = EntityStatus.Active;
                    entity.DateCreated = dt;
                }
                entity.DateLastUpdated = dt;
                ctx.UpdateGraph(entity);

                ctx.SaveChanges();
            }

            return(entity.Id);
        }
コード例 #7
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);
        }
コード例 #8
0
ファイル: CheckInOutServices.cs プロジェクト: sebbalex/PITre
        /// <summary>
        /// CheckIn di un documento
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static ValidationResultInfo CheckInDocument(byte[] content)
        {
            ValidationResultInfo retValue = null;

            if (CheckOutContext.Current != null && CheckOutContext.Current.Status != null)
            {
                CheckOutStatus checkOutStatus  = CheckOutContext.Current.Status;
                string         checkInComments = CheckOutContext.Current.CheckInComments;

                retValue = _webServices.CheckInDocument(checkOutStatus, GetInfoUtente(), content, checkInComments);

                if (retValue.Value)
                {
                    CheckOutContext.Current = null;

                    if (System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] != null)
                    {
                        System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] = null;
                    }
                }
            }
            else
            {
                retValue = new ValidationResultInfo();
            }

            return(retValue);
        }
コード例 #9
0
        public void OperationError_IEquatable()
        {
            ValidationResultInfo error1 = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error2 = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error3 = new ValidationResultInfo("message2", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error4 = new ValidationResultInfo("message2", 2, null, new string[] { "foo" });

            // compare same object ref
            Assert.IsTrue(((IEquatable <ValidationResultInfo>)error1).Equals(error1));

            // compare different object ref but same data fields
            Assert.IsTrue(((IEquatable <ValidationResultInfo>)error1).Equals(error2));

            // compare objects with 1 different field
            Assert.IsFalse(((IEquatable <ValidationResultInfo>)error1).Equals(error3));

            // compare objects with all different fields
            Assert.IsFalse(((IEquatable <ValidationResultInfo>)error1).Equals(error4));

            // verify List.Contains uses our implementation of IEquatable.Equals
            List <ValidationResultInfo> errors = new List <ValidationResultInfo>()
            {
                error1, error3, error4
            };

            Assert.IsTrue(errors.Contains(error2));
        }
コード例 #10
0
ファイル: CheckInOutServices.cs プロジェクト: sebbalex/PITre
        /// <summary>
        /// CheckOut di un documento senza estrarre il contenuto del file
        /// </summary>
        /// <param name="documentLocation"></param>
        /// <param name="machineName"></param>
        /// <param name="checkOutStatus"></param>
        /// <returns></returns>
        public static ValidationResultInfo CheckOutDocument(string documentLocation, string machineName, out CheckOutStatus checkOutStatus)
        {
            ValidationResultInfo retValue = null;

            checkOutStatus = null;

            SchedaDocumento schedaDocumento = CheckInOutServices.CurrentSchedaDocumento;

            if (schedaDocumento != null)
            {
                string docnum = schedaDocumento.docNumber;
                string docid  = schedaDocumento.systemId;
                if (IsSelectedTabAllegati())
                {
                    docnum = UIManager.DocumentManager.GetSelectedAttachment().docNumber;
                    docid  = UIManager.DocumentManager.GetSelectedAttachment().docNumber;
                }

                retValue = _webServices.CheckOutDocument(docid, docnum, documentLocation, machineName, GetInfoUtente(), out checkOutStatus);

                if (retValue.Value && !IsSelectedTabAllegati())
                {
                    schedaDocumento.checkOutStatus = checkOutStatus;

                    CheckOutAppletContext.Current = new CheckOutAppletContext(schedaDocumento);
                }
            }

            return(retValue);
        }
コード例 #11
0
        /// <summary>
        /// CheckIn di un documento
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static ValidationResultInfo CheckInDocument(byte[] content)
        {
            ValidationResultInfo retValue = null;

            if (CheckOutContext.Current != null && CheckOutContext.Current.Status != null)
            {
                CheckOutStatus checkOutStatus  = CheckOutContext.Current.Status;
                string         checkInComments = CheckOutContext.Current.CheckInComments;

                retValue = _webServices.CheckInDocument(checkOutStatus, GetInfoUtente(), content, checkInComments);

                if (retValue.Value)
                {
                    CheckOutContext.Current = null;

                    SiteNavigation.CallContext context = SiteNavigation.CallContextStack.CurrentContext;

                    if (context.ContextState["schedaAllegatoSelezionato"] != null)
                    {
                        context.ContextState.Remove("schedaAllegatoSelezionato");
                    }
                }
            }
            else
            {
                retValue = new ValidationResultInfo();
            }

            return(retValue);
        }
コード例 #12
0
        public static ValidationResultInfo Validate(this object obj)
        {
            var validationResultInfo = new ValidationResultInfo();

            var context = new ValidationContext(obj, null, null);

            var validationResults = new Dictionary <string, List <ValidationResult> >();

            foreach (var prop in obj.GetType().GetProperties())
            {
                var attrs = prop
                            .GetCustomAttributes(false)
                            .OfType <ValidationAttribute>()
                            .ToArray();
                if (attrs.Count() > 0)
                {
                    var results          = new List <ValidationResult>();
                    var displayAttribute = prop.GetCustomAttribute <DisplayAttribute>();
                    if (displayAttribute != null)
                    {
                        context.DisplayName = displayAttribute.Name;
                    }
                    if (!Validator.TryValidateValue(prop.GetValue(obj), context, results, attrs))
                    {
                        validationResults.Add(prop.Name, results);
                    }
                }
            }
            validationResultInfo.ValidationResults = validationResults;
            return(validationResultInfo);
        }
コード例 #13
0
        public void OperationError_Sanity()
        {
            // test default ctor
            ValidationResultInfo error = new ValidationResultInfo();

            Assert.IsNull(error.Message);
            Assert.AreEqual <int>(0, error.ErrorCode);
            Assert.IsNull(error.StackTrace);

            // test ctor with message/member argument
            error = new ValidationResultInfo("my error message", new string[] { "foo" });
            Assert.AreEqual("my error message", error.Message);
            Assert.AreEqual <int>(0, error.ErrorCode);
            Assert.IsNull(error.StackTrace);
            Assert.AreEqual(1, error.SourceMemberNames.Count());
            Assert.IsTrue(error.SourceMemberNames.Contains("foo"));

            // test ctor with all arguments
            error = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            Assert.AreEqual("message", error.Message);
            Assert.AreEqual(10, error.ErrorCode);
            Assert.AreEqual("stacktrace", error.StackTrace);
            Assert.AreEqual(1, error.SourceMemberNames.Count());
            Assert.IsTrue(error.SourceMemberNames.Contains("foo"));
        }
コード例 #14
0
        /// <summary>
        /// Checkout di un documento e download del contenuto del file
        /// </summary>
        /// <param name="idDocument"></param>
        /// <param name="documentNumber"></param>
        /// <param name="machineName"></param>
        /// <param name="documentLocation">Percorso di estrazione del file</param>
        /// <param name="downloadFile">Se true, viene effettuato il download del file contestualmente al checkout</param>
        private void CheckOutDocument(string idDocument, string documentNumber, string documentLocation, string machineName, bool downloadFile)
        {
            CheckOutStatus checkOutStatus;

            ValidationResultInfo result = null;

            if (downloadFile)
            {
                byte[] content;

                result = CheckInOutServices.CheckOutDocumentWithFile(documentLocation, machineName, out checkOutStatus, out content);

                if (result.Value)
                {
                    SessionContent = content;
                }
            }
            else
            {
                result = CheckInOutServices.CheckOutDocument(documentLocation, machineName, out checkOutStatus);
            }

            if (!result.Value)
            {
                // Scrittura dei messaggi di errore nel checkout
                Response.Write(this.GetErrorMessage(result));
            }
        }
コード例 #15
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);
        }
コード例 #16
0
        private void MoveDocument(string docsId, string oldParentId, string parentId)
        {
            try {
                string   messaggio = string.Empty;
                string[] docId     = new string[1] {
                    docsId
                };
                if (docsId.IndexOf(",") > 0)
                {
                    docId = docsId.Split(',');
                }
                InfoUtente infoUtente = UserManager.GetInfoUser();

                DocsPaWR.Folder fromFolder = ProjectManager.getFolder(this, oldParentId);
                fromFolder = ProjectManager.getFolder(this, fromFolder);

                DocsPaWR.Folder toFolder = ProjectManager.getFolder(this, parentId);
                toFolder = ProjectManager.getFolder(this, toFolder);

                foreach (string docNumber in docId)
                {
                    string          idProfile = docNumber.Replace("doc", "");
                    SchedaDocumento doc       = DocumentManager.getDocumentDetails(this, idProfile, idProfile);

                    if (doc.protocollo != null && doc.protocollo.protocolloAnnullato != null)
                    {
                        // alert documento annullato
                        this.html_data.Text += "<" + "script type=\"text/javascript\">ajaxDialogModal('AlertProjectMoveDocNoAllowedProtCanceled', 'warning', '');<" + "/script>\n";
                    }
                    //else if (Convert.ToInt32(doc.accessRights) < Convert.ToInt32(HMdiritti.HMdiritti_Write))
                    //{
                    //    // alert no diritti in scrittura
                    //    this.html_data.Text += "<" + "script type=\"text/javascript\">ajaxDialogModal('AlertProjectMoveDocNoAllowedNoWrite', 'warning', '');<" + "/script>\n";
                    //}
                    else
                    {
                        // add new
                        UIManager.AddDocInProjectManager.addDocumentoInFolder(idProfile, toFolder.systemID, infoUtente);

                        // delete old
                        ValidationResultInfo risultato = UIManager.ProjectManager.deleteDocFromFolder(fromFolder, infoUtente, idProfile, RapidClassificationRequired.ToString(), out messaggio);
                        if (risultato != null && risultato.BrokenRules.Length > 0)
                        {
                            this.html_data.Text += "<" + "script type=\"text/javascript\">ajaxDialogModal('AlertProjectRemoveDoc', 'error', '');<" + "/script>\n";
                        }
                        else
                        if (!string.IsNullOrEmpty(messaggio))
                        {
                            this.html_data.Text += "<" + "script type=\"text/javascript\">ajaxDialogModal('ErrorProjectRemoveDoc', 'error', '');<" + "/script>\n";
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return;
            }
        }
コード例 #17
0
 /// <summary>
 /// Initializes a new <see cref="OperationException"/> instance.
 /// </summary>
 /// <param name="message">A message describing the exception.</param>
 /// <param name="operationError">The <see cref="ValidationResultInfo"/> associated with this exception.</param>
 /// <exception cref="ArgumentNullException">if <paramref name="operationError"/> is null.</exception>
 internal OperationException(string message, ValidationResultInfo operationError)
     : this(message, new[] { operationError })
 {
     if (operationError == null)
     {
         throw new ArgumentNullException("operationError");
     }
 }
コード例 #18
0
        /// Cancellazione peopleGroups
        public static ValidationResultInfo DeletePeopleGroups(String idPeopleGroups)
        {
            ValidationResultInfo retValue = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Utenti dbUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            dbUtenti.DeletePeopleGroups(idPeopleGroups);
            return(retValue);
        }
コード例 #19
0
 /// <summary>
 /// Initializes a new <see cref="OperationException"/> instance.
 /// </summary>
 /// <param name="message">A message describing the exception.</param>
 /// <param name="operationError">The <see cref="ValidationResultInfo"/> associated with this exception.</param>
 /// <exception cref="ArgumentNullException">if <paramref name="operationError"/> is null.</exception>
 internal OperationException(string message, ValidationResultInfo operationError)
     : this(message, new[] { operationError })
 {
     if (operationError == null)
     {
         throw new ArgumentNullException("operationError");
     }
 }
コード例 #20
0
        /// <summary>
        /// Metodo per la formattazione degli errori di validazione
        /// </summary>
        /// <param name="validationResultInfo">Errori di validazione da visualizzare</param>
        private void FormatValidationError(ValidationResultInfo validationResultInfo)
        {
            StringBuilder plainMessages = new StringBuilder("Sono stati rilevati i seguenti errori di validazione:\\n");

            validationResultInfo.BrokenRules.Select(rule => { plainMessages.AppendFormat("{0}\\n\\n", rule.Description); return(rule); }).ToList();

            this.AjaxMessageBox.ShowMessage(plainMessages.ToString());
        }
コード例 #21
0
        /// Cancellazione qualifica
        public static ValidationResultInfo DeleteQual(String idQualifica, int idAmministrazione)
        {
            ValidationResultInfo retValue = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Utenti dbUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            dbUtenti.DeleteQual(idQualifica, idAmministrazione.ToString());
            return(retValue);
        }
コード例 #22
0
        /// <summary>
        /// Modifica password utente
        /// </summary>
        /// <param name="oldPassword"/></param>
        /// <param name="user"></param>
        ///// <returns></returns>
        public ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword)
        {
            ValidationResultInfo retValue = new ValidationResultInfo();

            retValue.Value = false;
            retValue.BrokenRules.Add(new BrokenRule("CHANGE_PWD_NOT_SUPPORTED", "Cambio password non supportato dal documentale CDC", BrokenRule.BrokenRuleLevelEnum.Error));
            return(retValue);
        }
コード例 #23
0
        /// <summary>
        /// Cancellazione di un tipo funzione
        /// </summary>
        /// <param name="tipoFunzione"></param>
        /// <returns></returns>
        public static ValidationResultInfo DeleteTipoFunzione(OrgTipoFunzione tipoFunzione)
        {
            ValidationResultInfo retValue = CanDeleteTipoFunzione(tipoFunzione);

            if (retValue.Value)
            {
                DBProvider dbProvider = new DBProvider();

                try
                {
                    // Cancellazione tipo funzione
                    DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_D_DELETE_TIPO_FUNZIONE");
                    queryDef.setParam("systemID", tipoFunzione.IDTipoFunzione);

                    string commandText = queryDef.getSQL();
                    logger.Debug(commandText);

                    int rowsAffected = 0;

                    retValue.Value = dbProvider.ExecuteNonQuery(commandText, out rowsAffected);
                    retValue.Value = (retValue.Value && rowsAffected == 1);

                    if (retValue.Value)
                    {
                        // Cancellazione funzioni elementari
                        queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_D_DELETE_FUNZIONI_TIPO_FUNZIONE");
                        queryDef.setParam("idTipoFunzione", tipoFunzione.IDTipoFunzione);

                        commandText = queryDef.getSQL();
                        logger.Debug(commandText);

                        retValue.Value = dbProvider.ExecuteNonQuery(commandText);
                    }

                    if (retValue.Value)
                    {
                        dbProvider.CommitTransaction();
                    }
                    else
                    {
                        dbProvider.RollbackTransaction();
                    }
                }
                catch
                {
                    dbProvider.RollbackTransaction();
                    retValue.Value = false;
                }
                finally
                {
                    dbProvider.Dispose();
                    dbProvider = null;
                }
            }

            return(retValue);
        }
コード例 #24
0
        public static DocsPaVO.Validations.ValidationResultInfo UpdateMezzoSpedizione(MezzoSpedizione m_sped)
        {
            DocsPaVO.Validations.ValidationResultInfo retValue = new ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Amministrazione dbAmm = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            retValue.Value = dbAmm.UpdateMezzoSpedizione(m_sped);

            return(retValue);
        }
コード例 #25
0
        /// <summary>
        /// Annullamento del blocco sul documento
        /// </summary>
        private void UndoCheckOutDocument()
        {
            ValidationResultInfo retValue = CheckInOutServices.UndoCheckOutDocument();

            if (!retValue.Value)
            {
                // Scrittura dei messaggi di errore nel checkout
                Response.Write(this.GetErrorMessage(retValue));
            }
        }
コード例 #26
0
 public void User_withValid_validations_shouldPass()
 {
     //arrange
     var u = new Fixture();
     User user = u.Create<User>();
     //act
     ValidationResultInfo r = user.Validate();
     //assert
     Assert.That(r.IsValid, Is.True, "Validation should pass");
 }
コード例 #27
0
        /// <summary>
        /// Aggiornamento di un tipo chiave
        /// </summary>
        /// <param name="tipoFunzione"></param>
        /// <returns></returns>
        public static ValidationResultInfo UpdateChiaveConfigurazione(ChiaveConfigurazione chiaveConfig)
        {
            ValidationResultInfo retValue = CanUpdateChiaveConfig(chiaveConfig);

            if (retValue.Value)
            {
                IDatabase database = DatabaseFactory.CreateDatabase();

                try
                {
                    //database.BeginTransaction();  //non c'è bisogno della transazione perchè viene aggiornata una sola tabella

                    // Aggiornamento tipo chiave
                    DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_U_UPDATE_CHIAVE_CONFIGURAZIONE");
                    queryDef.setParam("descrizione", GetStringParameterValue(chiaveConfig.Descrizione));
                    queryDef.setParam("valore", GetStringParameterValue(chiaveConfig.Valore));
                    queryDef.setParam("systemID", chiaveConfig.IDChiave);

                    string commandText = queryDef.getSQL();
                    logger.Debug(commandText);

                    int rowsAffected = 0;

                    retValue.Value = database.ExecuteNonQuery(commandText, out rowsAffected);
                    if (retValue.Value)
                    {
                        retValue.Value = (retValue.Value && rowsAffected == 1);
                    }
                    if (!retValue.Value)
                    {
                        retValue.BrokenRules.Add(new BrokenRule("AGGIORNAMENTO_CHIAVE_CONFIGURAZIONE", "Non è stata aggiornata alcuna chiave"));
                    }



                    //if (retValue.Value)
                    //    database.CommitTransaction();
                    //else
                    //    database.RollbackTransaction();
                }
                catch
                {
                    //database.RollbackTransaction();
                    retValue.Value = false;
                }
                finally
                {
                    database.Dispose();
                    database = null;
                }
            }

            return(retValue);
        }
コード例 #28
0
        public void PollingCentre_withValid_validations_shouldPass()
        {
            //arrange
            var           u             = new Fixture();
            PollingCentre pollingCentre = u.Create <PollingCentre>();
            //act
            ValidationResultInfo r = pollingCentre.Validate();

            //assert
            Assert.That(r.IsValid, Is.True, "Validation should pass");
        }
コード例 #29
0
        public void Settings_withValid_validations_shouldPass()
        {
            //arrange
            var      u        = new Fixture();
            Settings settings = u.Create <Settings>();
            //act
            ValidationResultInfo r = settings.Validate();

            //assert
            Assert.That(r.IsValid, Is.True, "Validation should pass");
        }
コード例 #30
0
        public void PoliticalParty_withValid_validations_shouldPass()
        {
            //arrange
            var            u = new Fixture();
            PoliticalParty politicalParty = u.Create <PoliticalParty>();
            //act
            ValidationResultInfo r = politicalParty.Validate();

            //assert
            Assert.That(r.IsValid, Is.True, "Validation should pass");
        }
コード例 #31
0
        public void Region_withValid_validations_shouldPass()
        {
            //arrange
            var    u      = new Fixture();
            Region region = u.Create <Region>();
            //act
            ValidationResultInfo r = region.Validate();

            //assert
            Assert.That(r.IsValid, Is.True, "Validation should pass");
        }
コード例 #32
0
        public void Constructor_SetState()
        {
            ValidationResultInfo error = new ValidationResultInfo();
            ValidationResultInfo[] errors = new[] { error };
            OperationException exception;

            exception = new OperationException("message", error);

            Assert.AreEqual("message", exception.Message);
            Assert.AreEqual(1, exception.OperationErrors.Count());
            Assert.AreSame(error, exception.OperationErrors.Single());

            exception = new OperationException("message", errors);

            Assert.AreEqual("message", exception.Message);
            Assert.AreEqual(1, exception.OperationErrors.Count());
            Assert.AreSame(error, exception.OperationErrors.Single());
        }
コード例 #33
0
        public void OperationError_IEquatable()
        {
            ValidationResultInfo error1 = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error2 = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error3 = new ValidationResultInfo("message2", 10, "stacktrace", new string[] { "foo" });
            ValidationResultInfo error4 = new ValidationResultInfo("message2", 2, null, new string[] { "foo" });

            // compare same object ref
            Assert.IsTrue(((IEquatable<ValidationResultInfo>)error1).Equals(error1));

            // compare different object ref but same data fields
            Assert.IsTrue(((IEquatable<ValidationResultInfo>)error1).Equals(error2));

            // compare objects with 1 different field
            Assert.IsFalse(((IEquatable<ValidationResultInfo>)error1).Equals(error3));

            // compare objects with all different fields
            Assert.IsFalse(((IEquatable<ValidationResultInfo>)error1).Equals(error4));

            // verify List.Contains uses our implementation of IEquatable.Equals
            List<ValidationResultInfo> errors = new List<ValidationResultInfo>() { error1, error3, error4 };
            Assert.IsTrue(errors.Contains(error2));
        }
コード例 #34
0
        public void OperationError_Sanity()
        {
            // test default ctor
            ValidationResultInfo error = new ValidationResultInfo();
            Assert.IsNull(error.Message);
            Assert.AreEqual<int>(0, error.ErrorCode);
            Assert.IsNull(error.StackTrace);

            // test ctor with message/member argument
            error = new ValidationResultInfo("my error message", new string[] { "foo" });
            Assert.AreEqual("my error message", error.Message);
            Assert.AreEqual<int>(0, error.ErrorCode);
            Assert.IsNull(error.StackTrace);
            Assert.AreEqual(1, error.SourceMemberNames.Count());
            Assert.IsTrue(error.SourceMemberNames.Contains("foo"));

            // test ctor with all arguments
            error = new ValidationResultInfo("message", 10, "stacktrace", new string[] { "foo" });
            Assert.AreEqual("message", error.Message);
            Assert.AreEqual(10, error.ErrorCode);
            Assert.AreEqual("stacktrace", error.StackTrace);
            Assert.AreEqual(1, error.SourceMemberNames.Count());
            Assert.IsTrue(error.SourceMemberNames.Contains("foo"));
        }
コード例 #35
0
 private static string GetErrorMessageForValidation(ValidationResultInfo validationResultInfo)
 {
     return validationResultInfo.ToString();
 }
コード例 #36
0
        private void InvokeAction(HttpActionDescriptor action, object[] parameters, ChangeSetEntry changeSetEntry)
        {
            try
            {
                Collection<HttpParameterDescriptor> pds = action.GetParameters();
                Dictionary<string, object> paramMap = new Dictionary<string, object>(pds.Count);
                for (int i = 0; i < pds.Count; i++)
                {
                    paramMap.Add(pds[i].ParameterName, parameters[i]);
                }

                // TODO this method is not correctly observing the execution results, the catch block below is wrong. 385801
                action.ExecuteAsync(ActionContext.ControllerContext, paramMap);
            }
            catch (TargetInvocationException tie)
            {
                ValidationException vex = tie.GetBaseException() as ValidationException;
                if (vex != null)
                {
                    ValidationResultInfo error = new ValidationResultInfo(vex.Message, 0, String.Empty, vex.ValidationResult.MemberNames);
                    if (changeSetEntry.ValidationErrors != null)
                    {
                        changeSetEntry.ValidationErrors = changeSetEntry.ValidationErrors.Concat(new ValidationResultInfo[] { error }).ToArray();
                    }
                    else
                    {
                        changeSetEntry.ValidationErrors = new ValidationResultInfo[] { error };
                    }
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #37
0
        private void InvokeAction(HttpActionDescriptor action, object[] parameters, ChangeSetEntry changeSetEntry)
        {
            try
            {
                Collection<HttpParameterDescriptor> pds = action.GetParameters();
                Dictionary<string, object> paramMap = new Dictionary<string, object>(pds.Count);
                for (int i = 0; i < pds.Count; i++)
                {
                    paramMap.Add(pds[i].ParameterName, parameters[i]);
                }

                // TODO - Issue #103
                // This method is not correctly observing the execution results, the catch block below is wrong.
                // Submit should be Task<bool>, not bool, and should model bind for the CancellationToken which would then
                // be propagated through to all the helper methods (one or more of which might also need to be made async,
                // once we start respecting the fact that the read/write actions should be allowed to be async).
                action.ExecuteAsync(ActionContext.ControllerContext, paramMap, CancellationToken.None);
            }
            catch (TargetInvocationException tie)
            {
                ValidationException vex = tie.GetBaseException() as ValidationException;
                if (vex != null)
                {
                    ValidationResultInfo error = new ValidationResultInfo(vex.Message, 0, String.Empty, vex.ValidationResult.MemberNames);
                    if (changeSetEntry.ValidationErrors != null)
                    {
                        changeSetEntry.ValidationErrors = changeSetEntry.ValidationErrors.Concat(new ValidationResultInfo[] { error }).ToArray();
                    }
                    else
                    {
                        changeSetEntry.ValidationErrors = new ValidationResultInfo[] { error };
                    }
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #38
0
        /// <summary>
        /// This method invokes the user overridable <see cref="PersistChangeSet"/> method wrapping the call
        /// with the appropriate exception handling logic. All framework calls to <see cref="PersistChangeSet"/>
        /// must go through this method. Some data sources have their own validation hook points,
        /// so if a <see cref="ValidationException"/> is thrown at that level, we want to capture it.
        /// </summary>
        /// <returns>True if the <see cref="ChangeSet"/> was persisted successfully, false otherwise.</returns>
        private bool PersistChangeSetInternal()
        {
            try
            {
                PersistChangeSet();
            }
            catch (ValidationException e)
            {
                // if a validation exception is thrown for one of the entities in the changeset
                // set the error on the corresponding ChangeSetEntry
                if (e.Value != null && e.ValidationResult != null)
                {
                    IEnumerable<ChangeSetEntry> updateOperations =
                        ChangeSet.ChangeSetEntries.Where(
                            p => p.Operation == ChangeOperation.Insert ||
                                 p.Operation == ChangeOperation.Update ||
                                 p.Operation == ChangeOperation.Delete);

                    ChangeSetEntry operation = updateOperations.SingleOrDefault(p => Object.ReferenceEquals(p.Entity, e.Value));
                    if (operation != null)
                    {
                        ValidationResultInfo error = new ValidationResultInfo(e.ValidationResult.ErrorMessage, e.ValidationResult.MemberNames);
                        error.StackTrace = e.StackTrace;
                        operation.ValidationErrors = new List<ValidationResultInfo>() { error };
                    }
                }
                else
                {
                    throw;
                }
            }

            return !ChangeSet.HasError;
        }