public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, TraceWriter log) { var RedisConnection = ConfigurationManager.AppSettings["RedisConnection"]; var connStr = ConfigurationManager.AppSettings["TimeAttendanceEntities"]; ConnectionModel connectionModel = new ConnectionModel(); connectionModel.RedisConnection = RedisConnection; connectionModel.connStr = connStr; _buss = new FaceHelperFuntionBusiness(connectionModel); string str = "Data Statistics: Calculate Attendance Time"; try { _buss.AddOrUpdateCacheColectionFuntion(); log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); } catch (Exception exception) { log.Error($"Failed in {str}: {exception.Message}", exception, null); } }
static void Main(string[] args) { FaceHelperFuntionBusiness _buss; // var RedisConnection = "103.78.88.118:6379,abortConnect=false,ssl=false,password=nhantinsoft123456!"; var RedisConnection = "timeattendance-poc.redis.cache.windows.net:6380,password=trfVpGgQKVs1Xm1hJHUzoPSgUeUN54P8LwDC9jxsFaE=,ssl=True,abortConnect=False"; var connStr = "metadata=res://*/Repositories.TimeAttendanceModel.csdl|res://*/Repositories.TimeAttendanceModel.ssdl|res://*/Repositories.TimeAttendanceModel.msl;provider=System.Data.SqlClient;provider connection string=\";data source=tcp:attendtime.database.windows.net,1433;Initial Catalog=TimeAttendance;Persist Security Info=False;User ID=nts;Password=nhantinsoft123456!;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;\";"; ConnectionModel connectionModel = new ConnectionModel(); connectionModel.RedisConnection = RedisConnection; connectionModel.connStr = connStr; _buss = new FaceHelperFuntionBusiness(connectionModel); string str = "Data Statistics: Calculate Attendance Time"; try { _buss.AddOrUpdateCacheColectionFuntion(); } catch (Exception exception) { } }
public async static void Run([ServiceBusTrigger("attendance-time", AccessRights.Manage, Connection = "ServiceBusConnection")] string mySbMsg, TraceWriter log) { var StartTime = ConfigurationManager.AppSettings["StartTime"]; var EndTime = ConfigurationManager.AppSettings["EndTime"]; var connStr = ConfigurationManager.AppSettings["TimeAttendanceEntities"]; var RedisConnection = ConfigurationManager.AppSettings["RedisConnection"]; var UrlHostImage = ConfigurationManager.AppSettings["UrlHostImage"] + ConfigurationManager.AppSettings["StorageContainer"] + "/"; ConnectionModel connectionModel = new ConnectionModel(); connectionModel.RedisConnection = RedisConnection; connectionModel.connStr = connStr; var dateNow = DateTime.Now; TimeZone localZone = TimeZone.CurrentTimeZone; TimeSpan currentOffset = localZone.GetUtcOffset(dateNow); var utc = currentOffset.Hours; if (utc != 7) { //server của mỹ thì +7 giờ dateNow = dateNow.AddHours(7); } TimeAttendanceStatic.StartTime = DateTime.Parse(dateNow.ToShortDateString() + " " + StartTime); TimeAttendanceStatic.EndTime = DateTime.Parse(dateNow.ToShortDateString() + " " + EndTime); _buss = new FaceHelperFuntionBusiness(connectionModel); string str = "Time Attendance: Calculate Attendance Time"; try { DetectFaceResultModel detectFaceModel = JsonConvert.DeserializeObject <DetectFaceResultModel>(mySbMsg); if (utc != 7) { //server của mỹ thì +7 giờ detectFaceModel.CaptureTime = detectFaceModel.CaptureTime.AddHours(7); } //lưu vào bảng chấm công và log chấm công _buss.LogTimeAttendanceFuntion(detectFaceModel.ListIdentifyResult, detectFaceModel.CaptureTime, detectFaceModel.LogImageLink); var rs = _buss.LogAttendanceFuntion(detectFaceModel.ListIdentifyResult, detectFaceModel.CaptureTime, detectFaceModel.LogImageLink, detectFaceModel.CameraIPAdress); //tính toán cache _buss.AddOrUpdateCacheDensityFuntion(detectFaceModel.ListIdentifyResult, detectFaceModel.CaptureTime); log.Info($"{str} processed message: {mySbMsg}", null); //Đẩy service bus chấm công ServiceBusSetting setting = new ServiceBusSetting() { ConnectionString = ConfigurationManager.AppSettings["ServiceBusConnection"], QueueName = ConfigurationManager.AppSettings["NotificationQueueName"], }; ServiceBusSender <InfoNotificationResult> serviceBusSender = new ServiceBusSender <InfoNotificationResult>(setting); foreach (var item in rs) { item.ImageLink = UrlHostImage + item.ImageLink; try { await serviceBusSender.SendMessagesAsync(item); } catch (Exception) { } } } catch (Exception exception) { log.Error($"Failed in {str}: {exception.Message}", exception, null); } }