コード例 #1
0
        private void RefreshVisitors()
        {
            var visitors = _esClinicContext.Visitors.Include("Patient").ToList();

            Visitors.Clear();
            foreach (var visitor in visitors)
            {
                Visitors.Add(visitor);
            }
        }
コード例 #2
0
ファイル: Resource.cs プロジェクト: francotiveron/Arctic
 internal void Lock(Process owner)
 {
     if (_locked)
     {
         throw new InvalidOperationException("Lock Race condition");
     }
     ++LockNbr;
     Visitors.Add(owner);
     _locked = true;
 }
コード例 #3
0
ファイル: Admin.aspx.cs プロジェクト: ktotsuka/LobbyLogin
 private void UpdateVisitorList()
 {
     Visitors.Clear();
     using (var db = new VisitContext())
     {
         var query = from b in db.Visitors
                     orderby b.Visitor.LastName, b.Visitor.FirstName, b.Visitor.CompanyName
         select b;
         foreach (var b in query)
         {
             Visitors.Add(b);
         }
     }
 }
コード例 #4
0
        public string In(Interfaces.IUserAgent user, int seatIndex)
        {
            Protocol.Result result = new Protocol.Result();
            result.Success = true;

            if (user.Desk != null)
            {
                user.Desk.Exit(user);
            }
            for (int i = 0; i < Seats.Count; i++)
            {
                Interfaces.ISeat seat = Seats[i];
                if (seat.Index == seatIndex)
                {
                    lock (seat)
                    {
                        if (seat.User == null || seat.User == user)
                        {
                            if (user.Seat != null)
                            {
                                user.Seat.User = null;
                            }
                            seat.User = user;
                            user.Desk = this;
                            user.Seat = seat;
                            Room.UpdateDesk(this);
                        }
                        else
                        {
                            result.Success = false;
                            return("位置已经被占用!");
                        }
                    }
                }
            }
            lock (Visitors)
            {
                if (!Visitors.Contains(user))
                {
                    Visitors.Add(user);
                }
                System.Threading.Interlocked.Increment(ref mVersion);
            }
            return(null);
        }
コード例 #5
0
 public void OkPatient()
 {
     if (SelectedPatient == 0)
     {
         return;
     }
     try
     {
         var visitor = new Visitor()
         {
             PatientId = SelectedPatient
         };
         _esClinicContext.Visitors.Add(visitor);
         _esClinicContext.SaveChanges();
         visitor.Patient = _esClinicContext.Patients.First(p => p.PatientId == visitor.PatientId);
         Visitors.Add(visitor);
         Visitors.Refresh();
     }
     catch (Exception)
     {
         MessageBox.Show("Không thể bệnh nhân!");
     }
 }
コード例 #6
0
 public void AddVisitor(int Id, string Name)
 {
     Visitors.Add(new Visitor(Id, Name));
 }
コード例 #7
0
 public void AddVisitor(string Name)
 {
     Visitors.Add(new Visitor(Visitors.Count, Name));
 }
コード例 #8
0
 public void Enter(Visitor visitor)
 {
     Visitors.Add(visitor);
 }
コード例 #9
0
        public async Task FindSimilarFace()
        {
            try
            {
                var faceIdsToCompare  = new List <Guid>();
                var faceServiceClient = new FaceServiceClient(FaceApiKey);

                List <Guid> identifiedPeople = new List <Guid>();

                if (Visitors.Count > 0)
                {
                    foreach (var vis in Visitors)
                    {
                        var cnt = vis.FaceIds.Count > 3 ? 3 : vis.FaceIds.Count;

                        for (int i = 0; i < cnt; i++)
                        {
                            faceIdsToCompare.Add(vis.FaceIds[i]);
                        }
                    }
                }
                else
                {
                    faceIdsToCompare = DetectedFaceIds;
                }

                foreach (var currentFaceId in CurrentFaceIds)
                {
                    var similarFace = await faceServiceClient.FindSimilarAsync(currentFaceId, faceIdsToCompare.ToArray(), 10);

                    if (similarFace.Count() > 0)
                    {
                        foreach (var visitor in Visitors)
                        {
                            if (visitor.FaceIds.AsParallel().Any(x => similarFace.AsParallel().Any(y => y.FaceId == x)))
                            {
                                if (!visitor.FaceIds.Contains(currentFaceId))
                                {
                                    visitor.FaceIds.Add(currentFaceId);
                                    visitor.LastSeen = DateTime.Now;
                                }

                                CurrentVisitorId = visitor.Id;
                            }

                            identifiedPeople.AddRange(visitor.FaceIds);
                        }

                        if (!identifiedPeople.AsParallel().Any(x => similarFace.AsParallel().Any(y => y.FaceId == x)))
                        {
                            var cnt = Visitors.Count;

                            var newVisitor = new Visitor
                            {
                                Id      = cnt + 1,
                                FaceIds = new List <Guid> {
                                    currentFaceId
                                },
                                LastSeen     = DateTime.Now,
                                DwellingTime = new Stopwatch()
                            };

                            CurrentVisitorId = newVisitor.Id;
                            Visitors.Add(newVisitor);
                        }
                    }
                    else
                    {
                        var cnt = Visitors.Count;

                        var newVisitor = new Visitor
                        {
                            Id      = cnt + 1,
                            FaceIds = new List <Guid> {
                                currentFaceId
                            },
                            LastSeen     = DateTime.Now,
                            DwellingTime = new Stopwatch()
                        };

                        CurrentVisitorId = newVisitor.Id;
                        Visitors.Add(newVisitor);
                    }
                }
            }
            catch (FaceAPIException ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.ErrorMessage);
            }
            catch (Exception ex)
            {
            }
        }