예제 #1
0
        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");
        }
예제 #2
0
        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));
            }
        }