public ActionResult Add([Bind("Task_ID, Task_Parent_ID, User_ID, Task_Name, Task_Due_Date, Task_Due_Time, Task_Description, Task_isFocus, Task_Create_Date, Task_Update_Date, Task_Status, Task_isComplete")] ToDo_Task ToDo_Task) { var returnData = "NOT"; string user_id_string = HttpContext.Session.GetString("User_ID"); int user_id; if (user_id_string == null) { TempData["msg"] = _CLSR.GetScriptAlertPopUp("Warning", "You have not login yet.", "", "D"); return(RedirectToAction("Index", "Home")); } else { try { user_id = Convert.ToInt32(user_id_string); } catch { user_id = 0; return(RedirectToAction("Index", "Home")); } String cDate = _CLSR.GetDateNow(""); String cTime = _CLSR.GetTimeNow(""); ToDo_Task.User_ID = user_id; ToDo_Task.Task_Create_Date = cDate; ToDo_Task.Task_Update_Date = cDate; ToDo_Task.Task_isComplete = "N"; ToDo_Task.Task_isFail = "N"; ToDo_Task.Task_Due_Date = _CLSR.ConvertDatePicker(ToDo_Task.Task_Due_Date); ToDo_Task.Task_Due_Time = _CLSR.ConvertTimePicker(ToDo_Task.Task_Due_Time, ":"); ToDo_Task.Task_isFocus = 0; ToDo_Task.Task_Status = "Y"; _CLSR.Exp_Up(user_id, 2); _context.Add(ToDo_Task); _context.SaveChanges(); returnData = "SUCCESS"; return(Json(returnData)); } }
//Main Function //EXP_UP public bool Exp_Up(int user_id, float exp_input) { String cDate = GetDateNow(""); String cTime = GetTimeNow(""); var user = _context.User.Where(i => i.User_ID == user_id).SingleOrDefault(); var tree = _context.Trees.Where(i => i.User_ID == user_id && i.Tree_Status == "S").SingleOrDefault(); var user_tree_count = _context.Trees.Where(i => i.User_ID == user_id).Count(); if (user_id != 0) { tree.Tree_EXP = tree.Tree_EXP + exp_input; if (tree.Tree_Level < 3 && tree.Tree_EXP > 100) { var remainEXP = tree.Tree_EXP - 100; tree.Tree_EXP = remainEXP; tree.Tree_Level = tree.Tree_Level + 1; if (tree.Tree_Level == 3) { //ถ้าต้นไม้เดิม Level ขึ้นเท่ากับ 3 ให้เปลี่ยนสถานะจาก 'S' (Selected) กลายเป็น 'G(x)' (Growth + ตามด้วยจำนวนต้นไม้) tree.Tree_Status = "G" + user_tree_count; //ต้นแรกปลูกสำเร็จ โตแล้ว !! if (tree.Tree_Status == "G1") { //new Tree Created with Type Tree == 2 Trees basic_Tree = new Trees(); basic_Tree.User_ID = user_id; basic_Tree.Tree_Level = 1; basic_Tree.Tree_EXP = 0; //Tree Type == 2++ basic_Tree.Tree_Type_ID = 2; basic_Tree.Tree_Name = "Tree_LV2"; basic_Tree.Tree_HP = 80; basic_Tree.Plant_Date = cDate; basic_Tree.Create_Date = cDate; basic_Tree.Update_Date = cDate; basic_Tree.Tree_Status = "S"; basic_Tree.Tree_isDead = "N"; _context.Add(basic_Tree); } //ต้นที่สองปลูกสำเร็จ else if (tree.Tree_Status == "G2") { //new Tree Created with Type Tree == 3 //new Tree Created with Type Tree == 2 Trees basic_Tree = new Trees(); basic_Tree.User_ID = user_id; basic_Tree.Tree_Level = 1; basic_Tree.Tree_EXP = 0; //Tree Type == 2++ basic_Tree.Tree_Type_ID = 3; basic_Tree.Tree_Name = "Tree_LV3"; basic_Tree.Tree_HP = 60; basic_Tree.Plant_Date = cDate; basic_Tree.Create_Date = cDate; basic_Tree.Update_Date = cDate; basic_Tree.Tree_Status = "S"; basic_Tree.Tree_isDead = "N"; _context.Add(basic_Tree); } //ต้นที่สามปลูกสำเร็จ else if (tree.Tree_Status == "G3") { //new Tree Created with Type Tree == 4 //new Tree Created with Type Tree == 3 //new Tree Created with Type Tree == 2 Trees basic_Tree = new Trees(); basic_Tree.User_ID = user_id; basic_Tree.Tree_Level = 1; basic_Tree.Tree_EXP = 0; //Tree Type == 2++ basic_Tree.Tree_Type_ID = 3; basic_Tree.Tree_Name = "Tree_LV4"; basic_Tree.Tree_HP = 40; basic_Tree.Plant_Date = cDate; basic_Tree.Create_Date = cDate; basic_Tree.Update_Date = cDate; basic_Tree.Tree_Status = "S"; basic_Tree.Tree_isDead = "N"; _context.Add(basic_Tree); } //ต้นที่สี่ปลูกสำเร็จ !! + Reward else if (tree.Tree_Status == "G4") { } //ERROR else { } } } _context.Update(tree); _context.SaveChanges(); return(true); } else { //ERROR USER ID == 0 return(false); } }
public async Task <IActionResult> Create([Bind("User_ID,Role_ID,Email,Password,First_Name,Last_Name,Birthdate,Wrong_Password_Count,Last_Login,Last_Update,Gender,User_Status,User_isLock")] User user) { if (ModelState.IsValid) { int userID = 1; try { userID = _context.User.Max(p => p.User_ID) + 1; } catch { //ไม่เจอ ID สักอันแสดงว่า Table นี้ว่างอยู่ให้เริ่มที่ 1 userID = 1; } var checkUserIsAlready = _context.User.Where(i => i.Email == user.Email).Count(); //Email is already exist! if (checkUserIsAlready > 0) { TempData["msg"] = _CLSR.GetScriptAlertPopUp("Error", "Please contact Administrator", "", "E"); return(RedirectToAction("Create", "Users")); } else { if (user.Email != null && user.Password != null && user.First_Name != null) { //ควรเปิด Transaction ทุกครั้งที่มีการเปลี่ยนแปลงข้อมูลใน Table using (IDbContextTransaction dbTran = _context.Database.BeginTransaction()) { user.Password = _CLSR.EncodeHMAC_SHA512(user.Password); String cDate = _CLSR.GetDateNow(""); String cTime = _CLSR.GetTimeNow(""); //ROLE ID 1 คือ Admin //ROLE ID 2 คือ Normal User user.Role_ID = 2; user.Birthdate = _CLSR.ConvertDatePicker(user.Birthdate); user.Wrong_Password_Count = 0; user.Last_Login = cDate; user.Last_Update = cDate; user.User_Status = "Y"; user.User_isLock = "N"; _context.Add(user); await _context.SaveChangesAsync(); Trees basic_Tree = new Trees(); basic_Tree.User_ID = user.User_ID; basic_Tree.Tree_Level = 1; basic_Tree.Tree_EXP = 0; basic_Tree.Tree_Type_ID = 1; basic_Tree.Tree_Name = "Basic Tree"; basic_Tree.Tree_HP = 100; basic_Tree.Plant_Date = cDate; basic_Tree.Create_Date = cDate; basic_Tree.Update_Date = cDate; basic_Tree.Tree_Status = "S"; basic_Tree.Tree_isDead = "N"; _context.Add(basic_Tree); await _context.SaveChangesAsync(); //ถ้าบันทึกข้อมูลเสร็จ ให้ Commit เพื่อยืนยันการเซฟข้อมูล dbTran.Commit(); //ถ้าไม่สำเร็จให้ RollBack(); //try //{ // HCON.Login(user.Email, user.Password); //} //catch (Exception e) //{ // TempData["msg"] = "<script>alert('"+ e.Message +"')</script>"; // return RedirectToAction("Index", "Home"); //} TempData["msg"] = "<script>alert('Sign Up successfully')</script>"; //Temp Message เพื่อขึ้น Alert ป๊อปอัพแสดง //TempData["msg"] = _CLSR.GetScriptAlertPopUp("Success", "Register Successfully!", "", "S"); } } else { TempData["msg"] = _CLSR.GetScriptAlertPopUp("Error", "Please contact Administrator", "", "E"); return(RedirectToAction("Create", "Users")); } } } return(View(user)); }