public CodeRuleData Insert(Session session, Guid codeRuleDefinitionId, Guid codeRuleDataFormatId) { CodeRuleData codeRuleData = null; try { //Get CodeRuleDefinition CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); //Get CodeRuleDataFormat CodeRuleDataFormat codeRuleDataFormat = session.GetObjectByKey <CodeRuleDataFormat>(codeRuleDataFormatId); //Create new CodeRuleStringData codeRuleData = new CodeRuleData(session) { CodeRuleDataFormatId = codeRuleDataFormat, CodeRuleDataId = Guid.NewGuid(), CodeRuleDefinitionId = codeRuleDefinition, CreateDate = DateTime.Now, RowStatus = Utility.Constant.ROWSTATUS_ACTIVE }; codeRuleData.Save(); return(codeRuleData); } catch (Exception ex) { return(null); } }
public void Delete(Session session, Guid codeRuleDefinitionId) { try { CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); if (codeRuleDefinition != null) { codeRuleDefinition.RowStatus = Utility.Constant.ROWSTATUS_DELETED; codeRuleDefinition.Save(); if (codeRuleDefinition.CodeRuleData != null) { foreach (var data in codeRuleDefinition.CodeRuleData) { data.RowStatus = Utility.Constant.ROWSTATUS_DELETED; data.Save(); } } } } catch (Exception) { throw; } }
public bool CodeRuleDefinifionCreatingNumberData_PreTransitionCRUD(string transition) { switch (transition) { case "Save": { try { ArtifactCodeRuleEditingForm artifactCodeRuleEditingForm = (ArtifactCodeRuleEditingForm)Parent; //Get CodeRuleDataType Guid codeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString()); //Get CodeRuleDataFormat Guid codeRuleDataFormatId = Guid.Parse(cbCodeRuleDataFormat.SelectedItem.Value.ToString()); Guid ruleRepeaterTypeId = Guid.Parse(cbRuleRepeaterType.SelectedItem.Value.ToString()); CodeRuleDefinition codeRuleDefinition = codeRuleDefinitionBO.Insert(session, artifactCodeRuleEditingForm.ArtifactCodeRuleId, codeRuleDataTypeId, ParentCodeRuleDefinitionId); int beginNum = (int)spinBeginNumberValue.Number; int step = (int)spinStep.Number; int endNum = (int)spinEndNumberValue.Number; CodeRuleData codeRuleData = codeRuleNumberDataBO.Insert(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormatId, beginNum, step, endNum, ruleRepeaterTypeId); CodeRuleDefinitionId = codeRuleDefinition.CodeRuleDefinitionId; CodeRuleDataId = codeRuleData.CodeRuleDataId; return(true); } catch (Exception) { return(false); } } default: break; } return(true); }
public CodeRuleStringData Update(Session session, Guid codeRuleDefinitionId, Guid codeRuleDataFormatId, string stringValue) { CodeRuleStringData codeRuleStringData = null; try { CodeRuleDataBO codeRuleDataBO = new CodeRuleDataBO(); //Check updating CodeRuleDataType already exist //Get CodeRuleDataFormat CodeRuleDataFormat codeRuleDataFormat = session.GetObjectByKey <CodeRuleDataFormat>(codeRuleDataFormatId); //Get CodeRuleDefinition CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); codeRuleStringData = (CodeRuleStringData)codeRuleDataBO.GetCodeRuleData(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormat.CodeRuleDataTypeId.CodeRuleDataTypeId); foreach (var item in codeRuleDefinition.CodeRuleData) { item.RowStatus = Utility.Constant.ROWSTATUS_INACTIVE; item.Save(); } if (codeRuleStringData == null) { codeRuleStringData = Insert(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormatId, stringValue); } else { codeRuleStringData.StringValue = stringValue; codeRuleStringData.CodeRuleDataFormatId = codeRuleDataFormat; codeRuleStringData.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; codeRuleStringData.Save(); } return(codeRuleStringData); } catch (Exception ex) { throw; } }
public bool CodeRuleDefinifionCreatingStringData_PreTransitionCRUD(string transition) { switch (transition) { case "Save": { try { ArtifactCodeRuleEditingForm artifactCodeRuleEditingForm = (ArtifactCodeRuleEditingForm)Parent; //Get CodeRuleDataType Guid codeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString()); //Get CodeRuleDataFormat Guid codeRuleDataFormatId = Guid.Parse(cbCodeRuleDataFormat.SelectedItem.Value.ToString()); CodeRuleDefinition codeRuleDefinition = codeRuleDefinitionBO.Insert(session, artifactCodeRuleEditingForm.ArtifactCodeRuleId, codeRuleDataTypeId, ParentCodeRuleDefinitionId); CodeRuleData codeRuleData = codeRuleStringDataBO.Insert(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormatId, txtStringValue.Text); CodeRuleDefinitionId = codeRuleDefinition.CodeRuleDefinitionId; CodeRuleDataId = codeRuleData.CodeRuleDataId; return(true); } catch (Exception) { return(false); } } default: break; } return(true); }
public CodeRuleDefinition Update(Session session, Guid codeRuleDefinitionId, Guid codeRuleDataTypeId) { CodeRuleDefinition codeRuleDefinition = null; try { //Get current CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); //Get CodeRuleDataType CodeRuleDataType codeRuleDataType = session.GetObjectByKey <CodeRuleDataType>(codeRuleDataTypeId); codeRuleDefinition.CodeRuleDataTypeId = codeRuleDataType; codeRuleDefinition.Save(); return(codeRuleDefinition); } catch (Exception ex) { throw; } }
public CodeRuleDefinition Insert(Session session, Guid artifactCodeRuleId, Guid codeRuleDataTypeId, Guid parentCodeRuleDefinitionId) { CodeRuleDefinition codeRuleDefinition = null; try { //Get ArtifactCodeRule ArtifactCodeRule artifactCodeRule = session.GetObjectByKey <ArtifactCodeRule>(artifactCodeRuleId); //Get CodeRuleDataType CodeRuleDataType codeRuleDataType = session.GetObjectByKey <CodeRuleDataType>(codeRuleDataTypeId); //Get parent CodeRuleDefinition CodeRuleDefinition parentCodeRuleDefinition = null; if (parentCodeRuleDefinitionId != Guid.Empty) { parentCodeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(parentCodeRuleDefinitionId); } //Validate bool isInsertingValid = isInsertingCodeRuleDefinitionValid(session, artifactCodeRuleId, parentCodeRuleDefinition); if (isInsertingValid) { //Create new CodeRuleDefinition codeRuleDefinition = new CodeRuleDefinition(session) { ArtifactCodeRuleId = artifactCodeRule, CodeRuleDataTypeId = codeRuleDataType, CodeRuleDefinitionId = Guid.NewGuid(), ParentCodeRuleDefinitionId = parentCodeRuleDefinition, RowStatus = Utility.Constant.ROWSTATUS_ACTIVE }; codeRuleDefinition.Save(); } return(codeRuleDefinition); } catch (Exception ex) { return(null); } }
public CodeRuleNumberData Insert( Session session, Guid codeRuleDefinitionId, Guid codeRuleDataFormatId, int beginNumber, int step, int endNumber, Guid ruleRepeaterTypeId) { CodeRuleNumberData codeRuleNumberData = null; try { //Get CodeRuleDefinition CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); //Get CodeRuleDataFormat CodeRuleDataFormat codeRuleDataFormat = session.GetObjectByKey <CodeRuleDataFormat>(codeRuleDataFormatId); //Get RuleRepeaterType RuleRepeaterType ruleRepeaterType = session.GetObjectByKey <RuleRepeaterType>(ruleRepeaterTypeId); //Create new CodeRuleStringData codeRuleNumberData = new CodeRuleNumberData(session) { CodeRuleDataFormatId = codeRuleDataFormat, CodeRuleDataId = Guid.NewGuid(), CodeRuleDefinitionId = codeRuleDefinition, CreateDate = DateTime.Now, RowStatus = Utility.Constant.ROWSTATUS_ACTIVE, BeginNumberValue = beginNumber, EndNumberValue = endNumber, LastNumber = beginNumber - step, RuleRepeaterTypeId = ruleRepeaterType, Step = step }; codeRuleNumberData.Save(); return(codeRuleNumberData); } catch (Exception ex) { return(null); } }
public string GetArtifactCode(Guid artifactCodeRuleId, bool isUpdateLastestWhenIsNumber) { UnitOfWork uow = null; string artifactCode = String.Empty; try { uow = XpoHelper.GetNewUnitOfWork(); CriteriaOperator criteria = CriteriaOperator.And( new BinaryOperator("ArtifactCodeRuleId.ArtifactCodeRuleId", artifactCodeRuleId), new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE), new UnaryOperator(UnaryOperatorType.IsNull, "ParentCodeRuleDefinitionId") ); XPCollection <CodeRuleDefinition> codeRuleDefinitions = new XPCollection <CodeRuleDefinition>(PersistentCriteriaEvaluationBehavior.InTransaction, uow, criteria, false); CodeRuleDefinition rootDefinition = codeRuleDefinitions.FirstOrDefault(); if (rootDefinition == null) { return(String.Empty); } else { artifactCode = GetCodeDefinition(uow, rootDefinition, isUpdateLastestWhenIsNumber); } uow.CommitChanges(); return(artifactCode); } catch (Exception) { throw; } finally { if (uow != null) { uow.Dispose(); } } }
public CodeRuleNumberData Update(Session session, Guid codeRuleDefinitionId, Guid codeRuleDataFormatId, int beginNumber, int step, int endNumber, Guid ruleRepeaterTypeId) { CodeRuleNumberData codeRuleNumberData = null; try { CodeRuleDataBO codeRuleDataBO = new CodeRuleDataBO(); //Check updating CodeRuleDataType already exist //Get CodeRuleDataFormat CodeRuleDataFormat codeRuleDataFormat = session.GetObjectByKey <CodeRuleDataFormat>(codeRuleDataFormatId); //Get CodeRuleDefinition CodeRuleDefinition codeRuleDefinition = session.GetObjectByKey <CodeRuleDefinition>(codeRuleDefinitionId); codeRuleNumberData = (CodeRuleNumberData)codeRuleDataBO.GetCodeRuleData(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormat.CodeRuleDataTypeId.CodeRuleDataTypeId); foreach (var item in codeRuleDefinition.CodeRuleData) { item.RowStatus = Utility.Constant.ROWSTATUS_INACTIVE; item.Save(); } if (codeRuleNumberData == null) { codeRuleNumberData = Insert(session, codeRuleDefinition.CodeRuleDefinitionId, codeRuleDataFormatId, beginNumber, step, endNumber, ruleRepeaterTypeId); } else { int lastestNum = 0; bool isUpdateLastestNum = false; RuleRepeaterType ruleRepeaterType = session.GetObjectByKey <RuleRepeaterType>(ruleRepeaterTypeId); codeRuleNumberData.BeginNumberValue = beginNumber; codeRuleNumberData.Step = step; codeRuleNumberData.EndNumberValue = endNumber; codeRuleNumberData.RuleRepeaterTypeId = ruleRepeaterType; codeRuleNumberData.CodeRuleDataFormatId = codeRuleDataFormat; codeRuleNumberData.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; //If lastest number is out of updating range //then update lastest number lastestNum = codeRuleNumberData.LastNumber; if (step > 0) { if (((lastestNum + step) > endNumber) || (lastestNum + step) < beginNumber) { isUpdateLastestNum = true; } } else if (step < 0) { if (((lastestNum + step) < endNumber) || (lastestNum + step) > beginNumber) { isUpdateLastestNum = true; } } if (isUpdateLastestNum) { //update lastest number codeRuleNumberData.LastNumber = beginNumber - step; } codeRuleNumberData.Save(); } return(codeRuleNumberData); } catch (Exception ex) { throw; } }
public bool isInsertingCodeRuleDefinitionValid(Session session, Guid artifactCodeRuleId, CodeRuleDefinition parentCodeRuleDefinition) { try { //Get ArtifactCodeRule ArtifactCodeRule artifactCodeRule = session.GetObjectByKey <ArtifactCodeRule>(artifactCodeRuleId); if (parentCodeRuleDefinition == null) { //Is CodeRuleDefinition root of the ArtifactCodeRule exist int rootCount = artifactCodeRule.CodeRuleDefinitions .Where(r => r.RowStatus > 0 && r.ParentCodeRuleDefinitionId == null) .Count(); if (rootCount != 0) { return(false); } } else { //Check parentCodeRuleDefinition already has child int countChild = parentCodeRuleDefinition.CodeRuleDefinitions.Count(r => r.RowStatus > 0); if (countChild != 0) { return(false); } } return(true); } catch (Exception ex) { return(false); } }
public string GetCodeDefinition(Session session, CodeRuleDefinition codeRuleDefinition, bool isUpdateLastestWhenIsNumber) { string codeDefinition = String.Empty; ArtifactCodeFormater.CodeRuleData data = null; ArtifactCodeFormater.CodeRuleDataFormater formater = null; int beginNum = 0; int step = 0; int endNum = 0; int lastestNum = 0; int currentNum = 0; //2.1. Get data type //2.2. Get format type CodeRuleData codeRuleData = codeRuleDefinition.CodeRuleData.FirstOrDefault(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE); //Get format code string dataFormat = codeRuleData.CodeRuleDataFormatId.Code; //2.3. Determine the data type //2.3.1. When is STRING #region STRING if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("STRING")) { CodeRuleStringData _codeRuleStringData = (CodeRuleStringData)codeRuleData; data = new ArtifactCodeFormater.CodeRuleData(); switch (dataFormat) { case "NORMAL": formater = new ArtifactCodeFormater.CodeRuleDataFormaterString(); break; case "LOWERCASE": formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringLowerCase(); break; case "UPPERCASE": formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringUpperCase(); break; case "ACSII": formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI(); break; case "UPPERCASE_ACSII": formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI( new ArtifactCodeFormater.CodeRuleDataFormaterStringUpperCase() ); break; case "LOWERCASE_ACSII": formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI( new ArtifactCodeFormater.CodeRuleDataFormaterStringLowerCase() ); break; default: break; } data.Value = _codeRuleStringData.StringValue; data.FormatString = _codeRuleStringData.CodeRuleDataFormatId.FormatString; } #endregion //2.3.2. When is NUMBER #region NUMBER else if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("NUMBER")) { CodeRuleNumberData _codeRuleNumberData = (CodeRuleNumberData)codeRuleData; //2.3.2.1. Get begin number beginNum = _codeRuleNumberData.BeginNumberValue; //2.3.2.2. Get step step = _codeRuleNumberData.Step; //2.3.2.3. Get end number endNum = _codeRuleNumberData.EndNumberValue; //2.3.2.4. Get lastest number lastestNum = _codeRuleNumberData.LastNumber; //check can get more code if (isUpdateLastestWhenIsNumber) { if (step > 0) { if ((step + lastestNum) > endNum) { throw new Exception("Definition is invalid"); } } else if (step < 0) { if ((step + lastestNum) < endNum) { throw new Exception("Definition is invalid"); } } currentNum = lastestNum + step; } else { currentNum = beginNum; } formater = new ArtifactCodeFormater.CodeRuleDataFormaterNumber(); data = new ArtifactCodeFormater.CodeRuleData(); data.Value = currentNum; data.FormatString = _codeRuleNumberData.CodeRuleDataFormatId.FormatString; if (isUpdateLastestWhenIsNumber) { _codeRuleNumberData.LastNumber = currentNum; _codeRuleNumberData.Save(); } } #endregion //2.3.3. When is DATETIME #region DATETIME //Get system datetime else if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("DATETIME")) { formater = new ArtifactCodeFormater.CodeRuleDataFormaterDateTime(); data = new ArtifactCodeFormater.CodeRuleData(); data.Value = DateTime.Now; data.FormatString = codeRuleData.CodeRuleDataFormatId.FormatString; } #endregion data.UseFormater(formater); codeDefinition = data.GetFormatedValue(); int countChild = codeRuleDefinition.CodeRuleDefinitions.Where(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE).Count(); if (countChild == 0) { return(codeDefinition); } else { CodeRuleDefinition childCodeRuleDefinition = codeRuleDefinition.CodeRuleDefinitions .Where(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE) .First(); return(codeDefinition += GetCodeDefinition(session, childCodeRuleDefinition, isUpdateLastestWhenIsNumber)); } }