예제 #1
0
        public static int SetPrize(
            Dal.Models.Prize prize, List <int> LstPrizeLimitNum, OleDbConnection conn, OleDbTransaction tran)
        {
            if (prize == null || string.IsNullOrEmpty(prize.PrizeName) || prize.SpecialtyID == null)
            {
                throw new Exception("参数错误!");
            }

            Dal.Models.Specialty specialty = Specialty.GetSpecialty(prize.SpecialtyID.Value, conn, tran);

            // 所选专业不存在
            if (specialty == null)
            {
                throw new Exception("所选专业不存在!");
            }
            if ((specialty.ChildCount ?? 0) > 0)
            {
                throw new Exception("奖项创建失败,该专业下已存在子专业,无法创建奖项。");
            }

            // 同一专业中,奖项不允许重名
            Dal.Models.Prize prizeOriginal = GetPrize(prize.PrizeName, prize.SpecialtyID.Value, conn, tran);
            if (prizeOriginal != null && prize.PrizeID != prizeOriginal.PrizeID)
            {
                throw new Exception("同一专业中,奖项不允许重名!");
            }

            //奖项类别为空时,默认类别为综合奖
            if (string.IsNullOrEmpty(prize.PrizeTypeCode) ||
                !(new string[] { "0301", "0302", "0303", "0304" }).Contains(prize.PrizeTypeCode))
            {
                prize.PrizeTypeCode = "0301";
            }

            if (prize.ParticipantLimit == null)
            {
                prize.ParticipantLimit = Convert.ToInt32(
                    SysConstant.GetConstant(prize.PrizeTypeCode, conn, tran).CorrelationValue);
            }

            if (string.IsNullOrEmpty(prize.TemplateCode))
            {
                prize.TemplateCode = specialty.TemplateCode;
            }

            StringBuilder sbSql = new StringBuilder();

            if (prize.PrizeID == null)
            {
                sbSql.Append(" INSERT INTO Prize ( ");
                sbSql.Append("           PrizeName");
                sbSql.Append("          ,SpecialtyID ");
                sbSql.Append("          ,PrizeTypeCode ");
                sbSql.Append("          ,TemplateCode ");
                sbSql.Append("          ,IsMultipleVoting ");
                sbSql.Append("          ,VoteType ");
                sbSql.Append("          ,ParticipantLimit ");
                sbSql.Append("          ,AppendixDiscription ");
                sbSql.Append("          ,CreateTime ");
                sbSql.Append("          ,LastUpdateTime ");
                sbSql.Append(" ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, GETDATE(), GETDATE() ) ");

                int iResult = Dal.OleDbHlper.ExecuteNonQuery(
                    sbSql.ToString(), conn, CommandType.Text, tran
                    , new OleDbParameter("@PrizeName", OleDbType.VarWChar)
                {
                    Value = prize.PrizeName
                }
                    , new OleDbParameter("@SpecialtyID", OleDbType.Integer)
                {
                    Value = prize.SpecialtyID
                }
                    , new OleDbParameter("@PrizeTypeCode", OleDbType.VarWChar)
                {
                    Value = prize.PrizeTypeCode
                }
                    , new OleDbParameter("@TemplateCode", OleDbType.VarWChar)
                {
                    Value = prize.TemplateCode
                }
                    , new OleDbParameter("@IsMultipleVoting", OleDbType.Boolean)
                {
                    Value = prize.IsMultipleVoting
                }
                    , new OleDbParameter("@VoteType", OleDbType.VarWChar)
                {
                    Value = prize.VoteType
                }
                    , new OleDbParameter("@ParticipantNumber", OleDbType.Integer)
                {
                    Value = prize.ParticipantLimit
                }
                    , new OleDbParameter("@AppendixDiscription", OleDbType.VarWChar)
                {
                    Value = prize.AppendixDiscription
                }
                    );

                prize.PrizeID = GetPrize(prize.PrizeName, prize.SpecialtyID.Value, conn, tran).PrizeID;
            }
            else
            {
                sbSql.Append(" UPDATE Prize ");
                sbSql.Append("   SET  PrizeName = ? ");
                sbSql.Append("       ,IsMultipleVoting = ? ");
                sbSql.Append("       ,VoteType = ? ");
                sbSql.Append("       ,ParticipantLimit = ? ");
                sbSql.Append("       ,AppendixDiscription = ? ");
                sbSql.Append("       ,LastUpdateTime = GETDATE() ");
                sbSql.Append("  WHERE PrizeID = ? ");

                int iResult = Dal.OleDbHlper.ExecuteNonQuery(
                    sbSql.ToString(), conn, CommandType.Text, tran
                    , new OleDbParameter("@PrizeName", OleDbType.VarWChar)
                {
                    Value = prize.PrizeName
                }
                    , new OleDbParameter("@IsMultipleVoting", OleDbType.Boolean)
                {
                    Value = prize.IsMultipleVoting
                }
                    , new OleDbParameter("@VoteType", OleDbType.VarWChar)
                {
                    Value = prize.VoteType
                }
                    , new OleDbParameter("@ParticipantLimit", OleDbType.Integer)
                {
                    Value = prize.ParticipantLimit
                }
                    , new OleDbParameter("@AppendixDiscription", OleDbType.VarWChar)
                {
                    Value = prize.AppendixDiscription
                }
                    , new OleDbParameter("@PrizeID", OleDbType.Integer)
                {
                    Value = prize.PrizeID
                }
                    );
            }

            //奖项数量
            SetPrizeLevel(prize, LstPrizeLimitNum, conn, tran);

            SetOrdinal(prize, conn, tran);

            return(prize.PrizeID.Value);
        }
예제 #2
0
        /// <summary>
        /// 创建活动
        /// </summary>
        /// <param name="activity"></param>
        /// <returns>活动编号</returns>
        public static int CreateActivity(Dal.Models.Activity activity, OleDbConnection conn, OleDbTransaction trans = null)
        {
            if (string.IsNullOrEmpty(activity.ActivityTypeCode))
            {
                throw new Exception("参数错误");
            }

            if (GetActivity(activity.ActivityTypeCode, conn, trans) != null)
            {
                throw new Exception("当前活动类型已经有激活的活动,不能重复创建");
            }

            if (activity.CreateTime == null || activity.LastUpdateTime == null)
            {
                activity.CreateTime = DateTime.Now;
                activity.LastUpdateTime = activity.CreateTime;
            }

            if (string.IsNullOrEmpty(activity.ActivityName))
            {
                activity.ActivityName = activity.CreateTime.Value.ToString("yyyy届")
                    + SysConstant.GetConstant(activity.ActivityTypeCode, conn, trans).ConstantValue
                    + "评选活动";
            }

            activity.ActivityStatus = "1101";

            StringBuilder sbSql = new StringBuilder();
            int? iResult = 0;

            sbSql.Append(" INSERT INTO Activity ( ");
            sbSql.Append("        ActivityName ");
            sbSql.Append("       ,ActivityTypeCode ");
            sbSql.Append("       ,ActivityStatus ");
            sbSql.Append("       ,CreateTime ");
            sbSql.Append("       ,LastUpdateTime ");
            sbSql.Append(" )VALUES(?, ?, '1101', GETDATE(), GETDATE()) ");
            iResult = Dal.OleDbHlper.ExecuteNonQuery(sbSql.ToString(), conn, CommandType.Text, trans
                , new OleDbParameter("@ActivityName", OleDbType.VarWChar) { Value = activity.ActivityName }
                , new OleDbParameter("@ActivityTypeCode", OleDbType.VarWChar) { Value = activity.ActivityTypeCode });

            if (iResult != 1)
            {
                throw new Exception("创建失败");
            }
            else
            {
                activity.ActivityID = GetActivity(activity.ActivityTypeCode, conn, trans).ActivityID;
            }

            // 创建活动的同时,创建基础专业
            sbSql.Clear();
            sbSql.Append(" INSERT INTO Specialty ( ");
            sbSql.Append("   ActivityID ,SpecialtyCode ,SpecialtyName ,SpecialtyLevel ,SpecialtyIcon ");
            sbSql.Append(" , TemplateCode, IsShareQuota, IsInheritSchedule, IsInheritTemplet, IsAllowUpdate ");
            sbSql.Append(" , ParentID, CreateTime, LastUpdateTime ");
            sbSql.Append(" , IsSendReceivePost, IsSendUpdatePost, IsSendDeletePost, IsInheritAppendix,IsInheritAtlas ");
            sbSql.Append(" , Ordinal, TotalOrdinal) ");
            sbSql.Append(" SELECT ? , SubString(ConstantCode, 3, 2) + '0000', ConstantValue, '一级', CorrelationValue ");
            sbSql.Append(" , '02' + SubString(ConstantCode, 3, 2), 0, 1, 1, 0 ");
            sbSql.Append(" , NULL, GETDATE(), GETDATE() ");
            sbSql.Append(" , 0, 0, 0, 1, 1 ");
            sbSql.Append(" , SubString(ConstantCode,3,2) , SubString(ConstantCode,3,2) ");
            sbSql.Append(" FROM SysConstant where ConstantType = '17' ");
            Dal.OleDbHlper.ExecuteNonQuery(sbSql.ToString(), conn, CommandType.Text, trans
                 , new OleDbParameter("@ActivityID", OleDbType.Integer) { Value = activity.ActivityID });

            return activity.ActivityID.Value;
        }