Пример #1
0
        private async Task LoadHardwares()
        {
            Hardwares.Clear();
            var collection = await DbHandler.Instance.GetHardwareCollection();

            Hardwares.AddRange(collection);
        }
Пример #2
0
        public async void PrepareView(Supplier supplier)
        {
            await LoadHardwares();

            Id                = supplier.Id;
            Name              = supplier.Name;
            Address           = supplier.Address;
            ContactMobileNo   = supplier.ContactMobileNo;
            ContactPersonName = supplier.ContactPersonName;
            CurrentHardware   = Hardwares.Where(h => h.SerialNo == supplier.HardwareSerial).FirstOrDefault();
            Comments          = supplier.Comments;
        }
Пример #3
0
            private void SetHardwares(object obj)
            {
                var type       = obj.GetType();
                var properties = type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

                foreach (var property in properties)
                {
                    if (property.PropertyType.GetInterface(nameof(IHardware)) == null)
                    {
                        continue;
                    }
                    if (!Hardwares.ContainsKey(property.PropertyType))
                    {
                        var message = $"Hardware type '{property.PropertyType.Name}' is not loaded for '{obj.GetType().Name}'";
                        Logger.Log(LogLevel.Fatal, message);
                        throw new InvalidOperationException(message);
                    }

                    Logger.Log(LogLevel.Ludacris, $"Hardware '{Hardwares[property.PropertyType].GetType().FullName}' injected to property '{property.Name}' on object '{obj.GetType().FullName}'");
                    property.SetValue(obj, Hardwares[property.PropertyType]);
                }
            }