Esempio n. 1
0
        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);
                    }));
                }
            }
            //}
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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);
                        }));
                    }
                    //}
                }
            });
        }
Esempio n. 4
0
        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);
                }
            }
        }