Ejemplo n.º 1
0
        public JsonResult Save(List <int> id)
        {
            if (id == null || id.Count == 0)
            {
                return(Json(new { result = 0, Data = "请选择一个选项!" }));
            }

            int subjectId = RequestInt("subjectId");

            if (subjectId == 0)
            {
                return(Json(new { result = 0, Data = "问卷不存在!" }));
            }

            var infolist = OA.Bll.BllQuestionnaire_Info.GetList(subjectId);

            if (infolist == null || infolist.Count == 0)
            {
                return(Json(new { result = 0, Data = "该问卷下无试题!" }));
            }

            //验证格式
            string email = RequestString("email");
            string tel   = RequestString("tel");

            if (!string.IsNullOrEmpty(email) && !Tools.Common.StringCheck.IsEmail(email))
            {
                return(Json(new { result = 0, Data = "请输入正确的邮箱地址!" }));
            }
            if (!Tools.Common.StringCheck.IsMobile(tel))
            {
                return(Json(new { result = 0, Data = "请输入正确的手机号码!" }));
            }

            int score      = 0; //总分
            int correctNum = 0; //答对个数

            List <OA.Model.Questionnaire_Result> result = new List <OA.Model.Questionnaire_Result>();

            //统计结果
            foreach (int tid in id)
            {
                var model = infolist.Find(o => o.Id == tid);
                if (model != null)
                {
                    //判断类型和答案
                    bool   isRight = false;
                    string answer  = RequestString(tid.ToString());
                    if (model.Type == (byte)Tools.Enums.Site.InputType.CheckBox)
                    {
                        //多选题,只要其中一个对,就算得分
                        var o_answer = ("," + model.Answer.ToLower() + ",");
                        var answers  = answer.ToLower().Split(',');
                        foreach (var ans in answers)
                        {
                            if (o_answer.Contains(ans))
                            {
                                isRight = true;
                                break;
                            }
                        }
                    }
                    else if (model.Type == (byte)Tools.Enums.Site.InputType.Radio)
                    {
                        isRight = model.Answer.ToLower() == answer.ToLower();
                    }
                    else if (model.Type == (byte)Tools.Enums.Site.InputType.Text)
                    {
                        isRight = model.Answer.Trim().ToLower() == answer.Trim().ToLower();
                    }
                    //答对统计数据
                    if (isRight)
                    {
                        score += model.Score.Value;
                        correctNum++;
                    }
                    //添加回答记录
                    result.Add(new OA.Model.Questionnaire_Result()
                    {
                        Question  = model.Title,
                        Answer    = model.Answer,
                        IsRight   = isRight,
                        Result    = answer,
                        Score     = isRight ? model.Score.Value : 0,
                        SubjectId = subjectId
                    });
                }
            }

            try
            {
                string ip      = Tools.Utility.CheckClient.GetIP();
                string country = string.Empty;
                string area    = string.Empty;
                if (ip != "" && IPDataPath != "")
                {
                    var ipSearch = new IPSearcher(IPDataPath).GetIPLocation(ip);
                    country = ipSearch.country;
                    area    = ipSearch.area;
                }

                bool isOk = OA.Bll.BllQuestionnaire_Answerer.Add(new OA.Model.Questionnaire_Answerer()
                {
                    Name       = RequestString("name"),
                    Email      = email,
                    Tel        = tel,
                    Company    = RequestString("company"),
                    StartTime  = RequestString("starttime").ToDateTime(),
                    Job        = RequestString("job"),
                    Department = RequestString("department"),
                    IsDISC     = false,
                    DISC       = "",
                    CorrectNum = correctNum,
                    Score      = score,
                    SubjectId  = subjectId,
                    AddTime    = DateTime.Now,
                    IP         = ip,
                    UserAgent  = Tools.Utility.CheckClient.GetUserAgent(),
                    IsMobile   = Tools.Utility.CheckClient.IsMobileDevice(),
                    Country    = country,
                    Area       = area
                }, result);

                if (isOk)
                {
                    return(Json(new { result = 1, data = new Result()
                                      {
                                          subjectid = subjectId, score = score, correctnum = correctNum, allnum = infolist.Count
                                      } }));
                }
                else
                {
                    return(Json(new { result = 0, data = "提交失败,请联系公司相关负责人!" }));
                }
            }
            catch (Exception ex)
            {
                Tools.Tool.LogHelper.WriteLog(typeof(DiscController), ex, 0, "");
                return(Json(new { result = 0, data = "提交失败,请联系公司相关负责人!" }));
            }
        }
Ejemplo n.º 2
0
        static bool Parse(string[] args)
        {
            for (int i = 0; i < args.Length - 1; i++)
            {
                switch (args[i])
                {
                case "-w":
                {
                    i++;
                    if (i >= args.Length - 1)
                    {
                        return(false);
                    }
                    if (!int.TryParse(args[i], out Timeout))
                    {
                        return(false);
                    }
                    if (Timeout <= 0)
                    {
                        return(false);
                    }
                }
                break;

                case "-i":
                {
                    i++;
                    if (i >= args.Length - 1)
                    {
                        return(false);
                    }
                    if (!int.TryParse(args[i], out MaxTtl))
                    {
                        return(false);
                    }
                    if (MaxTtl <= 0)
                    {
                        return(false);
                    }
                }
                break;

                case "-d":
                {
                    int            searcher;
                    IPSearcherImpl searcherImpl;

                    i++;
                    if (i >= args.Length - 1)
                    {
                        return(false);
                    }
                    if (!int.TryParse(args[i], out searcher))
                    {
                        return(false);
                    }
                    searcherImpl = (IPSearcherImpl)searcher;
                    Searcher     = IPSearcher.Create(searcherImpl);
                    if (Searcher == null)
                    {
                        return(false);
                    }
                }
                break;

                default:
                {
                    return(false);
                }
                }
            }

            if (args.Length == 0)
            {
                return(false);
            }
            if (!IPAddress.TryParse(args.Last(), out IP))
            {
                try
                {
                    IP = Dns.GetHostAddresses(args.Last())[0];
                }
                catch
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
        public JsonResult Save(List <int> id)
        {
            if (id == null || id.Count == 0)
            {
                return(Json(new { result = 0, Data = "请选择一个选项!" }));
            }

            //验证格式
            string email = RequestString("email");
            string tel   = RequestString("tel");

            if (!string.IsNullOrEmpty(email) && !Tools.Common.StringCheck.IsEmail(email))
            {
                return(Json(new { result = 0, Data = "请输入正确的邮箱地址!" }));
            }
            if (!Tools.Common.StringCheck.IsMobile(tel))
            {
                return(Json(new { result = 0, Data = "请输入正确的手机号码!" }));
            }

            //所有结果加入列表
            List <string> disclist = new List <string>();

            foreach (var i in id)
            {
                disclist.Add(RequestString(i.ToString()));
            }

            List <Tools.Json.DISC> entity = new List <Tools.Json.DISC>();

            entity.Add(new Tools.Json.DISC()
            {
                n = "D", v = disclist.FindAll(o => o == "D").Count.ToString()
            });
            entity.Add(new Tools.Json.DISC()
            {
                n = "I", v = disclist.FindAll(o => o == "I").Count.ToString()
            });
            entity.Add(new Tools.Json.DISC()
            {
                n = "S", v = disclist.FindAll(o => o == "S").Count.ToString()
            });
            entity.Add(new Tools.Json.DISC()
            {
                n = "C", v = disclist.FindAll(o => o == "C").Count.ToString()
            });

            try
            {
                string ip      = Tools.Utility.CheckClient.GetIP();
                string country = string.Empty;
                string area    = string.Empty;
                if (ip != "" && IPDataPath != "")
                {
                    var ipSearch = new IPSearcher(IPDataPath).GetIPLocation(ip);
                    country = ipSearch.country;
                    area    = ipSearch.area;
                }

                int count = OA.Bll.BllQuestionnaire_Answerer.Insert(new OA.Model.Questionnaire_Answerer()
                {
                    Name       = RequestString("name"),
                    Email      = email,
                    Tel        = tel,
                    Company    = RequestString("company"),
                    StartTime  = RequestString("starttime").ToDateTime(),
                    Job        = RequestString("job"),
                    Department = RequestString("department"),
                    IsDISC     = true,
                    DISC       = Tools.Tool.JsonHelper.Serialize(entity),
                    CorrectNum = 0,
                    Score      = 0,
                    SubjectId  = 0,
                    AddTime    = DateTime.Now,
                    IP         = ip,
                    UserAgent  = Tools.Utility.CheckClient.GetUserAgent(),
                    IsMobile   = Tools.Utility.CheckClient.IsMobileDevice(),
                    Country    = country,
                    Area       = area
                });

                if (count > 0)
                {
                    return(Json(new { result = 1, data = entity }));
                }
                else
                {
                    return(Json(new { result = 0, data = "提交失败,请联系公司相关负责人!" }));
                }
            }
            catch (Exception ex)
            {
                Tools.Tool.LogHelper.WriteLog(typeof(DiscController), ex, 0, "");
                return(Json(new { result = 0, data = "提交失败,请联系公司相关负责人!" }));
            }
        }