public ActionResult Setting(PeriodUserInfoViewModel model) { if (ModelState.IsValid) { try { // 判断日期是否合法 DateTime currentDate = DateTime.Now.Date; if (model.Last_MC_Begin > currentDate || model.Last_MC_Begin < currentDate.AddDays(-60)) { // 判断为不合法 #region if (model.Last_MC_Begin > currentDate) { ModelState.AddModelError("Last_MC_Begin", "上次经期大于当前日期"); } else { ModelState.AddModelError("Last_MC_Begin", "上次经期小于当前日期前60天"); } var current_user = UserManager.FindByName(User.Identity.Name); ViewBag.User = current_user; // 填充年龄下拉框 List <Object> age = new List <Object>(); for (int i = 14; i <= 70; i++) { age.Add(new { name = i, value = i }); } ViewBag.Age = new SelectList(age, "name", "value", 23); // 填充经期下拉框 List <Object> periodday = new List <Object>(); for (int i = 3; i <= 13; i++) { periodday.Add(new { name = i, value = i }); } ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); // 填充周期下拉框 List <Object> cycle = new List <Object>(); for (int i = 14; i <= 60; i++) { cycle.Add(new { name = i, value = i }); } ViewBag.Cycle = new SelectList(age, "name", "value", 28); //ModelState.AddModelError("", "设置错误"); return(View(model)); #endregion } // 判断是否初次记录 var setting_item = periodDB.PeriodUserInfo.SingleOrDefault(m => m.UserName == User.Identity.Name); if (setting_item == null) { // 无设置记录,新建记录 PeriodUserInfo info = new PeriodUserInfo() { MC_days = model.MC_days, Last_MC_Begin = model.Last_MC_Begin, MC_Cycle = model.MC_Cycle, Pregnancy = model.Pregnancy, Pre_Pregnancy = model.Pre_Pregnancy, UserAge = model.UserAge, UserName = model.UserName }; periodDB.PeriodUserInfo.Add(info); periodDB.SaveChanges(); PeriodInfo pi = new PeriodInfo() { MC_Begin = model.Last_MC_Begin, MC_Days = model.MC_days, MC_Cycle = model.MC_Cycle }; addPeriodData(pi, User.Identity.Name); return(RedirectToAction("UserHome")); } if (model.Last_MC_Begin < setting_item.Last_MC_Begin.AddDays(-14)) { // 小于上次记录的14天 #region ModelState.AddModelError("Last_MC_Begin", "上次经期小于最近经期前14天"); var current_user = UserManager.FindByName(User.Identity.Name); ViewBag.User = current_user; // 填充年龄下拉框 List <Object> age = new List <Object>(); for (int i = 14; i <= 70; i++) { age.Add(new { name = i, value = i }); } ViewBag.Age = new SelectList(age, "name", "value", 23); // 填充经期下拉框 List <Object> periodday = new List <Object>(); for (int i = 3; i <= 13; i++) { periodday.Add(new { name = i, value = i }); } ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); // 填充周期下拉框 List <Object> cycle = new List <Object>(); for (int i = 14; i <= 60; i++) { cycle.Add(new { name = i, value = i }); } ViewBag.Cycle = new SelectList(age, "name", "value", 28); //ModelState.AddModelError("", "设置错误"); return(View(model)); #endregion } else if (model.Last_MC_Begin >= setting_item.Last_MC_Begin.AddDays(15)) { // 大于上次记录的15天,新增记录 PeriodInfo pi = new PeriodInfo() { MC_Begin = model.Last_MC_Begin, MC_Days = model.MC_days, MC_Cycle = model.MC_Cycle }; addPeriodData(pi, User.Identity.Name); } else { // 中间日期 // 判断是否小于再上次记录的前14天 var lpd = getLastPeriodData(setting_item.Last_MC_Begin, User.Identity.Name); if (lpd != null) { if (model.Last_MC_Begin < lpd.MC_Begin.AddDays(14)) { ModelState.AddModelError("Last_MC_Begin", "上次经期小于最近经期前14天"); var current_user = UserManager.FindByName(User.Identity.Name); ViewBag.User = current_user; // 填充年龄下拉框 List <Object> age = new List <Object>(); for (int i = 14; i <= 70; i++) { age.Add(new { name = i, value = i }); } ViewBag.Age = new SelectList(age, "name", "value", 23); // 填充经期下拉框 List <Object> periodday = new List <Object>(); for (int i = 3; i <= 13; i++) { periodday.Add(new { name = i, value = i }); } ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); // 填充周期下拉框 List <Object> cycle = new List <Object>(); for (int i = 14; i <= 60; i++) { cycle.Add(new { name = i, value = i }); } ViewBag.Cycle = new SelectList(age, "name", "value", 28); //ModelState.AddModelError("", "设置错误"); return(View(model)); } } PeriodInfo pi = new PeriodInfo() { MC_Begin = model.Last_MC_Begin, MC_Days = model.MC_days, MC_Cycle = model.MC_Cycle }; updatePeriodData(pi, User.Identity.Name); } return(RedirectToAction("UserHome")); #region /* * var setting_item = periodDB.PeriodUserInfo.SingleOrDefault(m => m.UserName == User.Identity.Name); * if (setting_item != null) * { * setting_item.MC_days = model.MC_days; * setting_item.Last_MC_Begin = model.Last_MC_Begin; * setting_item.MC_Cycle = model.MC_Cycle; * setting_item.Pregnancy = model.Pregnancy; * setting_item.Pre_Pregnancy = model.Pre_Pregnancy; * setting_item.UserAge = model.UserAge; * * var last_item = (from m in periodDB.PeriodData * where m.UserName == User.Identity.Name * orderby m.MC_Begin descending * select m).FirstOrDefault(); * // 更新历史数据 * if (last_item != null) * { * var modify_last = periodDB.PeriodData.SingleOrDefault(m => m.MC_Finish == last_item.MC_Begin); * * // 调整上一次的月经数据 * if (modify_last != null) * { * if (model.Last_MC_Begin < modify_last.MC_Begin.AddDays(14)) * { * ModelState.AddModelError("Last_MC_Begin", "上次经期日期错误"); * var current_user = UserManager.FindByName(User.Identity.Name); * ViewBag.User = current_user; * // 填充年龄下拉框 * List<Object> age = new List<Object>(); * for (int i = 14; i <= 70; i++) * { * age.Add(new { name = i, value = i }); * } * ViewBag.Age = new SelectList(age, "name", "value", 23); * // 填充经期下拉框 * List<Object> periodday = new List<Object>(); * for (int i = 3; i <= 12; i++) * { * periodday.Add(new { name = i, value = i }); * } * ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); * // 填充周期下拉框 * List<Object> cycle = new List<Object>(); * for (int i = 14; i <= 60; i++) * { * cycle.Add(new { name = i, value = i }); * } * ViewBag.Cycle = new SelectList(age, "name", "value", 28); * //ModelState.AddModelError("", "设置错误"); * return View(model); * } * else * { * last_item.MC_Begin = model.Last_MC_Begin; * last_item.MC_Cycle = model.MC_Cycle; * last_item.MC_Days = model.MC_days; * last_item.MC_Finish = model.Last_MC_Begin.AddDays(model.MC_Cycle); * modify_last.MC_Finish = model.Last_MC_Begin; * modify_last.MC_Cycle = Convert.ToInt32(model.Last_MC_Begin.Subtract(modify_last.MC_Begin).TotalDays); * } * } * } * else * { * PeriodData data = new PeriodData() * { * MC_Begin = model.Last_MC_Begin, * MC_Cycle = model.MC_Cycle, * MC_Days = model.MC_days, * UserName = User.Identity.Name, * MC_Finish = model.Last_MC_Begin.AddDays(model.MC_Cycle), * Period_Type = 0 // 默认为普通类型 * }; * periodDB.PeriodData.Add(data); * } * * periodDB.SaveChanges(); * * return RedirectToAction("UserHome"); * } * else * { * PeriodUserInfo info = new PeriodUserInfo() * { * MC_days = model.MC_days, * Last_MC_Begin = model.Last_MC_Begin, * MC_Cycle = model.MC_Cycle, * Pregnancy = model.Pregnancy, * Pre_Pregnancy = model.Pre_Pregnancy, * UserAge = model.UserAge, * UserName = model.UserName * }; * periodDB.PeriodUserInfo.Add(info); * // 首次数据必定添加 * PeriodData data = new PeriodData() * { * MC_Begin = model.Last_MC_Begin, * MC_Cycle = model.MC_Cycle, * MC_Days = model.MC_days, * UserName = User.Identity.Name, * MC_Finish = model.Last_MC_Begin.AddDays(model.MC_Cycle), * Period_Type = 0 // 默认为普通类型 * * }; * periodDB.PeriodData.Add(data); * periodDB.SaveChanges(); * return RedirectToAction("UserHome"); * } */ #endregion } catch { return(View("Error")); } } else { var current_user = UserManager.FindByName(User.Identity.Name); ViewBag.User = current_user; // 填充年龄下拉框 List <Object> age = new List <Object>(); for (int i = 14; i <= 70; i++) { age.Add(new { name = i, value = i }); } ViewBag.Age = new SelectList(age, "name", "value", 23); // 填充经期下拉框 List <Object> periodday = new List <Object>(); for (int i = 3; i <= 12; i++) { periodday.Add(new { name = i, value = i }); } ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); // 填充周期下拉框 List <Object> cycle = new List <Object>(); for (int i = 14; i <= 60; i++) { cycle.Add(new { name = i, value = i }); } ViewBag.Cycle = new SelectList(age, "name", "value", 28); ModelState.AddModelError("", "设置错误"); return(View(model)); } //return RedirectToAction("UserHome"); }
public ActionResult Setting() { var current_user = UserManager.FindByName(User.Identity.Name); ViewBag.User = current_user; // 填充年龄下拉框 List <Object> age = new List <Object>(); for (int i = 14; i <= 70; i++) { age.Add(new { name = i, value = i }); } ViewBag.Age = new SelectList(age, "name", "value", 23); // 填充经期下拉框 List <Object> periodday = new List <Object>(); for (int i = 3; i <= 13; i++) { periodday.Add(new { name = i, value = i }); } ViewBag.PeriodDay = new SelectList(periodday, "name", "value", 7); // 填充周期下拉框 List <Object> cycle = new List <Object>(); for (int i = 14; i <= 60; i++) { cycle.Add(new { name = i, value = i }); } ViewBag.Cycle = new SelectList(age, "name", "value", 28); // 判断是否首次设置 var setting_item = periodDB.PeriodUserInfo.SingleOrDefault(m => m.UserName == User.Identity.Name); if (setting_item != null) { PeriodUserInfoViewModel model = new PeriodUserInfoViewModel() { UserName = setting_item.UserName, Pregnancy = setting_item.Pregnancy, Pre_Pregnancy = setting_item.Pre_Pregnancy, Last_MC_Begin = setting_item.Last_MC_Begin, UserAge = setting_item.UserAge, MC_Cycle = setting_item.MC_Cycle, MC_days = setting_item.MC_days }; return(View(model)); } else { PeriodUserInfoViewModel model = new PeriodUserInfoViewModel() { UserName = User.Identity.Name, Last_MC_Begin = DateTime.Today, UserAge = 23, MC_days = 7, MC_Cycle = 28, Pregnancy = false, Pre_Pregnancy = false }; return(View(model)); } }