private void PopulateValidation() { try { DevExpress.XtraEditors.DXErrorProvider.ConditionValidationRule ValidationRule = new DevExpress.XtraEditors.DXErrorProvider.ConditionValidationRule(); ValidationRule.ErrorType = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical; //base.PopulateValidation(); foreach (Control item in this.LayoutControl.Controls) { if (item.DataBindings.Count != 0) { DB.VW_Validation validationItem = BL.ApplicationDataContext.Instance.ValidationRestrictions.Where(n => ((System.Windows.Forms.BindingSource)(item.DataBindings[0].DataSource)).DataSource.ToString().Split('.').Last().StartsWith(n.TableName) && n.ColumnName.StartsWith(item.DataBindings[0].BindingMemberInfo.BindingField)).FirstOrDefault(); if (validationItem == null) { continue; } //If there is a lenght restriction add validator if ((Int32)validationItem.LengthMax.Value != 0) { if (item is DevExpress.XtraEditors.TextEdit) { (item as DevExpress.XtraEditors.TextEdit).Properties.MaxLength = (Int32)validationItem.LengthMax.Value; } } //If there is a required field restriction add validator if (!validationItem.Nullable.Value) { if (validationItem.ColumnName.Contains("Id")) { //FK IDs not allowed to be Zero ValidationRule.ErrorText = "Value cannot be blank"; ValidationRule.ConditionOperator = DevExpress.XtraEditors.DXErrorProvider.ConditionOperator.NotEquals; ValidationRule.Value1 = 0; ValidationProvider.SetValidationRule(item, ValidationRule); } else { //FK IDs not allowed to be NULL ValidationRule.ErrorText = "Value cannot be blank"; ValidationRule.ConditionOperator = DevExpress.XtraEditors.DXErrorProvider.ConditionOperator.IsNotBlank; ValidationProvider.SetValidationRule(item, ValidationRule); } } } } } catch { } }
private void grvEntries_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e) { bool valid = true; DB.VW_Validation validationReference = BL.ApplicationDataContext.Instance.ValidationRestrictions .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Reference")).FirstOrDefault(); if (validationReference != null) { string reference = (string)((BulkEntry)(e.Row)).Reference; if ((reference == null && !validationReference.Nullable.Value) || (reference != null && reference.Length == 0 && !validationReference.Nullable.Value)) { e.ErrorText = "Value cannot be blank"; valid = false; grvEntries.SetColumnError(colReference, e.ErrorText); grvEntries.FocusedColumn = colReference; } else { e.ErrorText = string.Empty; } } DB.VW_Validation validationDescription = BL.ApplicationDataContext.Instance.ValidationRestrictions .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Description")).FirstOrDefault(); if (validationDescription != null) { string description = (string)((BulkEntry)(e.Row)).Description; if ((description == null && !validationDescription.Nullable.Value) || (description != null && description.Length == 0 && !validationDescription.Nullable.Value)) { e.ErrorText = "Value cannot be blank"; if (valid) { valid = false; } grvEntries.SetColumnError(colDescription, e.ErrorText); grvEntries.FocusedColumn = colDescription; return; } else { e.Valid = true; } } e.Valid = valid; grvEntries.ShowEditor(); }
private void grvEntries_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) { DB.VW_Validation validationReference = BL.ApplicationDataContext.Instance.ValidationRestrictions .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Reference")).FirstOrDefault(); if (validationReference != null && grvEntries.FocusedColumn.Equals(colReference)) { string reference = (string)e.Value; if (reference != null && reference.Length > validationReference.LengthMax && !validationReference.Nullable.Value) { e.ErrorText = String.Format("Value cannot be longer than {0} characters", validationReference.LengthMax); e.Valid = false; return; } else { e.ErrorText = string.Empty; } } DB.VW_Validation validationDescription = BL.ApplicationDataContext.Instance.ValidationRestrictions .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Description")).FirstOrDefault(); if (validationDescription != null && grvEntries.FocusedColumn.Equals(validationDescription)) { string reference = (string)e.Value; if (reference != null && reference.Length > validationDescription.LengthMax && !validationDescription.Nullable.Value) { e.ErrorText = String.Format("Value cannot be longer than {0} characters", validationDescription.LengthMax); e.Valid = false; return; } else { e.Valid = true; } } }
protected override bool SaveSuccessful() { try { using (new CDS.Client.Desktop.Essential.UTL.WaitCursor()) { this.OnSaveRecord(); if (!IsValid) { return(false); } if (glxAccount.CenterId == -1) { glxAccount.CenterId = null; } //TODO: Improve this DB.VW_Validation validationItem = BL.ApplicationDataContext.Instance.ValidationRestrictions.Where(n => ((System.Windows.Forms.BindingSource)(txtName.DataBindings[0].DataSource)).DataSource.ToString().Split('.').Last().StartsWith(n.TableName) && n.ColumnName.Equals(txtName.DataBindings[0].BindingMemberInfo.BindingField)).FirstOrDefault(); ((DB.SYS_Entity)BindingSourceEntity.DataSource).ShortName = ((DB.SYS_Entity)BindingSourceEntity.DataSource).Name.Substring(0, validationItem.LengthMax.Value > txtName.Text.Length ? txtName.Text.Length : (int)validationItem.LengthMax.Value); if (sysEntity.CodeSub != "00000") { DB.GLX_Account glxControlAccount = BL.GLX.GLX_Account.LoadControlAccountByCode(sysEntity.CodeMain, DataContext); glxAccount.AgingAccount = glxControlAccount.AgingAccount; glxAccount.AccountTypeId = glxControlAccount.AccountTypeId; glxAccount.MasterControlId = glxControlAccount.EntityId; } else { if (ceSiteAccount.Checked) { glxAccount.SiteId = (long?)ddlSiteSelection.EditValue; } } glxAccount.IsNewAccount = DataContext.EntityAccountingContext.GetEntityState(glxAccount) == System.Data.Entity.EntityState.Detached; glxAccount.SiteAccount = BindingSourceSiteAccount.DataSource as DB.GLX_SiteAccount; if (glxAccount.SiteAccount != null) { glxAccount.SiteAccount.MakeSiteDefault = makeSiteDefault; } try { using (TransactionScope transaction = DataContext.GetTransactionScope()) { BL.EntityController.SaveSYS_Entity(sysEntity, DataContext); //Needs another check, Should only happen for ORG entities and not other accounts ie. Bank account, COS account etc if (sysEntity.ChangeList.Contains("Name") && BL.ApplicationDataContext.Instance.Modules.Any(n => n.Id == (byte)BL.SYS.SYS_Modules.ORG && n.Code == "YES") && BL.ApplicationDataContext.Instance.SystemEntityContext.SYS_Entity.Any(n => n.CodeSub == sysEntity.CodeSub && n.TypeId == 3)) { BL.SYS.SYS_Entity.AllignCompanyAccountNames(sysEntity, DataContext); } DataContext.SaveChangesEntitySystemContext(); glxAccount.EntityId = sysEntity.Id; //ControlId Represents the Rollup Account //on New Accounts it is its own control glxAccount.ControlId = sysEntity.Id; BL.EntityController.SaveGLX_Account(glxAccount, DataContext); DataContext.SaveChangesEntityAccountingContext(); DataContext.SaveChangesEntitySystemContext(); DataContext.CompleteTransaction(transaction); } DataContext.EntityAccountingContext.AcceptAllChanges(); DataContext.EntitySystemContext.AcceptAllChanges(); return(true); } catch (Exception ex) { DataContext.EntityAccountingContext.RejectChanges(); DataContext.EntitySystemContext.RejectChanges(); HasErrors = true; if (CDS.Shared.Exception.UserInterfaceExceptionHandler.HandleException(ref ex)) { throw ex; } return(false); } } } catch (Exception ex) { HasErrors = true; CurrentException = ex; if (CDS.Shared.Exception.UserInterfaceExceptionHandler.HandleException(ref ex)) { throw ex; } return(false); } }