public async Task <APIResult> Post([FromBody] LAFAgentQuery lafAgentQuery) { IEnumerable <MyUser> fooList; if (string.IsNullOrEmpty(lafAgentQuery.DepartmentName)) { if (string.IsNullOrEmpty(lafAgentQuery.Name)) { await db.LOBMyUsers.ToListAsync(); fooList = (await db.LOBMyUsers.ToListAsync()).Select(x => x.ToMyUsers()); } else { fooList = (await(db.LOBMyUsers.Where(x => x.Name.Contains(lafAgentQuery.Name))) .ToListAsync()).Select(x => x.ToMyUsers()); } } else { if (string.IsNullOrEmpty(lafAgentQuery.Name)) { fooList = (await(db.LOBMyUsers.Where(x => x.DepartmentName == lafAgentQuery.DepartmentName)) .ToListAsync()).Select(x => x.ToMyUsers()); } else { fooList = (await(db.LOBMyUsers.Where(x => x.Name.Contains(lafAgentQuery.Name) && x.DepartmentName == lafAgentQuery.DepartmentName)) .ToListAsync()).Select(x => x.ToMyUsers()); } } var fooLAFAgentReslutList = new List <LAFAgentReslut>(); var pp = fooList.ToList(); foreach (var item in fooList) { var fooItem = new LAFAgentReslut() { DepartmentName = item.DepartmentName, MyUserId = item.MyUserId, Name = item.Name, }; fooLAFAgentReslutList.Add(fooItem); } fooResult.Success = true; fooResult.Message = ""; fooResult.TokenFail = false; fooResult.Payload = fooLAFAgentReslutList; return(fooResult); }
public APIResult Post([FromBody] LAFAgentQuery lafAgentQuery) { IQueryable <MyUser> fooList; //if (string.IsNullOrEmpty(lafAgentQuery.DepartmentName)&&string.IsNullOrEmpty(lafAgentQuery.Name)) //{ //} if (string.IsNullOrEmpty(lafAgentQuery.DepartmentName)) { if (string.IsNullOrEmpty(lafAgentQuery.Name)) { fooList = Context.MyUsers; } else { fooList = Context.MyUsers.Where(x => x.Name.Contains(lafAgentQuery.Name)); } } else { if (string.IsNullOrEmpty(lafAgentQuery.Name)) { fooList = Context.MyUsers.Where(x => x.DepartmentName == lafAgentQuery.DepartmentName); } else { fooList = Context.MyUsers.Where(x => x.Name.Contains(lafAgentQuery.Name) && x.DepartmentName == lafAgentQuery.DepartmentName); } } var fooLAFAgentReslutList = new List <LAFAgentReslut>(); var pp = fooList.ToList(); foreach (var item in fooList) { var fooItem = new LAFAgentReslut() { DepartmentName = item.DepartmentName, MyUserId = item.MyUserId, Name = item.Name, }; fooLAFAgentReslutList.Add(fooItem); } fooResult.Success = true; fooResult.Message = ""; fooResult.TokenFail = false; fooResult.Payload = fooLAFAgentReslutList; return(fooResult); }
/// <summary> /// 取得使用者的請假單紀錄 /// </summary> /// <param name="account"></param> /// <param name="password"></param> /// <returns></returns> public async Task<APIResult> Post(LAFAgentQuery lAFAgentQuery) { using (HttpClientHandler handler = new HttpClientHandler()) { using (HttpClient client = new HttpClient(handler)) { try { #region 呼叫遠端 Web API string FooAPIUrl = $"{MainHelper.LeaveAppFormAgentAPIUrl}"; HttpResponseMessage response = null; // Accept 用於宣告客戶端要求服務端回應的文件型態 (底下兩種方法皆可任選其一來使用) //client.DefaultRequestHeaders.Accept.TryParseAdd("application/json"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // 這裡是要存取 Azure Mobile 服務必須要指定的 Header client.DefaultRequestHeaders.Add("ZUMO-API-VERSION", "2.0.0"); #region 傳入 Access Token var fooSystemStatus = new SystemStatusRepository(); await fooSystemStatus.ReadAsync(); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", fooSystemStatus.Item.AccessToken); #endregion #region 設定相關網址內容 // http://xamarinlobform.azurewebsites.net/api/WorkingLog/ByUserID?userID=user1&mode=user var fooFullUrl = $"{FooAPIUrl}"; #endregion var fooJSON = JsonConvert.SerializeObject(lAFAgentQuery); // https://msdn.microsoft.com/zh-tw/library/system.net.http.stringcontent(v=vs.110).aspx using (var fooContent = new StringContent(fooJSON, Encoding.UTF8, "application/json")) { response = await client.PostAsync(fooFullUrl, fooContent); } #endregion #region 處理呼叫完成 Web API 之後的回報結果 if (response != null) { if (response.IsSuccessStatusCode == true) { #region 狀態碼為成功 // 取得呼叫完成 API 後的回報內容 String strResult = await response.Content.ReadAsStringAsync(); fooAPIResult = JsonConvert.DeserializeObject<APIResult>(strResult, new JsonSerializerSettings { MetadataPropertyHandling = MetadataPropertyHandling.Ignore }); if (fooAPIResult.Success == true) { #region 讀取成功的回傳資料 // 將 Payload 裡面的內容,反序列化為真實 .NET 要用到的資料 Items = JsonConvert.DeserializeObject<List<LAFAgentReslut>>(fooAPIResult.Payload.ToString()); if (Items == null) { Items = new List<LAFAgentReslut>(); fooAPIResult = new APIResult { Success = false, Message = $"回傳的 API 內容不正確 : {fooAPIResult.Payload.ToString()}", Payload = null, }; } else { // 一般使用者與管理者所要查詢的請假單,將會存放在不同的檔案內 await SaveAsync(); } #endregion } else { #region API 的狀態碼為 不成功 Items = new List<LAFAgentReslut>(); fooAPIResult = new APIResult { Success = false, Message = fooAPIResult.Message, Payload = Items, }; #endregion } #endregion } else { #region API 的狀態碼為 不成功 String strResult = await response.Content.ReadAsStringAsync(); fooAPIResult = new APIResult { Success = false, Message = $"狀態碼:{response.StatusCode}{Environment.NewLine}{response.ReasonPhrase}", Payload = Items, TokenFail = response.StatusCode == HttpStatusCode.Unauthorized ? true : false }; #endregion } } else { fooAPIResult = new APIResult { Success = false, Message = "應用程式呼叫 API 發生異常", TokenFail = false, Payload = null, }; } #endregion } catch (Exception ex) { fooAPIResult = new APIResult { Success = false, Message = ex.Message, Payload = ex, }; } } } return fooAPIResult; }