Ejemplo n.º 1
0
        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);
        }