Beispiel #1
0
        public IHttpActionResult Post(TimeTablePostRequest requestData)
        {
            var requestService  = new Service.Utility.RequestDataHelper <TimeTablePostRequest>();
            var checkColumnKeys = new string[3] {
                "token", "circlekey", "timetable"
            };
            var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys);
            var response   = new Infrastructure.ViewModel.Base.BaseResponse <string>();

            response.Success = false;
            if (checkEmpty == false)
            {
                response.Message = "遺漏參數";
                response.State   = Infrastructure.ViewModel.Base.LogState.RequestDataError;
                return(Content(HttpStatusCode.BadRequest, response));
            }
            var timeTableService = new TimeTableService();
            var responseData     = timeTableService.TimeTableDataProxy(requestData);

            if (responseData)
            {
                response.Success = true;
                response.Message = "處理資料成功";
                return(Ok(response));
            }
            response.Message = "處理資料失敗";
            response.State   = Infrastructure.ViewModel.Base.LogState.Error;
            return(Ok(response));
        }
Beispiel #2
0
        /// <summary>
        /// 處理資料
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public bool TimeTableDataProxy(TimeTablePostRequest requestData)
        {
            var tokenService = new TokenService();
            var tokenInfo    = tokenService.GetTokenInfo(requestData.Token).Result;

            if (tokenInfo == null)
            {
                return(false);
            }
            var insertDatas = requestData.TimeTable.Where(t => t.Id == 0);

            //處理新增資料
            foreach (var insertData in insertDatas)
            {
                insertData.Course_No = requestData.CircleKey;
                insertData.StartDate = insertData.StartDate.Value.ToUniversalTime();
                insertData.EndDate   = insertData.EndDate.Value.ToUniversalTime();
            }
            try
            {
                var db = _uow.DbContext;
                db.TimeTable.AddRange(insertDatas);
                var dbData = GetList(requestData.CircleKey.ToLower());
                //聯集資料
                var unionDataIds = requestData.TimeTable.Select(t => t.Id).Union(dbData.Select(t => t.Id));
                //找出欲刪除的資料
                var deleteDataIds = unionDataIds.Except(requestData.TimeTable.Select(t => t.Id));
                foreach (var deleteDataId in deleteDataIds)
                {
                    var deleteTimeTable = db.TimeTable.Find(deleteDataId);
                    if (deleteTimeTable == null)
                    {
                        continue;
                    }
                    db.TimeTable.Remove(deleteTimeTable);
                }
                //處理編輯資料
                var updateDatas = requestData.TimeTable.Where(t => t.Id > 0).ToList();
                foreach (var updateData in updateDatas)
                {
                    var updateDataInfo = db.TimeTable.Find(updateData.Id);
                    updateDataInfo.ClassRoom = updateData.ClassRoom;
                    updateDataInfo.StartDate = updateData.StartDate.Value.ToUniversalTime();
                    updateDataInfo.EndDate   = updateData.EndDate.Value.ToUniversalTime();
                    updateDataInfo.Remark    = updateData.Remark;
                }
                db.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }