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);
            }
        }
Esempio n. 2
0
        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);
            }
        }