public IActionResult QueryUserChemicals() { var certification = HttpContext.Request.Headers["certification"]; var success = UserRoleCache.TryGetUserRole(certification, out var userRole); if (!success) { return(NotFound("try again")); } int userid = userRole.User.UserId; try { var response = RpcWrapper.CallServiceByGet("/api/entity/chemicals", $"userid={userid}"); if (!response.IsSuccessCode) { return(NotFound("try again")); } var res = JsonSerializer.Deserialize <List <Chemical> >(response.Body); return(Ok(res)); } catch (JsonException) { return(BadRequest("internal error")); } catch (Exception) { return(NotFound("try again")); } }
public IActionResult ReturnChemicals([FromBody] SolveFormParam param) { try { RpcWrapper.CallServiceByPost("/api/claim/return", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult ApproveFinancial([FromBody] SolveFormParam param) { try { RpcWrapper.CallServiceByPost("/api/financial/approve", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult Declear([FromBody] PostDeclarationFormParam param) { try { param.Form.SubmitTime = DateTime.Now; RpcWrapper.CallServiceByPost("/api/declaration/apply", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult Claim([FromBody] PostClaimFormParam param) { _logger.LogInformation("Post claim form. formid: {formid}", param.Form.Id); _logger.LogInformation("With {count} chemicals.", param.Chemicals.Count); try { param.Form.SubmitTime = DateTime.Now; RpcWrapper.CallServiceByPost("/api/claim/apply", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult GetClaimDetail([FromQuery] int formid) { try { var response = RpcWrapper.CallServiceByGet("/api/claim", $"formid={formid}"); if (!response.IsSuccessCode) { return(NotFound("try again")); } var res = JsonSerializer.Deserialize <PostClaimFormParam>(response.Body); return(Ok(res)); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult ReadStatusChange([FromBody] NotifyUpdateParam param) { var certification = HttpContext.Request.Headers["certification"]; if (UserRoleCache.TryGetUserRole(certification, out var userRole)) { param.UserId = userRole.User.UserId; try { var response = RpcWrapper.CallServiceByPost("/api/entity/notify", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception) { return(NotFound("try again")); } } return(Unauthorized()); }
public IActionResult RejectDeclear([FromBody] SolveFormParam param) { if (UserRoleCache.TryGetUserRole(HttpContext.Request.Headers["certification"], out UserRoleResult result)) { if (!result.Roles.Exists(r => r.LabId == param.LabId)) { return(Unauthorized()); } } try { RpcWrapper.CallServiceByPost("/api/declaration/reject", JsonSerializer.Serialize(param)); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message); return(NotFound(e.Message)); } }
public IActionResult QueryWorkFlowById([FromQuery] int workflowId) { try { var response = RpcWrapper.CallServiceByGet("/api/entity/workflow", $"workflowid={workflowId}"); if (!response.IsSuccessCode) { return(NotFound("try again")); } var res = JsonSerializer.Deserialize <WorkFlow>(response.Body); return(Ok(res)); } catch (JsonException) { return(BadRequest("internal error")); } catch (Exception) { return(NotFound("try again")); } }
public IActionResult QueryFinancialByWorkFlow([FromQuery] int workflowId) { try { var response = RpcWrapper.CallServiceByGet("/api/financial/workflow", $"id={workflowId}", $"type=workflowid"); if (!response.IsSuccessCode) { return(NotFound("try again")); } var res = JsonSerializer.Deserialize <List <FinancialForm> >(response.Body); return(Ok(res)); } catch (JsonException) { return(BadRequest("internal error")); } catch (Exception) { return(NotFound("try again")); } }
public IActionResult QueryClaimChemicals([FromQuery] long formid) { try { var response = RpcWrapper.CallServiceByGet("/api/entity/chemicals", $"labId={formid}"); if (!response.IsSuccessCode) { return(NotFound("try again")); } var res = JsonSerializer.Deserialize <List <Chemical> >(response.Body); return(Ok(res)); } catch (JsonException) { return(BadRequest("internal error")); } catch (Exception) { return(NotFound("try again")); } }
public void RunJob() { while (true) { while (_core.DeclearQueue.TryPeek(out var peek)) { if (peek.Deadline < DateTime.Now) { _logger.LogInformation("Start reject declaration form: {formid}.", peek.FormId); var info = RpcWrapper.CallServiceByPost("/api/declaration/reject", JsonSerializer.Serialize(new SolveFormParam { FormId = peek.FormId, UserId = 7, UserName = "******", })); _logger.LogInformation("Result: " + info); } else { break; } _core.DeclearQueue.Dequeue(); } while (_core.FinancialQueue.TryPeek(out var peek)) { if (peek.Deadline < DateTime.Now) { _logger.LogInformation("Start reject financial form: {formid}.", peek.FormId); var info = RpcWrapper.CallServiceByPost("/api/financial/reject", JsonSerializer.Serialize(new SolveFormParam { FormId = peek.FormId, UserId = 7, UserName = "******", })); _logger.LogInformation("Result: " + info); } else { break; } _core.FinancialQueue.Dequeue(); } while (_core.ClaimQueue.TryPeek(out var peek)) { if (peek.Deadline < DateTime.Now) { _logger.LogInformation("Start reject financial form: {formid}.", peek.FormId); var info = RpcWrapper.CallServiceByPost("/api/financial/reject", JsonSerializer.Serialize(new SolveFormParam { FormId = peek.FormId, UserId = 7, UserName = "******", })); _logger.LogInformation("Result: " + info); } else { break; } _core.ClaimQueue.Dequeue(); } // check the queue every 5 minutes Thread.Sleep(300000); } }
public IActionResult Login([FromForm] string username, [FromForm] string password) { _logger.LogInformation("Username: {username} try login.", username); try { if (HttpContext.Request.Headers.ContainsKey("certification")) { var ifcertification = HttpContext.Request.Headers["certification"]; if (UserRoleCache.TryGetUserRole(ifcertification, out var userRole)) { if (username == userRole.User.UserName) { var ret = new LoginReturn { Success = true, User = userRole.User, Roles = userRole.Roles, Certification = ifcertification }; return(Ok(ifcertification)); } else { UserRoleCache.RemoveUserRoleFromCache(ifcertification); } } } _logger.LogInformation("Call RpcWrapper, method: get."); _logger.LogInformation("port: {port}", RpcWrapper.Port); var response = RpcWrapper.CallServiceByGet( "/api/userrole", $"username={username}"); if (!response.IsSuccessCode) { return(Ok(new LoginReturn { Success = false })); } var result = JsonSerializer.Deserialize <UserRoleResult>(response.Body); if (password == result.User.UserPassword) { string certification = Guid.NewGuid().ToString(); var ret = new LoginReturn { Success = true, User = result.User, Roles = result.Roles, Certification = certification }; //UserRoleCache.AddUserRoleToCache(certification, result); //return Ok(certification); // For easy debug ret.Certification = "123"; UserRoleCache.AddUserRoleToCache("123", result); return(Ok(ret)); } return(Ok(new LoginReturn { Success = false })); } catch (Exception e) { // not sure if this should be write here _logger.LogError(e.Message); _logger.LogError("Call database_connector failed."); return(Ok(new LoginReturn { Success = false })); } }