diff --git a/BMA.EHR.CheckInConsumer/Program.cs b/BMA.EHR.CheckInConsumer/Program.cs
index 1c63bfaa..b87b513a 100644
--- a/BMA.EHR.CheckInConsumer/Program.cs
+++ b/BMA.EHR.CheckInConsumer/Program.cs
@@ -61,14 +61,9 @@ consumer.Received += async (model, ea) =>
channel.BasicConsume(queue: "checkin-queue", autoAck: true, consumer: consumer);
-Console.WriteLine("\nPress 'Enter' to exit the process...");
-
-// another use of "Console.ReadKey()" method
-// here it asks to press the enter key to exit
-while (Console.ReadKey().Key != ConsoleKey.Enter)
-{
-}
+//Console.WriteLine("\nPress 'Enter' to exit the process...");
+await Task.Delay(-1);
static void WriteToConsole(string message)
{
diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs
index ed67d1e0..5d644061 100644
--- a/BMA.EHR.Leave/Controllers/LeaveController.cs
+++ b/BMA.EHR.Leave/Controllers/LeaveController.cs
@@ -483,6 +483,48 @@ namespace BMA.EHR.Leave.Service.Controllers
return Success(new { date = currentDate });
}
+ ///
+ /// Fake Check in
+ ///
+ ///
+ ///
+ /// เมื่อทำรายการสำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("check-in"), DisableRequestSizeLimit]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ [AllowAnonymous]
+ public ActionResult FakeCheckIn([FromBody] FakeCheckTimeDto data)
+ {
+ var currentDate = DateTime.Now;
+
+ // create connection
+ var factory = new ConnectionFactory()
+ {
+ HostName = _configuration["Rabbit:Host"],
+ UserName = _configuration["Rabbit:User"],
+ Password = _configuration["Rabbit:Password"],
+ };
+
+ // create channel
+ using var connection = factory.CreateConnection();
+ using var channel = connection.CreateModel();
+ channel.QueueDeclare(queue: "fake-checkin-queue", durable: false, exclusive: false, autoDelete: false, arguments: null);
+
+ // แปลง Object เป็น JSON สตริง
+ var serializedObject = JsonConvert.SerializeObject(data);
+
+ // แปลง JSON สตริงเป็น byte array
+ var body = Encoding.UTF8.GetBytes(serializedObject);
+
+ channel.BasicPublish(exchange: "", routingKey: "fake-checkin-queue", basicProperties: null, body: body);
+ Console.WriteLine($"Send to Queue: {serializedObject}");
+
+ return Success(new { date = currentDate });
+ }
+
///
/// Check in Processing
///
diff --git a/BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs
index f7e03b59..3a738170 100644
--- a/BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs
+++ b/BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs
@@ -27,6 +27,27 @@ namespace BMA.EHR.Leave.Service.DTOs.CheckIn
public string? Remark { get; set; } = string.Empty;
}
+ public class FakeCheckTimeDto
+ {
+ public Guid? CheckInId { get; set; }
+
+ [Required]
+ public double Lat { get; set; } = 0;
+
+ [Required]
+ public double Lon { get; set; } = 0;
+
+ [Required]
+ public string POI { get; set; } = string.Empty;
+
+ [Required]
+ public bool IsLocation { get; set; } = true;
+
+ public string? LocationName { get; set; } = string.Empty;
+
+ public string? Remark { get; set; } = string.Empty;
+ }
+
public class CheckTimeDtoRB
{
public string Token { get; set; } = "";