示例#1
0
        public ActionResult AddNewExit(int cameraid)
        {
            try
            {
                _logger.LogInformation("AddNewExit() called from: " + HttpContext.Connection.RemoteIpAddress.ToString());
                DateTime dateTime = DateTime.UtcNow.ToTimezone(Configuration["Timezone"]);

                lock (lockExitObject)
                {
                    ExitRecord exitRecord = new ExitRecord();
                    exitRecord.Timestamp = dateTime;
                    exitRecord.CameraId  = cameraid;

                    Context.ExitRecords.Add(exitRecord);

                    var exitCount = Context.ExitCounts
                                    .Where(x => x.CameraId == cameraid && x.Date == dateTime.Date)
                                    ?.Select(x => x)
                                    ?.FirstOrDefault();

                    if (exitCount == null)
                    {
                        ExitCount newExitCount = new ExitCount();
                        newExitCount.Date     = dateTime.Date;
                        newExitCount.CameraId = cameraid;
                        newExitCount.Count    = 1;

                        Context.ExitCounts.Add(newExitCount);
                        Context.SaveChangesAsync();
                    }
                    else
                    {
                        exitCount.Count = exitCount.Count + 1;
                        Context.SaveChangesAsync();
                    }
                }

                //BoschApiHub.BroadcastExit(cameraid);
                SignalRHubConnection.GetInstance(Configuration["SignalRHubUrl"])
                .SendAsync("BroadcastExit", cameraid);

                return(new JsonResult(new
                {
                    respcode = ResponseCodes.Successful,
                }));
            }
            catch (Exception e)
            {
                _logger.LogError($"Generic exception handler invoked. {e.Message}: {e.StackTrace}");

                return(new JsonResult(new
                {
                    respcode = ResponseCodes.SystemError,
                    description = ResponseCodes.SystemError.DisplayName(),
                    Error = e.Message
                }));
            }
        }
示例#2
0
 public void Remove(ExitRecord exit)
 {
     using (IDbCommand session = Helpers.OpenSession())
         using (IDbTransaction transaction = session.Connection.BeginTransaction())
         {
             session.Connection.Delete(exit);
             transaction.Commit();
         }
 }