public async Task <ActionResult> Edit([Bind(Include = "Id,Account,TaskDateTime,Status,Title,Description,CheckinId,Checkin_Latitude,Checkin_Longitude,CheckinDatetime,Condition1_Ttile,Condition1_Result,Condition2_Ttile,Condition2_Result,Condition3_Ttile,Condition3_Result,PhotoURL,Reported,ReportedDatetime")] UserTasks userTasks) { if (ModelState.IsValid) { db.Entry(userTasks).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(userTasks)); }
/// <summary> /// 更新App傳入的工作紀錄內容 /// </summary> /// <param name="userTasks">工作紀錄內容</param> /// <returns></returns> public APIResult Put([FromBody] UserTasks userTasks) { string foot = HttpContext.Current.Server.MapPath("~/Uploads"); int fooNumRec = 0; var fooDBObj = db.UserTasks.FirstOrDefault(x => x.Id == userTasks.Id); if (fooDBObj != null) { switch (userTasks.Status) { case TaskStatus.NOT_START: #region 工作尚未開始 fooAPIResult.Success = false; fooAPIResult.Message = "指定狀態不正確"; fooAPIResult.Payload = userTasks; #endregion break; case TaskStatus.CHECKIN: #region 打卡 UpdateStatus_CHECKIN(userTasks, fooDBObj); // 通知 Entity Framework,這個紀錄有異動了 db.Entry(fooDBObj).State = EntityState.Modified; fooNumRec = db.SaveChanges(); if (fooNumRec > 0) { fooAPIResult.Success = true; fooAPIResult.Message = "成功更新資料"; fooAPIResult.Payload = fooDBObj; } else { fooAPIResult.Success = false; fooAPIResult.Message = "沒有成功更新任何資料"; fooAPIResult.Payload = userTasks; } #endregion break; case TaskStatus.INPUT: #region 工作內容輸入 UpdateStatus_CHECKIN(userTasks, fooDBObj); UpdateStatus_INPUT(userTasks, fooDBObj); // 通知 Entity Framework,這個紀錄有異動了 db.Entry(fooDBObj).State = EntityState.Modified; fooNumRec = db.SaveChanges(); if (fooNumRec > 0) { fooAPIResult.Success = true; fooAPIResult.Message = "成功更新資料"; fooAPIResult.Payload = fooDBObj; } else { fooAPIResult.Success = false; fooAPIResult.Message = "沒有成功更新任何資料"; fooAPIResult.Payload = userTasks; } #endregion break; case TaskStatus.UPLOAD_IMAGE: #region 圖片上傳 UpdateStatus_CHECKIN(userTasks, fooDBObj); UpdateStatus_INPUT(userTasks, fooDBObj); UpdateStatus_UPLOAD_IMAGE(userTasks, fooDBObj); // 通知 Entity Framework,這個紀錄有異動了 db.Entry(fooDBObj).State = EntityState.Modified; fooNumRec = db.SaveChanges(); if (fooNumRec > 0) { fooAPIResult.Success = true; fooAPIResult.Message = "成功更新資料"; fooAPIResult.Payload = fooDBObj; } else { fooAPIResult.Success = false; fooAPIResult.Message = "沒有成功更新任何資料"; fooAPIResult.Payload = userTasks; } #endregion break; case TaskStatus.REPORTED: #region 完工與回報 UpdateStatus_CHECKIN(userTasks, fooDBObj); UpdateStatus_INPUT(userTasks, fooDBObj); UpdateStatus_UPLOAD_IMAGE(userTasks, fooDBObj); UpdateStatus_REPORTED(userTasks, fooDBObj); // 通知 Entity Framework,這個紀錄有異動了 db.Entry(fooDBObj).State = EntityState.Modified; fooNumRec = db.SaveChanges(); if (fooNumRec > 0) { fooAPIResult.Success = true; fooAPIResult.Message = "成功更新資料"; fooAPIResult.Payload = fooDBObj; } else { fooAPIResult.Success = false; fooAPIResult.Message = "沒有成功更新任何資料"; fooAPIResult.Payload = userTasks; } #endregion break; default: fooAPIResult.Success = false; fooAPIResult.Message = $"沒有符合的工作狀態馬 = {userTasks.Status}"; fooAPIResult.Payload = userTasks; break; } } else { fooAPIResult.Success = false; fooAPIResult.Message = $"沒有發現工作紀錄 ID = {userTasks.Id}"; fooAPIResult.Payload = userTasks; } return(fooAPIResult); }