Example #1
0
        private async Task ExecuteRefresh()
        {
            try
            {
                MaterialViewModel c = SelectedPlace;
                var mats            = await _warehouse.DBService.GetPlacesMaterialID(_excludeWout);

                PlaceList.Clear();
                foreach (var p in mats)
                {
                    PlaceList.Add(new MaterialViewModel {
                        Location = p.Location, ID = p.ID, Size = p.Size, Weight = p.Weight
                    });
                }
                foreach (var mvm in PlaceList)
                {
                    mvm.Initialize(_warehouse);
                }
//                RaisePropertyChanged("PlaceList");
                if (c != null)
                {
                    SelectedPlace = PlaceList.FirstOrDefault(p => p.ID == c.ID);
                }
            }
            catch (Exception e)
            {
                _warehouse.AddEvent(Database.Event.EnumSeverity.Error, Database.Event.EnumType.Exception,
                                    string.Format("{0}.{1}: {2}", this.GetType().Name, (new StackTrace()).GetFrame(0).GetMethod().Name, e.Message));
            }
        }
Example #2
0
        /// <summary>Update Data event, runs every time</summary>
        /// <param name="something"></param>
        private async void UpdateData(string something)
        {
            using (var db = new MainDbContext())
            {
                var places =
                    await db.Locations.Where(loc => loc.Devices.Count > 0).Include(loc => loc.CropCycles).ToListAsync();

                var cropTypeCache = await db.CropTypes.ToListAsync();

                foreach (var cropType in cropTypeCache)
                {
                    if (_cropTypeCache.Any(ct => ct.Key.Equals(cropType.Name.ToLower())) == false)
                    {
                        var pair = new KeyValuePair <string, CropType>(cropType.Name.ToLower(), cropType);
                        _cropTypeCache.Add(pair);
                    }
                }

                foreach (var loc in places)
                {
                    var tuple = PlaceList.FirstOrDefault(ct => ct.Location.Equals(loc));
                    if (tuple == null)
                    {
                        tuple = new PlaceTuple {
                            Location = loc
                        };
                        PlaceList.Add(tuple);
                    }

                    var runningCropCycle = loc.CropCycles.FirstOrDefault(cc => cc.EndDate == null);
                    if (runningCropCycle != null)
                    {
                        tuple.DisplayName = loc.Name + " - already monitoring " + runningCropCycle.CropTypeName +
                                            " of variety " + runningCropCycle.CropVariety;
                        tuple.IsVacant = false;
                    }
                    else
                    {
                        tuple.DisplayName = loc.Name + " - Avaliable";
                        tuple.IsVacant    = true;
                    }
                }
                OnPropertyChanged(nameof(PlaceList));
            }
        }