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)); }
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)); }