Exemple #1
0
        /// <summary>
        /// 清除所有的資料
        /// </summary>
        public void CleanAllData()
        {
            // 將工作資料全部刪除掉
            db.UserTasks.RemoveRange(db.UserTasks.ToList());
            // 將使用者的資料全部刪除掉
            var fooUsers = db.Users.ToList();

            db.Users.RemoveRange(fooUsers);

            db.SaveChanges();
        }
Exemple #2
0
        public APIResult Get()
        {
            var fooToday = DateTime.Now.Date;
            // 查詢今天產生的工作有那些
            var fooTasks = db.UserTasks.Where(x => DbFunctions.TruncateTime(x.TaskDateTime) == fooToday).ToList();

            if (fooTasks.Count > 0)
            {
                #region 今天的工作已經有產生了
                fooAPIResult.Success = false;
                fooAPIResult.Message = DateTime.Now.ToString("yyyy.MM.dd") + " 已經有存在的的代辦工作";
                fooAPIResult.Payload = null;
                #endregion
            }
            else
            {
                #region 幫每個使用者,產生今天要用到的五個工作
                for (int i = 0; i < 40; i++)
                {
                    var fooAccount = $"user{i}";
                    for (int j = 0; j < 5; j++)
                    {
                        var fooTask = new UserTasks()
                        {
                            Account           = fooAccount,
                            Title             = $"請前往地點 {j} 進行簽到與調查作業環境",
                            Description       = "請到指定地點掃描 QR Code,並且填寫當時工作環境數據",
                            TaskDateTime      = DateTime.Now.Date,
                            CheckinId         = RandomString(30),
                            Condition1_Ttile  = "請讀取儀表1的數據",
                            Condition1_Result = "",
                            Condition2_Ttile  = "請讀取儀表2的數據",
                            Condition2_Result = "",
                            Condition3_Ttile  = "請讀取儀表3的數據",
                            Condition3_Result = "",
                            Checkin_Latitude  = 0,
                            Checkin_Longitude = 0,
                            PhotoURL          = "",
                            Reported          = false,
                            ReportedDatetime  = new DateTime(1900, 1, 1),
                            CheckinDatetime   = new DateTime(1900, 1, 1),
                        };

                        db.UserTasks.Add(fooTask);
                    }
                }
                #endregion
                db.SaveChanges();

                fooAPIResult.Success = true;
                fooAPIResult.Message = DateTime.Now.ToString("yyyy.MM.dd") + " 的代辦工作已經產生完成";
                fooAPIResult.Payload = null;
            }
            return(fooAPIResult);
        }
        /// <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);
        }