public string GenerateIDWithDate(SqlTransaction objTransaction, object objModel, EnumIdCategory pCriteriaId, DateTime pDateTime) { IDGenCriteriaInfo objIDGenCriteriaInfo = new IDGenCriteriaInfo(); objIDGenCriteriaInfo.CriteriaID = ((int)pCriteriaId).ToString(); PropertyInfo pi = objModel.GetType().GetProperty("CompanyCode_FK"); if (pi == null) { pi = objModel.GetType().GetProperty("CompanyCode"); objIDGenCriteriaInfo.CompanyCode_FK = Convert.ToInt32(pi.GetValue(objModel, null)); } else { objIDGenCriteriaInfo.CompanyCode_FK = (int)pi.GetValue(objModel, null); } List <IDGenCriteriaInfo> objIDGenCriteriaInfoList = GetObjectByID(objTransaction, objIDGenCriteriaInfo); StringBuilder sbGenId = new StringBuilder(); if (objIDGenCriteriaInfoList.Count > 0) { List <IDGenCriteriaCondition> objCriteriaConditionList = objIDGenCriteriaInfoList[0].IDGenCriteriaConditionList_VW; for (int i = 0; i < objCriteriaConditionList.Count; i++) { IDGenCriteriaCondition objCriteriaCondition = (IDGenCriteriaCondition)objCriteriaConditionList[i]; switch (objCriteriaCondition.ConditionType) { case "0": //"Business Object"; Type tp = objModel.GetType(); PropertyInfo objProperty = tp.GetProperty(objCriteriaCondition.ConditionValue.Split('.')[1].ToString()); if (objProperty != null) { string vText = objProperty.GetValue(objModel, null).ToString(); if (vText.Length > objCriteriaCondition.ConditionValueLength) { vText = vText.Substring(0, objCriteriaCondition.ConditionValueLength); } else { if (!string.IsNullOrEmpty(objCriteriaCondition.PaddingText)) { char PaddingText = objCriteriaCondition.PaddingText[0]; vText = vText.PadRight(objCriteriaCondition.ConditionValueLength, PaddingText); } else { vText = vText.PadLeft(objCriteriaCondition.ConditionValueLength, '0'); } } sbGenId.Append(vText); } break; case "2": //"System Year"; if (objCriteriaCondition.ConditionValueLength > 0) { string vYear = pDateTime.Year.ToString(); if (vYear.Length >= objCriteriaCondition.ConditionValueLength) { vYear = vYear.Substring(vYear.Length - objCriteriaCondition.ConditionValueLength, objCriteriaCondition.ConditionValueLength); sbGenId.Append(vYear); } else { sbGenId.Append(vYear); } } break; case "3": //"System Month"; if (objCriteriaCondition.ConditionValue.ToUpper() == "MMM") { sbGenId.Append(pDateTime.ToString("MMM")); } else if (objCriteriaCondition.ConditionValue.ToUpper() == "MM") { sbGenId.Append(pDateTime.ToString("MM")); } else { sbGenId.Append(pDateTime.ToString("MM")); } break; case "4": //"System Day"; //Bug Fixed [01-01-2012] By Bashar string tempDay = pDateTime.Day.ToString(); string tempDayPad = tempDay.PadLeft(tempDay.Length + 2, '0'); sbGenId.Append(tempDayPad.Substring(tempDayPad.Length - 2, 2)); //sbGenId.Append(DateTime.Now.Day.ToString()); break; case "5": //"System Hour"; sbGenId.Append(DateTime.Now.Hour.ToString()); break; case "6": //"System Min"; sbGenId.Append(DateTime.Now.Minute.ToString()); break; case "7": //"System Sec"; sbGenId.Append(DateTime.Now.Second.ToString()); break; case "8": //"Static Value"; sbGenId.Append(objCriteriaCondition.ConditionValue.ToString()); break; case "9": //"Auto Increment"; sbGenId = GetAutoIncrimentValue(objTransaction, objModel, objCriteriaCondition, sbGenId, objCriteriaConditionList, pDateTime); break; } } } return(sbGenId.ToString()); }
public string GenerateID(SqlTransaction objTransaction, object objModel, EnumIdCategory pCriteriaId) { return(GenerateIDWithDate(objTransaction, objModel, pCriteriaId, DateTime.Now)); }