public void GetRevoteGroupViews(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); int iPrizeID = 0; if (!Int32.TryParse(context.Request["PrizeID"], out iPrizeID)) { context.Response.Write("暂无奖项!"); return; } Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn); if (prize == null) { context.Response.Write("暂无奖项!"); return; } var groupViews = BuildRevoteGroupViews(prize, expert, conn); context.Response.Write(JsonConvert.SerializeObject(groupViews.ToArray())); }
private void RevotingVote(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); OleDbTransaction tran = conn.BeginTransaction(); try { int declarationId = 0; int revoteGroupId = 0; int recommended = 0; int notRecommened = 0; int prizeId = 0; if (!int.TryParse(context.Request["DeclarationID"], out declarationId) || !int.TryParse(context.Request["RevoteGroupId"], out revoteGroupId) || !int.TryParse(context.Request["RevoteRecommended"], out recommended) || !int.TryParse(context.Request["NotRevoteRecommended"], out notRecommened) || !int.TryParse(context.Request["PrizeId"], out prizeId)) { throw new Exception("参数错误!"); } Dal.Models.Prize prize = BLL.Prize.GetPrize(prizeId, conn, tran); if (prize == null || prize.IsStopVote) { throw new Exception("当前奖项及轮次已结束投票。"); } Revote revote = new Revote(); bool saved = revote.SaveRevotingVote(revoteGroupId, declarationId, recommended, notRecommened, expert.UserID.Value, conn, tran); if (saved) { tran.Commit(); var revoteGroups = this.BuildRevoteGroupViews(prize, expert, conn); string message = "投票成功!"; var result = new { Views = revoteGroups, Message = message }; context.Response.Write(JsonConvert.SerializeObject(result)); } else { tran.Rollback(); context.Response.Write(JsonConvert.SerializeObject(new { Message = "投票错误" })); } } catch (Exception ex) { tran.Rollback(); context.Response.Write(JsonConvert.SerializeObject(new { Message = ex.Message })); } }
protected void btnEditUser_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection(Dal.OleDbHlper.ConnectionString); conn.Open(); // 获取当前活动 string strActivityType = Session["ActivityType"].ToString(); Dal.Models.Activity activity = BLL.Activity.GetActivity(strActivityType, conn); if (activity == null) { Response.Redirect("../Mutual/HomePage.aspx"); return; } int iExpertId = 0; int.TryParse(Request["epid"], out iExpertId); Dal.Models.Expert expert = BLL.Expert.GetExpert(iExpertId, conn); expert.ExpertName = txtExpertName.Text; expert.AcademicTitle = txtAcademicTitle.Text; expert.Profession = txtProfession.Text; expert.Workplace = txtWorkplace.Text; expert.IDType = rbtnIDType.SelectedValue; expert.IDNumber = txtIDNumber.Text; expert.Gender = ddlGender.SelectedValue; expert.Email = txtEmail.Text; expert.SpecialtyIDs = checkeds.Value; OleDbTransaction tran = conn.BeginTransaction(); try { BLL.Expert.UpdateExpert(expert, conn, tran); BLL.User.SetUserSpecialty(expert.UserID.Value, activity.ActivityID.Value, expert.SpecialtyIDs, conn, tran); tran.Commit(); hdMsg.Value = "修改成功!"; } catch (Exception ex) { tran.Rollback(); conn.Close(); hdMsg.Value = ex.Message; return; } conn.Close(); }
protected void btnCreateUser_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection(Dal.OleDbHlper.ConnectionString); conn.Open(); // 获取当前活动 string strActivityType = Session["ActivityType"].ToString(); Dal.Models.Activity activity = BLL.Activity.GetActivity(strActivityType, conn); if (activity == null) { Response.Redirect("../Mutual/HomePage.aspx"); return; } OleDbTransaction tran = conn.BeginTransaction(); Dal.Models.Expert expert = new Dal.Models.Expert(); Dal.Models.UserInfo user = (Dal.Models.UserInfo)Session["UserInfo"]; expert.ExpertName = txtExpertName.Text; expert.AcademicTitle = txtAcademicTitle.Text; expert.Profession = txtProfession.Text; expert.Workplace = txtWorkplace.Text; expert.IDType = rbtnIDType.SelectedValue; expert.IDNumber = txtIDNumber.Text; expert.Gender = ddlGender.SelectedValue; expert.Email = txtEmail.Text; expert.SpecialtyIDs = checkeds.Value; //string strDefaultPassword = System.Configuration.ConfigurationManager.AppSettings["DefaultPassword"]; string strDefaultPassword = BLL.SysConstant.GetAppSettings("DefaultPassword", conn, tran); try { BLL.Expert.CreateExpert(expert, strDefaultPassword, user.UserID.Value, conn, tran); BLL.User.SetUserSpecialty(expert.UserID.Value, activity.ActivityID.Value, expert.SpecialtyIDs, conn, tran); tran.Commit(); hdMsg.Value = "添加成功!"; conn.Close(); } catch (Exception ex) { tran.Rollback(); conn.Close(); hdMsg.Value = ex.Message; return; } }
public void SubmitVote(HttpContext context, OleDbConnection conn) { int iPrizeID = 0; Int32.TryParse(context.Request["PrizeID"], out iPrizeID); Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn); Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); if (prize == null || prize.IsStopVote) { context.Response.Write("当前奖项及轮次已结束投票。"); return; } OleDbTransaction tran = conn.BeginTransaction(); try { //根据专家和奖项获评奖项目 List <Dal.Models.Vote> lstVote = BLL.Vote.GetVoteDeclarationList(expert, prize, conn, tran); //获取每个奖项的已评奖数量 Dictionary <string, int> dicVote = new Dictionary <string, int>(); //获取每个奖项未评奖数量 Dictionary <string, int> dicRemain = new Dictionary <string, int>(); GetLimit(prize, lstVote, ref dicVote, ref dicRemain); if (dicVote["Voted"] < lstVote.Count) { throw new Exception("尚未完成投票,提交失败!"); } BLL.Vote.SubmitVote(expert, prize, conn, tran); tran.Commit(); context.Response.Write("提交成功!"); } catch (Exception ex) { tran.Rollback(); context.Response.Write(ex.Message); } }
public void GetExpertVoteList(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); int iPrizeID = 0; if (!Int32.TryParse(context.Request["PrizeID"], out iPrizeID)) { context.Response.Write("暂无奖项!"); return; } Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn); if (prize == null) { context.Response.Write("暂无奖项!"); return; } Dal.Models.Schedule schedule = BLL.Schedule.GetSpecialtySchedule(prize.SpecialtyID.Value, conn); if (schedule.IsVoteStart == false) { context.Response.Write("投票未开始或已经结束!"); } else { //根据专家和奖项获评奖项目 List <Dal.Models.Vote> lstVote = BLL.Vote.GetVoteDeclarationList(expert, prize, conn); lstVote = lstVote.OrderBy(d => d.BigOrdinal).ToList(); //获取每个奖项的已评奖数量 Dictionary <string, int> dicVote = new Dictionary <string, int>(); //获取每个奖项未评奖数量 Dictionary <string, int> dicRemain = new Dictionary <string, int>(); GetLimit(prize, lstVote, ref dicVote, ref dicRemain); object[] obj = { prize, lstVote, dicVote, dicRemain }; context.Response.Write(JsonConvert.SerializeObject(obj)); } }
private List <dynamic> BuildRevoteGroupViews(Dal.Models.Prize prize, Dal.Models.Expert expert, OleDbConnection conn) { BLL.Revote revote = new Revote(); List <RevoteGroup> groups = revote.GetRevoteGroups(prize, conn); List <dynamic> groupViews = new List <dynamic>(); foreach (var revoteGroup in groups) { int revoteGroupId = revoteGroup.RevoteGroupId; List <RevotePrizeLevel> awards = revote.GetRevotePrizeLevelsByGroupId(revoteGroupId, conn); List <RevotingVoteView> votingViews = revote.GetRevotingVoteViews(revoteGroupId, expert.UserID.Value, conn); // 推荐票数 = 评选奖项总数-最低奖项数量 // 举例,若评选2个一等奖,1个二等奖,则推荐票数为(2+1)-1=2 // 若仅有一种奖项,则取该奖项的评选数量 int recommended = awards.Count == 1 ? awards.Sum(a => a.LevelLimitNumber) : awards.Sum(a => a.LevelLimitNumber) - awards.LastOrDefault().LevelLimitNumber; // 是否已提交, 当且仅当全部投票IsSubmit=true则视为该专家已经提交 bool isSubmit = votingViews.TrueForAll(v => v.IsSubmit.HasValue && v.IsSubmit.Value); // 已投票 int voted = votingViews.Count(v => v.RevoteRecommended.HasValue && v.RevoteRecommended.Value == 1); dynamic groupView = new { RevoteGroupId = revoteGroupId, VotingViews = votingViews.ToArray(), Info = new { Awards = awards.Select(a => a.ToAwardView()).ToArray <AwardView>(), Recommended = recommended, Voted = voted, IsSubmit = isSubmit } }; groupViews.Add(groupView); } return(groupViews); }
public void SubmitRevotingVote(HttpContext context, OleDbConnection conn) { int iPrizeID = 0; Int32.TryParse(context.Request["PrizeID"], out iPrizeID); Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn); Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); if (prize == null || prize.IsStopVote) { context.Response.Write("当前奖项及轮次已结束投票。"); return; } OleDbTransaction tran = conn.BeginTransaction(); try { BLL.Revote revote = new Revote(); RevotePrize last = revote.GetLastRevotePrize(prize, conn, tran); bool saved = revote.SubmitRevotingVote(expert.UserID.Value, last.RevotePrizeId, conn, tran); if (saved) { tran.Commit(); context.Response.Write("提交成功!"); } else { tran.Commit(); context.Response.Write("提交错误!"); } } catch (Exception ex) { tran.Rollback(); context.Response.Write(ex.Message); } }
private void BatchRevotingVote(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); int prizeId = 0; int recommended, notRecommended; int.TryParse(context.Request["PrizeID"], out prizeId); int.TryParse(context.Request["Recommended"], out recommended); int.TryParse(context.Request["NotRecommended"], out notRecommended); Dal.Models.Prize prize = BLL.Prize.GetPrize(prizeId, conn); if (prize == null || prize.IsStopVote) { context.Response.Write("当前奖项及轮次已结束投票。"); return; } BLL.Revote revote = new Revote(); RevotePrize revotePrize = revote.GetLastRevotePrize(prize, conn); OleDbTransaction tran = conn.BeginTransaction(); try { bool saved = revote.SaveBatchRevotingVotes(revotePrize.RevotePrizeId, expert.UserID.Value, recommended, notRecommended, conn, tran); tran.Commit(); context.Response.Write(JsonConvert.SerializeObject("投票成功!")); } catch (Exception ex) { tran.Rollback(); context.Response.Write(JsonConvert.SerializeObject(ex.Message)); } }
private void InitPage(OleDbConnection conn) { btnCreateUser.Visible = false; int iExpertId = 0; int.TryParse(Request["epid"], out iExpertId); if (iExpertId > 0) { try { Dal.Models.UserInfo userinfo = (Dal.Models.UserInfo)Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpert(iExpertId, conn); if (userinfo.UserID == expert.UserID) { ddlSpecialty.Enabled = false; ddlSpecialty.Visible = false; listSpecialty.Visible = true; } else { userinfo = BLL.User.GetUserInfo(expert.UserID.Value, conn); } txtExpertName.Text = expert.ExpertName; txtUserName.Text = userinfo.UserName; txtAcademicTitle.Text = expert.AcademicTitle; txtProfession.Text = expert.Profession; txtWorkplace.Text = expert.Workplace; rbtnIDType.SelectedValue = expert.IDType; txtIDNumber.Text = expert.IDNumber; //if (expert.IDType == "0901" && BLL.IDOperation.CheckIDCard18(expert.IDNumber)) //{ // rbtnIDType.Enabled = false; // txtIDNumber.Enabled = false; //} txtEmail.Text = userinfo.Email; ddlGender.SelectedValue = expert.Gender; if (expert.SpecialtyIDs != null && expert.SpecialtyIDs != "" && expert.SpecialtyNames != null && expert.SpecialtyNames != "") { string[] arrSpecialtyID = expert.SpecialtyIDs.Split(','); expert.SpecialtyNames = expert.SpecialtyNames.Replace(",", ","); string[] arrSpecialtyName = expert.SpecialtyNames.Split(','); for (int i = 0; i < arrSpecialtyID.Length; i++) { listSpecialty.Items.Add(new System.Web.UI.WebControls.ListItem(arrSpecialtyName[i], arrSpecialtyID[i])); } checkeds.Value = string.Join(",", arrSpecialtyID); } hdMsg.Value = ""; } catch (Exception ex) { hdMsg.Value = ex.Message; } } Dal.Models.UserInfo user = (Dal.Models.UserInfo)Session["UserInfo"]; if (user.UserType == "0805") { txtExpertName.Enabled = false; //ddlGender.Enabled = false; txtAcademicTitle.Enabled = false; txtProfession.Enabled = false; } }
private void BatchBallot(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); int iPrizeID = 0; int.TryParse(context.Request["PrizeID"], out iPrizeID); string strVoteCode = context.Request["VoteCode"]; string strLevelCode = context.Request["LevelCode"]; if (strLevelCode == "0404") { strLevelCode = ""; } Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn); if (prize == null || prize.IsStopVote) { context.Response.Write("当前奖项及轮次已结束投票。"); return; } OleDbTransaction tran = conn.BeginTransaction(); try { //根据专家和奖项获评奖项目 List <Dal.Models.Vote> lstVote = BLL.Vote.GetVoteDeclarationList(expert, prize, conn, tran); //获取每个奖项的已评奖数量 Dictionary <string, int> dicVote = new Dictionary <string, int>(); //获取每个奖项未评奖数量 Dictionary <string, int> dicRemain = new Dictionary <string, int>(); GetLimit(prize, lstVote, ref dicVote, ref dicRemain); //if (strVoteCode == "0601" && (dicRemain["Recommended"] == 0 // || (strLevelCode == "0401" && dicRemain["FirstPrize"] == 0) // || (strLevelCode == "0402" && dicRemain["SecondPrize"] == 0) // || (strLevelCode == "0403" && dicRemain["ThirdPrize"] == 0))) //{ // throw new Exception("所投选项名额已满,请重新投票!"); //} Dal.Models.Vote vote = new Dal.Models.Vote() { UserID = user.UserID.Value, Votor = expert.ExpertID.Value, ActivityID = prize.ActivityID.Value, MultipleVoteRound = prize.MultipleVoteRound ?? 1, VoteRound = prize.MultipleVoteRound ?? 1, IsSubmit = false, PrizeID = prize.PrizeID.Value, VoteCode = strVoteCode, PrizeLevelCode = strLevelCode, VoteType = "0502" }; BLL.Vote.BatchBallot(vote, conn, tran); tran.Commit(); context.Response.Write(JsonConvert.SerializeObject("投票成功!")); } catch (Exception ex) { tran.Rollback(); context.Response.Write(JsonConvert.SerializeObject(ex.Message)); } }
//public void FinishVote(HttpContext context, OleDbConnection conn) //{ // Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; // //Issubmit="1",是投票结果的状态为提交,专家不能再更改投票结果,投票时,此字段默认值为0 // string strIsSubmit = "1"; // //获取当前活动类型编码 // string strActivityType = context.Session["ActivityType"].ToString(); // //获取当前活动ID // int iActivityID = BLL.Activity.GetActivity(strActivityType, conn).ActivityID.Value; // //获取当前活动时间节点 // Dal.Models.Schedule schedule = BLL.Schedule.GetActivitySchedule(iActivityID, conn); // //获取所有本次活动的奖项 // List<Dal.Models.Prize> lstPrize = BLL.Prize.GetPrizeList(user, strActivityType, "", conn); // //修改Schedule的投票阶段 // BLL.Vote.UpdateScheduleVoteFinish(schedule.ScheduleID.Value, false, conn); // foreach (var item in lstPrize) // { // List<Dal.Models.Vote> lstVote = BLL.Vote.GetActivityPrizeVoteList(item.PrizeID.Value, conn); // foreach (var Vote in lstVote) // { // //修改Vote为已经提交 // BLL.Vote.SubmitVote(Vote.VoteID.Value, strIsSubmit, conn); // } // } // context.Response.Write("投票已提交"); //} private void Ballot(HttpContext context, OleDbConnection conn) { Dal.Models.UserInfo user = (Dal.Models.UserInfo)context.Session["UserInfo"]; Dal.Models.Expert expert = BLL.Expert.GetExpertByUserID(user.UserID.Value, conn); OleDbTransaction tran = conn.BeginTransaction(); try { int iDeclarationID = 0; int iPrizeID = 0; int iMultipleVoteRound = 0; if (!int.TryParse(context.Request["DeclarationID"], out iDeclarationID) || !int.TryParse(context.Request["PrizeID"], out iPrizeID) || !int.TryParse(context.Request["MultipleVoteRound"], out iMultipleVoteRound)) { throw new Exception("参数错误!"); } Dal.Models.Prize prize = BLL.Prize.GetPrize(iPrizeID, conn, tran); if (prize == null || prize.IsStopVote) { throw new Exception("当前奖项及轮次已结束投票。"); } string strVoteCode = context.Request["VoteCode"]; string strLevelCode = context.Request["LevelCode"]; if (strLevelCode == "0404") { strLevelCode = ""; } Dal.Models.Declaration decl = BLL.Declaration.GetDeclaration(iDeclarationID, conn, tran); if (decl.PrizeID != iPrizeID) { throw new Exception("参数错误!"); } prize = BLL.Prize.GetPrize(decl.AdjustedPrize.Value, conn, tran); if (prize.MultipleVoteRound != iMultipleVoteRound) { throw new Exception("当前已进入新一轮投票,请重新进入本页面进行投票!"); } Dal.Models.Vote vote = new Dal.Models.Vote() { UserID = user.UserID.Value, Votor = expert.ExpertID.Value, DeclarationID = iDeclarationID, ActivityID = decl.ActivityID.Value, MultipleVoteRound = prize.MultipleVoteRound ?? 1, RevoteCode = prize.RevoteCode ?? "", RevoteRound = prize.RevoteRound ?? 0, IsSubmit = false, PrizeID = prize.PrizeID.Value, VoteCode = strVoteCode, PrizeLevelCode = strLevelCode, VoteType = "0502" }; BLL.Vote.Ballot(vote, conn, tran); //根据专家和奖项获评奖项目 List <Dal.Models.Vote> lstVote = BLL.Vote.GetVoteDeclarationList(expert, prize, conn, tran); //获取每个奖项的已评奖数量 Dictionary <string, int> dicVote = new Dictionary <string, int>(); //获取每个奖项未评奖数量 Dictionary <string, int> dicRemain = new Dictionary <string, int>(); GetLimit(prize, lstVote, ref dicVote, ref dicRemain); string Message = ""; //if (strVoteCode == "0601" && (dicRemain["Recommended"] == 0 // || (strLevelCode == "0401" && dicRemain["FirstPrize"] == 0) // || (strLevelCode == "0402" && dicRemain["SecondPrize"] == 0) // || (strLevelCode == "0403" && dicRemain["ThirdPrize"] == 0))) //{ // Message = "所投选项名额已满,请注意!"; //} //else //{ Message = "投票成功!"; //} tran.Commit(); object[] obj = { prize, lstVote, dicVote, dicRemain, Message }; context.Response.Write(JsonConvert.SerializeObject(obj)); } catch (Exception ex) { tran.Rollback(); context.Response.Write(JsonConvert.SerializeObject(new object[] { ex.Message })); } }