/// <summary> /// 同步點名資料 /// </summary> /// <param name="requestData"></param> /// <returns></returns> public LogState SyncToiCan(Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest requestData) { var memberService = new MemberService(); var memberInfo = memberService.TokenToMember(requestData.Token).Result; if (memberInfo == null) { return(LogState.Logout); } var db = _uow.DbContext; var isTeacher = memberInfo.OrganizationRoleId.HasValue ? db.OrganizationRole.FirstOrDefault(t => t.Id == memberInfo.OrganizationRoleId).IsAdmin : true; if (isTeacher == false) { return(LogState.Error); } var iCanRequestData = new Infrastructure.ViewModel.School.SignInSynchronize.SignSynciCanRequest { Course_no = requestData.ClassID.ToUpper(), Syll_id = requestData.syll_id, Times = requestData.Times.ToString(), Token = requestData.Token.ToUpper() }; var iCanMemberRequestDatas = from rmd in requestData.MemberList select new Infrastructure.ViewModel.School.SignInSynchronize.SignSynciCanMemberListRequest { Manno = rmd.StudID, Status = Convert.ToInt32(string.Format("{0}0", (int)rmd.Status)) }; iCanRequestData.ClassmatesStatus = JsonConvert.SerializeObject(iCanMemberRequestDatas); var iCanRequestJson = JsonConvert.SerializeObject(iCanRequestData); using (var client = new HttpClient()) { var requestUri = string.Format("{0}{1}", apiHost, "UploadAllClassmatesBySyllId"); var httpContent = new StringContent(iCanRequestJson, Encoding.UTF8, "application/json"); var response = client.PostAsync(requestUri, httpContent).Result; if (response.IsSuccessStatusCode) { var responseData = JsonConvert.DeserializeObject <Infrastructure.ViewModel.Base.BackendBaseRequest>(response.Content.ReadAsStringAsync().Result); if (responseData.Success) { return(LogState.Suscess); } else { return(LogState.Error); } } else { return(LogState.NoAccount); } } }
public IHttpActionResult Post(Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest requestData) { // var requestData = JsonConvert.DeserializeObject<Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest>(strAccess); var requestService = new Service.Utility.RequestDataHelper <Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest>(); var checkColumnKeys = new string[4] { "icantoken", "classid", "syll_id", "times" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys); var response = new Infrastructure.ViewModel.Base.ResultBaseModel <string>(); response.Success = false; response.Data = new string [0]; if (checkEmpty == false) { response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } requestData.Token = requestData.ICanToken; var tokenService = new TokenService(); var tokenInfo = tokenService.GetTokenInfo(requestData.Token).Result; if (tokenInfo == null) { response.Data = new string[0]; response.Message = "已登出"; response.State = Infrastructure.ViewModel.Base.LogState.Logout; return(Content(HttpStatusCode.Forbidden, response)); } var signInSyncService = new SignInSyncService(); var responseData = signInSyncService.SyncToiCan(requestData); if (responseData == Infrastructure.ViewModel.Base.LogState.Suscess) { response.Success = true; response.Data = new string[1] { "同步成功" }; response.Message = "同步成功"; } else { response.Message = responseData.ToString(); response.State = responseData; } return(Ok(response)); }