public void Register(RegisterView registerUser) { User newUser = Mapper.Map <User>(registerUser); DateTime today = DateTime.Today; int age = today.Year - newUser.Birth.Year; if (newUser.Birth > today.AddYears(-age)) { age--; } Double BMI = newUser.Weight / ((newUser.Height / 100) * (newUser.Height / 100)); //HashPassword newUser.Password = _userservice.HashPassword(newUser.Password); newUser.Age = age; if (newUser.Sex == "男") { newUser.BMR = newUser.Weight * 13.7 + newUser.Height * 5.0 - (6.8 * age) + 66; newUser.Bodyfat = (1.2 * BMI) + (0.23 * age) - 5.4 - (10.8 * 1); } else if (newUser.Sex == "女") { newUser.BMR = newUser.Weight * 9.6 + newUser.Height * 1.8 - (4.7 * age) + 655; newUser.Bodyfat = (1.2 * BMI) + (0.23 * age) - 5.4 - (10.8 * 0); } UserHabit newHabit = Mapper.Map <UserHabit>(registerUser); _repository.Create(newUser); newHabit.CreateTime = DateTime.Now; _userHabitrepository.Create(newHabit); _db.Save(); //_userservice.Register(newUser, null, null, null, 0, newHabit);, fileName, type, path, size, newHabit); }
public RegisterView getHabit([FromBody] PostId data) { UserHabit userHabit = _userservice.GetUserHabit(data.account); RegisterView nowUser = Mapper.Map <RegisterView>(userHabit); return(nowUser); }
public ActionResult CollectionHabit(string PayCompanyCode, string City, string BillType, string TradeType) { if (string.IsNullOrEmpty(PayCompanyCode) && string.IsNullOrEmpty(City) && string.IsNullOrEmpty(BillType) && string.IsNullOrEmpty(TradeType)) { return(this.FailedMsg("无可保存值")); } UserHabit Habit = new UserHabit(); Habit.PayCompanyCode = PayCompanyCode; Habit.City = City; Habit.BillType = BillType; Habit.TradeType = TradeType; IGetFeeData _IGetFeeData = new GetFeeData(); int result = _IGetFeeData.EidtUserHabit(this.CurrentSession.UserName, JsonHelper.Serialize(Habit)); if (result > 0) { return(this.SuccessMsg("收藏成功")); } else { return(this.FailedMsg("收藏失败")); } }
//public async Task<IActionResult> Edit(int id, UserHabit userHabit) //public async Task<IActionResult> Edit(int id, [Bind("Id, Name, Description, Frequency")] Habit habit) //public async Task<IActionResult> Edit(int id, [Bind("Id, Name, Description, Frequency")] UserHabit userHabit) public async Task <IActionResult> Edit(int id, UserHabit modelFromView) { if (ModelState.IsValid) { var userId = FindSpecificUserByUserID(); var originalHabit = _context.UserHabit.Include(x => x.Habit).First(x => x.AppUserId == userId && x.HabitId == id); originalHabit.Monday_doHabit = modelFromView.Monday_doHabit; originalHabit.Tuesday_doHabit = modelFromView.Tuesday_doHabit; originalHabit.Wednesday_doHabit = modelFromView.Wednesday_doHabit; originalHabit.Thursday_doHabit = modelFromView.Thursday_doHabit; originalHabit.Friday_doHabit = modelFromView.Friday_doHabit; originalHabit.Saturday_doHabit = modelFromView.Saturday_doHabit; originalHabit.Sunday_doHabit = modelFromView.Sunday_doHabit; originalHabit.Habit.Name = modelFromView.Habit.Name; originalHabit.Habit.Description = modelFromView.Habit.Description; //var originalHabit = _context.UserHabit.First(x => x.HabitId == id); //originalHabit.Habit.Name = userHabit.Habit.Name; //originalHabit.Habit.Description = userHabit.Habit.Description; //originalHabit.Monday_doHabit = userHabit.AllHabits. await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(modelFromView)); }
public async Task TestCase_InvalidWeeklyStartDate() { var context = fixture.GetCurrentDataContext(); UserHabitsController control = new UserHabitsController(context); UserHabit habit = new UserHabit() { ValidFrom = new DateTime(2021, 1, 1), ValidTo = new DateTime(2022, 12, 31), Category = HabitCategory.Positive, Name = "Test1", TargetUser = "******", Frequency = HabitFrequency.Weekly, StartDate = 8, }; //var rst = await control.Post(habit); //if (rst != null) //{ // BadRequestObjectResult badrequest = (BadRequestObjectResult)rst; // Assert.NotNull(badrequest); // Assert.Equal("Invalid start date", badrequest.Value); //} try { await control.Post(habit); } catch (Exception ex) { Assert.NotNull(ex); } }
public ActionResult Register(RegisterView RegisterUser, HttpPostedFileBase file) { if (file != null) { User newUser = Mapper.Map <User>(RegisterUser); var fileName = Path.GetFileNameWithoutExtension(file.FileName); var type = Path.GetExtension(file.FileName); var size = file.ContentLength; //將檔案存入資料庫 var pathName = newUser.Account + type; var path = Path.Combine(Server.MapPath("~/FileUpload"), pathName); UserHabit newHabit = Mapper.Map <UserHabit>(RegisterUser); _userservices.Register(newUser, fileName, type, path, size, newHabit); //將檔案存放至實體路徑 file.SaveAs(path); } else { var fileName = ""; var path = ""; var type = ""; int size = 0; User newUser = Mapper.Map <User>(RegisterUser); UserHabit newHabit = Mapper.Map <UserHabit>(RegisterUser); _userservices.Register(newUser, fileName, type, path, size, newHabit); } return(RedirectToAction("Index", "Home")); }
public IActionResult Edit(int?id) { var userId = FindSpecificUserByUserID(); var pageInput = new UserHabit(); pageInput = _context.UserHabit.Include(x => x.Habit).First(x => x.AppUserId == userId && x.HabitId == id); //pageInput = _context.UserHabit.First(x => x.AppUserId == userId && x.HabitId == id); return(View(pageInput)); }
public UserHabit LookUserHabit(string UserName) { UserHabit Habit = new UserHabit(); string sql = string.Format("select OPERATIONVALUE from USER_HABIT where EMPLOYEENO='{0}' and APPNAME='MultiBank' and ACTIONNAME='PayFee'", UserName); OracleHelper _oraDal = new OracleHelper(); var dt = _oraDal.ExecuteQuery(sql); if (dt.Rows.Count > 0) { try { Habit = JsonHelper.Deserialize <UserHabit>(dt.Rows[0][0].ToString()); } catch (Exception) { } } return(Habit); }
public void saveHabit(UserHabit data) { _userservice.saveHabit(data); }
public async Task <IActionResult> Create(CreateViewModel userInput) { if (ModelState.IsValid) { var userId = FindSpecificUserByUserID(); //skapar en userhabit var newUserHabit = new UserHabit(); newUserHabit.AppUserId = userId; newUserHabit.Habit = userInput.CreateHabit; newUserHabit.Monday_doHabit = userInput.MondayChecked; newUserHabit.Tuesday_doHabit = userInput.TuesdayChecked; newUserHabit.Wednesday_doHabit = userInput.WednesdayChecked; newUserHabit.Thursday_doHabit = userInput.ThursdayChecked; newUserHabit.Friday_doHabit = userInput.FridayChecked; newUserHabit.Saturday_doHabit = userInput.SaturdayChecked; newUserHabit.Sunday_doHabit = userInput.SundayChecked; //if(userInput.MondayChecked) // newUserHabit.MondayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.MondayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.TuesdayChecked) // newUserHabit.TuesdayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.TuesdayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.WednesdayChecked) // newUserHabit.WednesdayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.WednesdayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.ThursdayChecked) // newUserHabit.ThursdayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.ThursdayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.FridayChecked) // newUserHabit.FridayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.FridayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.SaturdayChecked) // newUserHabit.SaturdayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.SaturdayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; //if (userInput.SundayChecked) // newUserHabit.SundayStatus = CalendarViewModel.HabitDetails.Day.isVacant; //else // newUserHabit.SundayStatus = CalendarViewModel.HabitDetails.Day.isNotPlanned; _context.Add(newUserHabit); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View("Index")); }
//#region 註冊 //public void Register(User newUser) //{ // //HashPassword // newUser.Password = HashPassword(newUser.Password); // _repository.Create(newUser); // _db.Save(); //} //#endregion #region 註冊 public void Register(User newUser, string fileName, string type, string path, int size, UserHabit newHabit) { DateTime today = DateTime.Today; int age = today.Year - newUser.Birth.Year; if (newUser.Birth > today.AddYears(-age)) { age--; } Double BMI = newUser.Weight / ((newUser.Height / 100) * (newUser.Height / 100)); //HashPassword newUser.Password = HashPassword(newUser.Password); newUser.Age = age; if (newUser.Sex == "男") { newUser.BMR = newUser.Weight * 13.7 + newUser.Height * 5.0 - (6.8 * age) + 66; newUser.Bodyfat = (1.2 * BMI) + (0.23 * age) - 5.4 - (10.8 * 1); } else if (newUser.Sex == "女") { newUser.BMR = newUser.Weight * 9.6 + newUser.Height * 1.8 - (4.7 * age) + 655; newUser.Bodyfat = (1.2 * BMI) + (0.23 * age) - 5.4 - (10.8 * 0); } //newUser.Img = fileName; newUser.Url = path; newUser.Type = type; newUser.Size = size; newHabit.Account = newUser.Account; newHabit.CreateTime = DateTime.Now; _repository.Create(newUser); _userHabitrepository.Create(newHabit); _db.Save(); }
//#region 取得題目陣列 //public List<Topic> GetTopicList() //{ // var data = _topicrepository.GetAll().ToList(); // return data; //} //#endregion //#region 取得題目選項陣列 //public List<TopicSelect> GetTopicSelectList() //{ // var data = _topicselectrepository.GetAll().ToList(); // return data; //} //#endregion #region APP #region 儲存問卷資料 public void saveHabit(UserHabit data) { data.CreateTime = DateTime.Now; _userHabitrepository.Create(data); _db.Save(); }
public async Task CalculatePoints(UserHabitRecordsControllerTestData_MonthNoOfCount testData) { var context = this.fixture.GetCurrentDataContext(); UserHabitRecordsController control = new(context); // Add Habit, Habit Rules UserHabit habit = new UserHabit(); habit.TargetUser = DataSetupUtility.UserA; habit.ValidFrom = new DateTime(2021, 1, 1); habit.ValidTo = new DateTime(2022, 12, 31); habit.Name = "Habit_1"; habit.Category = HabitCategory.Positive; habit.Comment = habit.Name; habit.Frequency = HabitFrequency.Monthly; habit.CompleteCategory = HabitCompleteCategory.NumberOfCount; habit.CompleteCondition = testData.CompleteCondition; habit.StartDate = testData.DateInMonth; context.UserHabits.Add(habit); context.SaveChanges(); Int32 nNewHabitID = habit.ID; foreach (var rule in testData.RuleList) { rule.HabitID = nNewHabitID; context.UserHabitRules.Add(rule); } context.SaveChanges(); // Add user record. foreach (UserHabitRecord record in testData.RecordList) { record.HabitID = nNewHabitID; var rst = control.Post(record); Assert.NotNull(rst); if (rst != null) { CreatedODataResult <UserHabitRecord> rstrecord = (CreatedODataResult <UserHabitRecord>)rst.Result; Assert.NotNull(rstrecord); } } // Check on DB directly var dbrecords = (from dbrecord in context.UserHabitRecords where dbrecord.HabitID == nNewHabitID select dbrecord).ToList(); Assert.Equal(testData.RecordCount, dbrecords.Count); // Ensure rule is assigned correctly if (testData.ExpectedRuleDateList.Count > 0) { var rulecnt = 0; dbrecords.ForEach(dbr => { if (dbr.RuleID != null) { rulecnt++; var ridx = testData.ExpectedRuleDateList.FindIndex(rd => rd.Date == dbr.RecordDate.Date); Assert.NotEqual(-1, ridx); } }); Assert.Equal(testData.ExpectedRuleDateList.Count, rulecnt); } DataSetupUtility.ClearUserHabitData(context, nNewHabitID); context.SaveChanges(); await context.DisposeAsync(); }
public async Task CalculatePoints_Daily_NumberOfTimes(UserHabitRecordsControllerTestData_DailyNoOfTimes testData) { var context = this.fixture.GetCurrentDataContext(); UserHabitRecordsController control = new(context); // Add Habit, Habit Rule UserHabit habit = new UserHabit(); habit.TargetUser = DataSetupUtility.UserA; habit.ValidFrom = new DateTime(2021, 1, 1); habit.ValidTo = new DateTime(2022, 12, 31); habit.Name = "Habit_Daily_1"; habit.Category = HabitCategory.Positive; habit.Comment = habit.Name; habit.Frequency = HabitFrequency.Daily; habit.CompleteCategory = HabitCompleteCategory.NumberOfTimes; context.UserHabits.Add(habit); context.SaveChanges(); Int32 nNewHabitID = habit.ID; foreach (var rule in testData.RuleList) { rule.HabitID = habit.ID; context.UserHabitRules.Add(rule); } context.SaveChanges(); // Add user record. foreach (DateTime dt in testData.RecordDatesList) { UserHabitRecord record = new UserHabitRecord(); record.HabitID = habit.ID; record.RecordDate = dt; record.Comment = "Test1"; var rst = control.Post(record); Assert.NotNull(rst); if (rst != null) { CreatedODataResult <UserHabitRecord> rstrecord = (CreatedODataResult <UserHabitRecord>)rst.Result; Assert.NotNull(rstrecord); } } // Check on DB directly var dbrecords = (from dbrecord in context.UserHabitRecords where dbrecord.HabitID == habit.ID orderby dbrecord.RecordDate ascending select dbrecord).ToList(); Assert.Equal(testData.ExpectedRecordList.Count, dbrecords.Count); // Ensure rule is assigned correctly if (testData.ExpectedRecordList.Count > 0) { foreach (var dbrecord in dbrecords) { var ridx = testData.ExpectedRecordList.FindIndex(rd => rd.RecordDate == dbrecord.RecordDate); Assert.NotEqual(-1, ridx); Assert.Equal(testData.ExpectedRecordList[ridx].RuleID, dbrecord.RuleID); Assert.Equal(testData.ExpectedRecordList[ridx].ContinuousCount, dbrecord.ContinuousCount); } } DataSetupUtility.ClearUserHabitData(context, nNewHabitID); context.SaveChanges(); await context.DisposeAsync(); }
// POST: /UserHabits /// <summary> /// Support for creating user habit /// </summary> public async Task <IActionResult> Post([FromBody] UserHabit habit) { if (!ModelState.IsValid) { foreach (var value in ModelState.Values) { foreach (var err in value.Errors) { System.Diagnostics.Debug.WriteLine(err.Exception?.Message); } } return(BadRequest()); } String usrId = ControllerUtil.GetUserID(this); if (String.IsNullOrEmpty(usrId)) { throw new Exception("Failed ID"); } // Check 0. User var ucnt = _context.AwardUsers.Where(p => p.TargetUser == habit.TargetUser && p.Supervisor == usrId).Count(); if (ucnt != 1) { return(BadRequest("Invalid user")); } // Check 1. Validity if (habit.ValidTo <= habit.ValidFrom) { return(BadRequest("Invalid Validity")); } switch (habit.Frequency) { case HabitFrequency.Weekly: if (!habit.StartDate.HasValue) { return(BadRequest("Invalid start date")); } else { try { DayOfWeek dow = (DayOfWeek)habit.StartDate.Value; if (!Enum.IsDefined(typeof(DayOfWeek), dow)) { throw new Exception("Invalid start date"); } } catch (Exception exp) { return(BadRequest(exp.Message)); } switch (habit.CompleteCategory) { case HabitCompleteCategory.NumberOfCount: if (habit.CompleteCondition <= 0) { return(BadRequest("Invalid done criteria")); } break; case HabitCompleteCategory.NumberOfTimes: default: if (habit.CompleteCondition > 7 || habit.CompleteCondition <= 0) { return(BadRequest("Invalid done criteria")); } break; } } break; case HabitFrequency.Monthly: if (!habit.StartDate.HasValue) { return(BadRequest("Invalid start date")); } else { if (habit.StartDate.Value > 28 || habit.StartDate < 1) { return(BadRequest("Invalid start date")); } switch (habit.CompleteCategory) { case HabitCompleteCategory.NumberOfCount: if (habit.CompleteCondition <= 0) { return(BadRequest("Invalid done criteria")); } break; case HabitCompleteCategory.NumberOfTimes: default: if (habit.CompleteCondition > 28 || habit.CompleteCondition <= 0) { return(BadRequest("Invalid done criteria")); } break; } } break; case HabitFrequency.Daily: default: if (habit.StartDate.HasValue) { return(BadRequest("Invalid start date")); } switch (habit.CompleteCategory) { case HabitCompleteCategory.NumberOfCount: if (habit.CompleteCondition <= 0) { return(BadRequest("Invalid done criteria")); } break; case HabitCompleteCategory.NumberOfTimes: default: if (habit.CompleteCondition != 1) { return(BadRequest("Invalid done criteria")); } break; } break; } // Check 2. Rules if (habit.Rules.Count < 0) { return(BadRequest("Habit must define with rules")); } // habit.Rules.Sort(prop => prop.); int i = 1; foreach (var rule in habit.Rules) { rule.RuleID = i++; rule.CurrentHabit = habit; } // Update db _context.UserHabits.Add(habit); await _context.SaveChangesAsync(); return(Created(habit)); }
public async Task CalculatePoints_Weekly_NumberOfTimes(UserHabitRecordsControllerTestData_WeekNoOfTimes testData) { var context = this.fixture.GetCurrentDataContext(); UserHabitRecordsController control = new(context); // Add Habit, Habit Rule UserHabit habit = new UserHabit(); habit.TargetUser = DataSetupUtility.UserA; habit.ValidFrom = new DateTime(2021, 1, 1); habit.ValidTo = new DateTime(2022, 12, 31); habit.Name = "Habit_1"; habit.Category = HabitCategory.Positive; habit.Comment = habit.Name; habit.Frequency = HabitFrequency.Weekly; habit.CompleteCategory = HabitCompleteCategory.NumberOfTimes; habit.CompleteCondition = testData.CompleteCondition; habit.StartDate = (int)testData.Dow; context.UserHabits.Add(habit); context.SaveChanges(); Int32 nNewHabitID = habit.ID; UserHabitRule rule1 = new UserHabitRule(); rule1.HabitID = habit.ID; rule1.RuleID = 1; rule1.ContinuousRecordFrom = 1; rule1.ContinuousRecordTo = 2; rule1.Point = 1; context.UserHabitRules.Add(rule1); UserHabitRule rule2 = new UserHabitRule(); rule2.HabitID = habit.ID; rule2.RuleID = 2; rule2.ContinuousRecordFrom = 2; rule1.ContinuousRecordTo = 3; rule2.Point = 2; context.UserHabitRules.Add(rule2); UserHabitRule rule3 = new UserHabitRule(); rule3.HabitID = habit.ID; rule3.RuleID = 3; rule3.ContinuousRecordFrom = 3; rule3.Point = 4; context.UserHabitRules.Add(rule3); context.SaveChanges(); // Add user record. //Boolean lastRst = false; foreach (DateTime dt in testData.RecordDatesList) { UserHabitRecord record = new UserHabitRecord(); record.HabitID = habit.ID; record.RecordDate = dt; record.Comment = "Test1"; var rst = control.Post(record); Assert.NotNull(rst); if (rst != null) { CreatedODataResult <UserHabitRecord> rstrecord = (CreatedODataResult <UserHabitRecord>)rst.Result; Assert.NotNull(rstrecord); //lastRst = rstrecord.Entity.RuleID.HasValue; } } // Check on DB directly var dbrecords = (from dbrecord in context.UserHabitRecords where dbrecord.HabitID == habit.ID select dbrecord).ToList(); Assert.Equal(testData.RecordCount, dbrecords.Count); // Ensure rule is assigned correctly if (testData.TargetRuleDateList.Count > 0) { var rulecnt = 0; dbrecords.ForEach(dbr => { if (dbr.RuleID != null) { rulecnt++; var ridx = testData.TargetRuleDateList.FindIndex(rd => rd.Date == dbr.RecordDate.Date); Assert.NotEqual(-1, ridx); } }); Assert.Equal(testData.TargetRuleDateList.Count, rulecnt); } DataSetupUtility.ClearUserHabitData(context, nNewHabitID); context.SaveChanges(); await context.DisposeAsync(); }