Exemplo n.º 1
0
        public LockDto GetLockByPatientId(string patientId)
        {
            var sync = (from s in _dbContext.Set <Sync>()
                        join u in _dbContext.Set <User>() on s.Owner equals u.UniqueID
                        select new SyncDto
            {
                OrderID = s.OrderID,
                SyncType = s.SyncType,
                Owner = s.Owner,
                OwnerName = u.LocalName,
                LoginName = u.LoginName,
                OwnerIP = s.OwnerIP,
                CreateTime = s.CreateTime,
                ModuleID = s.ModuleID,
                PatientID = s.PatientID,
                AccNo = s.AccNo,
                PatientName = s.PatientName,
                Counter = s.Counter,
                ProcedureIDs = s.ProcedureIDs,
                Domain = s.Domain
            }).FirstOrDefault();

            LockDto lockitem = new LockDto();

            if (sync != null)
            {
                lockitem.IsLock = true;
                lockitem.Lock   = sync;
                return(lockitem);
            }
            return(lockitem);
        }
Exemplo n.º 2
0
        private static void CalculatePartialMatches(LockDto lockDto, IReadOnlyList <string> searchTerms, IReadOnlyList <string> fullyMatchedProperties)
        {
            foreach (var searchTerm in searchTerms)
            {
                if (!fullyMatchedProperties.Contains(nameof(lockDto.Name)) &&
                    (lockDto.Name?.ContainsInvariant(searchTerm) ?? false))
                {
                    lockDto.Weight += NameWeight;
                }

                if (!fullyMatchedProperties.Contains(nameof(lockDto.Description)) &&
                    (lockDto.Description?.ContainsInvariant(searchTerm) ?? false))
                {
                    lockDto.Weight += DescriptionWeight;
                }

                if (!fullyMatchedProperties.Contains(nameof(lockDto.Floor)) &&
                    (lockDto.Floor?.ContainsInvariant(searchTerm) ?? false))
                {
                    lockDto.Weight += FloorWeight;
                }

                if (!fullyMatchedProperties.Contains(nameof(lockDto.RoomNumber)) &&
                    (lockDto.RoomNumber?.ContainsInvariant(searchTerm) ?? false))
                {
                    lockDto.Weight += RoomWNumberWeight;
                }

                if (!fullyMatchedProperties.Contains(nameof(lockDto.SerialNumber)) &&
                    (lockDto.SerialNumber?.ContainsInvariant(searchTerm) ?? false))
                {
                    lockDto.Weight += SerialNumberWeight;
                }
            }
        }
Exemplo n.º 3
0
        private void Initialize(LockOptions lockOptions, IGpioPinFactory gpioPinFactory, LockDbContext lockDbContext)
        {
            DateTime now = DateTime.Now;

            async Task InitializeLock(LockConfiguration lockConfiguration)
            {
                LockDto lockDto = await lockDbContext.Locks.FindAsync(lockConfiguration.Id);

                LockState mode     = lockDto?.State ?? LockState.Locked;
                bool      timedOut = lockDto?.Timeout <= now;

                if (timedOut)
                {
                    mode = mode.Toggle();
                }
                Lock @lock = new Lock(lockConfiguration.Id, gpioPinFactory.CreatePin((BcmPin)lockConfiguration.Pin), (LockState)(-1));

                if (!timedOut)
                {
                    @lock.Timeout = lockDto?.Timeout;
                }
                await SetAsync(@lock, mode, "INITIALIZE");

                IdToLock.Add(@lock.Id, @lock);
            }

            Task.WaitAll(lockOptions.LockConfigurations.Select(InitializeLock).ToArray());
            UpdateTimerAsync().Wait();
        }
Exemplo n.º 4
0
        private static void CalculateTypeWeight(LockDto lockDto, IReadOnlyList <string> searchTerms)
        {
            var lockTypeString = lockDto.Type.ToString("G");

            if (searchTerms.Any(x => x.ContainsInvariant(lockTypeString)))
            {
                lockDto.Weight += TypeWeight * FullMatchMultiplier;
            }
            else if (searchTerms.Any(x => lockTypeString.ContainsInvariant(x)))
            {
                lockDto.Weight += TypeWeight;
            }
        }
        // Extract relevant Locks
        private void GetRelevantLocks()
        {
            // check all the Locks
            foreach (var lockObj in _dataService.GetEntitiesData().locks)
            {
                // calculate the weight of a Lock record
                lockObj.CalculateEntityWeight(_searchText);

                // if weight is not 0 then add it in the result array
                if (lockObj.Weight > 0)
                {
                    var lockTemp = new LockDto();
                    lockTemp.Put(lockObj);
                    _searchResults.Add(lockTemp);
                    // for next search make the calculated weight zero
                    lockObj.Weight = 0;
                }
            }
        }
Exemplo n.º 6
0
        private async Task UpdateLockDto(string id, LockState state, DateTime?timeout)
        {
            LockDto lockDto = LockDbContext.Locks.Find(id);

            if (lockDto == null)
            {
                lockDto = new LockDto()
                {
                    Id      = id,
                    State   = state,
                    Timeout = timeout
                };
                LockDbContext.Add(lockDto);
            }
            else
            {
                lockDto.State   = state;
                lockDto.Timeout = timeout;
                LockDbContext.Update(lockDto);
            }
            await LockDbContext.SaveChangesAsync();
        }
Exemplo n.º 7
0
        private static IReadOnlyList <string> CalculateFullMatch(LockDto lockDto, string searchQuery)
        {
            var fullyMatchedProperties = new List <string>();

            if (searchQuery.ContainsInvariant(lockDto.Name))
            {
                lockDto.Weight += NameWeight * FullMatchMultiplier;
                fullyMatchedProperties.Add(nameof(lockDto.Name));
            }

            if (searchQuery.ContainsInvariant(lockDto.Description))
            {
                lockDto.Weight += DescriptionWeight * FullMatchMultiplier;
                fullyMatchedProperties.Add(nameof(lockDto.Description));
            }

            if (searchQuery.ContainsInvariant(lockDto.Floor))
            {
                lockDto.Weight += FloorWeight * FullMatchMultiplier;
                fullyMatchedProperties.Add(nameof(lockDto.Floor));
            }

            if (searchQuery.ContainsInvariant(lockDto.RoomNumber))
            {
                lockDto.Weight += RoomWNumberWeight * FullMatchMultiplier;
                fullyMatchedProperties.Add(nameof(lockDto.RoomNumber));
            }

            if (searchQuery.ContainsInvariant(lockDto.SerialNumber))
            {
                lockDto.Weight += SerialNumberWeight * FullMatchMultiplier;
                fullyMatchedProperties.Add(nameof(lockDto.SerialNumber));
            }

            return(fullyMatchedProperties);
        }
Exemplo n.º 8
0
 public LockViewModel()
 {
     Lock = new LockDto();
 }
Exemplo n.º 9
0
 public void Post([FromBody] LockDto lockDto)
 {
     lockService.Register(lockDto.Id, lockDto.Name);
 }