Exemplo n.º 1
0
        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"));
            }
        }
Exemplo n.º 2
0
 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));
     }
 }
Exemplo n.º 3
0
 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));
     }
 }
Exemplo n.º 4
0
 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));
     }
 }
Exemplo n.º 5
0
 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));
     }
 }
Exemplo n.º 6
0
 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));
     }
 }
Exemplo n.º 7
0
        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());
        }
Exemplo n.º 8
0
 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));
     }
 }
Exemplo n.º 9
0
 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"));
     }
 }
Exemplo n.º 10
0
 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"));
     }
 }
Exemplo n.º 11
0
 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"));
     }
 }
Exemplo n.º 12
0
 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);
     }
 }
Exemplo n.º 13
0
 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
         }));
     }
 }