private void ProcessLoadUnloadComplete(AllAggEventsProcessComplete data) { //if (!data.IsLoading) //finished processing all modules so reload pickup list window to update totals and push pins //{ if (_windowService.IsWindowOpen(WindowType.LoadingWindow)) { _windowService.CloseModalWindow(WindowType.LoadingWindow); } if (!_windowService.IsWindowOpen(WindowType.LoadingIncorrectModuleWindow)) { if (_windowService.IsWindowOpen(WindowType.PickupWindow) && this.SelectedItem != null && !string.IsNullOrEmpty(this.SelectedItem.ListID)) { _windowService.CloseModalWindow(WindowType.PickupWindow); System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { PickUpListViewModel vm = SimpleIoc.Default.GetInstance <PickUpListViewModel>(); vm.ListID = this.SelectedItem.ListID; vm.InitiatingEvent = null; _windowService.ShowModalWindow(WindowType.PickupWindow, vm); })); } } //} }
private void ExecuteOpenFieldCommand() { if (!_windowService.IsWindowOpen(WindowType.PickupWindow) && this.SelectedItem != null && !string.IsNullOrWhiteSpace(this.SelectedItem.ListID)) { PickUpListViewModel vm = SimpleIoc.Default.GetInstance <PickUpListViewModel>(); vm.ListID = this.SelectedItem.ListID; vm.InitiatingEvent = null; //DataProviders.AggregateDataProvider.ClearBuffer(); //DataProviders.QuadratureEncoderDataProvider.ClearBuffer(); //DataProviders.GPSDataProvider.ClearBuffer(); _windowService.ShowModalWindow(WindowType.PickupWindow, vm); } }
private void ProcessTagLoadingMessage(TagLoadingMessage msg) { Task.Run(() => { using (var uow = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { DateTime gpsStart = DateTime.Now.ToUniversalTime().AddSeconds(-4); DateTime gpsEnd = DateTime.Now.ToUniversalTime(); double latitude = GPSDataProvider.GetAverageLatitude(gpsStart, gpsEnd); double longitude = GPSDataProvider.GetAverageLongitude(gpsStart, gpsEnd); //PickupListEntity pickupList = uow.PickupListRepository.GetListIDWithSerialNumber(msg.SerialNumber); //IF LOADING WINDOW NOT OPEN AND WE ARE ON THE GIN YARD /*if (!_windowService.IsWindowOpen(WindowType.LoadingWindow) && (uow.SettingsRepository.CoordsAtFeeder(latitude, longitude) || uow.SettingsRepository.CoordsOnGinYard(latitude, longitude))) * { * if (!_windowService.IsWindowOpen(WindowType.LoadingAtGin)) * { * Logging.Logger.Log("DEBUG", "Processing load message from home view model for gin load."); * //we are at the gin yard or feeder so just show loading window with no list checks * System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => * { * LoadingAtGinViewModel vm = SimpleIoc.Default.GetInstance<LoadingAtGinViewModel>(); * vm.SerialNumber = msg.SerialNumber; * vm.Initialize(); * _windowService.ShowModalWindow(WindowType.LoadingAtGin, vm); * })); * } * else * { * System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => * { * LoadingAtGinViewModel vm = SimpleIoc.Default.GetInstance<LoadingAtGinViewModel>(); * vm.AddModule(msg.SerialNumber); * })); * } * } * else * {*/ Logging.Logger.Log("DEBUG", "Processing load message from home view model."); //if we're in the field then if (!_windowService.IsWindowOpen(WindowType.PickupWindow)) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { PickUpListViewModel vm = SimpleIoc.Default.GetInstance <PickUpListViewModel>(); if (this.SelectedItem != null) { vm.ListID = this.SelectedItem.ListID; } else { vm.ListID = GUIDS.UNASSIGNED_LIST_ID; } vm.InitiatingEvent = msg; _windowService.ShowModalWindow(WindowType.PickupWindow, vm); })); } //} } }); }
private void ExecuteSaveCommand() { refreshErrorState(); if (!HasErrors) { using (var uow = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { string clientName = ""; if (ShowNewProducerText) { clientName = NewProducerText.Trim(); } else { clientName = SelectedProducer.DisplayText; } string farmName = ""; if (ShowNewFarmText) { farmName = NewFarmText.Trim(); } else { farmName = SelectedFarm.DisplayText; } string fieldName = ""; if (ShowFieldText) { fieldName = NewFieldText.Trim(); } else { fieldName = SelectedField.DisplayText.Trim(); } var coords = GPSDataProvider.GetLastCoords(); double lat = CottonDBMS.DataModels.Helpers.GPSHelper.SafeLat(coords); double lng = CottonDBMS.DataModels.Helpers.GPSHelper.SafeLong(coords); var client = uow.ClientRepository.EnsureClientCreated(clientName, InputSource.TRUCK); uow.SaveChanges(); var farm = uow.FarmRepository.EnsureFarmCreated(client, farmName, InputSource.TRUCK); uow.SaveChanges(); var field = uow.FieldRepository.EnsureFieldCreated(farm, fieldName, InputSource.TRUCK); field.Latitude = lat; field.Longitude = lng; uow.SaveChanges(); var currentTruck = uow.SettingsRepository.GetCurrentTruck(); PickupListEntity list = null; if (ShowListText) { list = new PickupListEntity(); list.Id = Guid.NewGuid().ToString(); list.Created = DateTime.UtcNow; list.FieldId = field.Id; list.Latitude = lat; list.Longitude = lng; list.Name = ListName; list.PickupListStatus = PickupListStatus.OPEN; list.Source = InputSource.TRUCK; list.SyncedToCloud = false; list.AssignedModules = new List <ModuleEntity>(); list.AssignedTrucks = new List <TruckEntity>(); list.DownloadedToTrucks = new List <TruckEntity>(); if (uow.SettingsRepository.CoordsOnGinYard(lat, lng) || uow.SettingsRepository.CoordsAtFeeder(lat, lng)) { list.Destination = PickupListDestination.GIN_FEEDER; } else { list.Destination = PickupListDestination.GIN_YARD; } if (currentTruck != null) { list.AssignedTrucks.Add(currentTruck); list.DownloadedToTrucks.Add(currentTruck); } uow.PickupListRepository.Add(list); uow.SaveChanges(); } else { list = uow.PickupListRepository.GetById(SelectedPickupList.ID, "Field.Farm.Client", "AssignedModules", "DownloadedToTrucks", "AssignedTrucks"); } GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <PickupListAddedMessage>(new PickupListAddedMessage { Id = list.Id }); //assign all serial numbers on truck to the new list uow.PickupListRepository.MoveModulesToList(list, AggregateDataProvider.SerialNumbersOnTruck, lat, lng); _windowService.CloseModalWindow(WindowType.ChangeListWindow); _windowService.CloseModalWindow(WindowType.LoadingIncorrectModuleWindow); _windowService.CloseModalWindow(WindowType.PickupWindow); //re-open pickup window with new list assignment PickUpListViewModel vm = SimpleIoc.Default.GetInstance <PickUpListViewModel>(); vm.ListID = list.Id; vm.InitiatingEvent = null; _windowService.ShowModalWindow(WindowType.PickupWindow, vm); } } }