public IHttpActionResult Join(RosewoodDto dto)
        {
            string userIp = GetHostAddress();
            //try
            //{
            //    IncreaseCounter();
            //}
            //catch { }

            RosewoodResultDto result = new RosewoodResultDto();

            result.ErrorCode = 200;
            result.Message   = "参与成功";
            // #1. validate
            if (dto == null || string.IsNullOrEmpty(dto.Name) || string.IsNullOrEmpty(dto.Phone))
            {
                result.ErrorCode = 400;
                result.Message   = "请填写姓名和电话";
                return(Ok(result));
            }

            dto.Name = HttpUtility.UrlDecode(dto.Name).Trim();
            if (dto.Name.Length > 200 || dto.Phone.Length > 15)
            {
                result.ErrorCode = 401;
                result.Message   = "姓名和电话长度过长";
                return(Ok(result));
            }

            dto.Email = HttpUtility.UrlDecode(dto.Email);

            dto.Province = dto.Province ?? dto.City;
            dto.Province = HttpUtility.UrlDecode(dto.Province);

            dto.City = HttpUtility.UrlDecode(dto.City);


            dto.Phone = dto.Phone.Trim();

            if (!Regex.IsMatch(dto.Phone, @"^\d{8,14}$"))
            {
                result.ErrorCode = 402;
                result.Message   = "电话格式错误,应该全部为数字。";
                return(Ok(result));
            }

            // dup validation
            bool duplicate = _context.RoseWoodEntities.Any(c => c.MobiPhone == dto.Phone);

            if (duplicate)
            {
                result.ErrorCode = 403;
                result.Message   = "电话号码已存在";
                return(Ok(result));
            }

            // #2. map
            RoseWoodEntity form = new RoseWoodEntity()
            {
                CreateBy  = userIp,
                MobiPhone = dto.Phone,
                UserName  = dto.Name,
                Email     = dto.Email,
                Province  = dto.Province,
                City      = dto.City
            };

            // #3. save to db
            _context.RoseWoodEntities.Add(form);
            try
            {
                _context.SaveChanges();
            }
            catch
            {
                result.ErrorCode = 500;
                result.Message   = "发生错误,请重试";
                return(Ok(result));
            }

            // #4. return value
            return(Ok(result));
        }
Exemple #2
0
        public IHttpActionResult Submit(SurveyDto dto)
        {
            SurveyResultDto result = new SurveyResultDto();

            result.Code = 0;
            result.Msg  = "提交成功";
            if (dto == null)
            {
                result.Code = 401;
                result.Msg  = "输入错误";
                return(Ok(result));
            }

            for (int i = dto.Subject2.Count - 1; i >= 0; i--)
            {
                var obj = dto.Subject2[i] ?? "";
                int val = 0;
                if (int.TryParse(obj.ToString(), out val) && obj.GetType() == typeof(Int64))
                {
                    if (!(val >= 1 && val <= 6))
                    {
                        dto.Subject2.RemoveAt(i);
                    }
                }
            }

            //string userIp = GetHostAddress();
            //string userLocalId = Guid.NewGuid().ToString();
            //if (string.IsNullOrEmpty(dto.UserLocalId))
            //{
            //    dto.UserLocalId = userLocalId;
            //}

            //check dto validation
            if (dto.Subject1 <= 0 || dto.Subject1 > 4)
            {
                result.Code = 402;
                result.Msg  = "问题1请选择";
                return(Ok(result));
            }

            if (dto.Subject2.Distinct().Count() < 3)
            {
                result.Code = 403;
                result.Msg  = "问题2请选择3项";
                return(Ok(result));
            }
            //TODO: check dup if it's enabled.

            //turn to entity and save to db
            SurveyEntity entity = new SurveyEntity();

            entity.Subject1 = dto.Subject1;
            entity.Subject2 = JsonConvert.SerializeObject(dto.Subject2.Distinct().ToList());
            entity.Subject3 = HttpUtility.UrlDecode(dto.Subject3 ?? "").Trim();
            entity.Subject4 = HttpUtility.UrlDecode(dto.Subject4 ?? "").Trim();
            entity.Subject5 = HttpUtility.UrlDecode(dto.Subject5 ?? "").Trim();
            entity.Subject6 = HttpUtility.UrlDecode(dto.Subject6 ?? "").Trim();
            entity.Subject7 = HttpUtility.UrlDecode(dto.Subject7 ?? "").Trim();

            // #3. save to db
            _context.SurveyEntities.Add(entity);
            try
            {
                _context.SaveChanges();
            }
            catch
            {
                result.Code = 500;
                result.Msg  = "发生错误,请重试";
                return(Ok(result));
            }

            // #4. return value
            return(Ok(result));
        }