コード例 #1
0
        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());
        }
コード例 #2
0
 public string GenerateID(SqlTransaction objTransaction, object objModel, EnumIdCategory pCriteriaId)
 {
     return(GenerateIDWithDate(objTransaction, objModel, pCriteriaId, DateTime.Now));
 }