public IHttpActionResult Post(SyllabusManagePostRequest requestData) { var requestService = new Service.Utility.RequestDataHelper <SyllabusManagePostRequest>(); var checkColumnKeys = new string[3] { "token", "circleKey", "syllabuses" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys); var result = new Infrastructure.ViewModel.Base.BaseResponse <List <Infrastructure.Entity.Syllabus> >(); //取得資料 if (checkEmpty == false) { result.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; result.Success = false; result.Message = "確認是否遺漏資訊"; return(Content(HttpStatusCode.BadRequest, result)); } var syllabusService = new SyllabusService(); var data = syllabusService.SyllabusesDataProxy(requestData); if (data == null) { result.State = Infrastructure.ViewModel.Base.LogState.Error; result.Success = false; result.Message = "新增失敗"; return(Ok(result)); } result.Success = true; result.Message = "新增成功"; result.Data = data; return(Ok(result)); }
public IHttpActionResult Put(SyllabusManagePostRequest requestData) { var requestService = new Service.Utility.RequestDataHelper <SyllabusManagePostRequest>(); var checkColumnKeys = new string[5] { "id", "name", "note", "date", "token" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys); var result = new Infrastructure.ViewModel.Base.BaseResponse <Infrastructure.Entity.Syllabus>(); if (checkEmpty == false) { result.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; result.Success = false; result.Message = "確認是否遺漏資訊"; return(Content(HttpStatusCode.BadRequest, result)); } var syllabusService = new SyllabusService(); var data = syllabusService.UpdateSyllabusByToken(requestData.Id.Value, requestData.Name, requestData.Note, requestData.Date, requestData.Token); if (data == null) { result.State = Infrastructure.ViewModel.Base.LogState.Error; result.Success = false; result.Message = "編輯失敗"; return(Ok(result)); } result.Success = true; result.Message = "編輯成功"; result.Data = data; return(Ok(result)); }
/// <summary> /// 新增多筆課程章節 /// </summary> /// <param name="circleKey"></param> /// <param name="datas"></param> /// <param name="token"></param> /// <returns></returns> public List <Syllabus> SyllabusesDataProxy(SyllabusManagePostRequest data) { var tokenService = new TokenService(); var tokenInfo = tokenService.GetTokenInfo(data.Token).Result; if (tokenInfo == null) { return(null); } var db = _uow.DbContext; try { //查出新增的資料 var insertDatas = (from d in data.Syllabuses where d.Id == null || d.Id <= 0 select new Syllabus { Course_No = data.CircleKey.ToLower(), Created = TimeData.Create(DateTime.UtcNow), Deleted = TimeData.Create(null), Updated = TimeData.Create(null), CreateUser = tokenInfo.MemberId, Enable = true, Name = d.Title, Note = d.Note, Syll_Date = d.Date.ToUniversalTime(), Visibility = true }).OrderBy(t => t.Syll_Date).ToList(); var insertSort = 0; //整理新增資料 foreach (var insertData in insertDatas) { var guid = Guid.NewGuid(); insertData.Sort = insertSort; insertData.Syll_Guid = guid; insertSort++; } db.Syllabus.AddRange(insertDatas); //查出要編輯的資料 var updateDatas = data.Syllabuses.Where(t => t.Id.HasValue || t.Id > 0).ToList(); foreach (var updateData in updateDatas) { var dbData = db.Syllabus.Find(updateData.Id); dbData.Name = updateData.Title; dbData.Note = updateData.Note; dbData.Syll_Date = updateData.Date.ToUniversalTime(); dbData.Updated = TimeData.Create(DateTime.UtcNow); dbData.UpdateUser = tokenInfo.MemberId; dbData.Sort = updateData.Sort; } //比對需要刪除資料的查詢 var checkDatas = (from sy in db.Syllabus where sy.Course_No == data.CircleKey select sy.Id).ToList(); //取得聯集 var unionDatas = checkDatas.Union(data.Syllabuses.Where(t => t.Id.HasValue).Select(t => t.Id.Value)); //取得要刪除的資料群 var deleteDatas = unionDatas.Except(data.Syllabuses.Where(t => t.Id.HasValue).Select(t => t.Id.Value)); foreach (var deleteData in deleteDatas) { var removeData = db.Syllabus.Find(deleteData); if (removeData == null) { continue; } db.Syllabus.Remove(removeData); } db.SaveChanges(); //重新計算排序 UpdateSort(data.CircleKey.ToLower()); var responseData = db.Syllabus.Where(t => t.Course_No == data.CircleKey.ToLower()).ToList(); return(responseData); } catch (Exception ex) { return(null); throw ex; } }