private void SaveForm(bool isAutoSave) { try { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { LoadScanEntity loadScan = null; var bridgeID = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.BRIDGE_ID, ""); //try to look load up by gin tag number to update matching load // if (!isAutoSave) // loadScan = dp.LoadScanRepository.FindSingle(l => l.GinTagLoadNumber == GinTicketLoadNumber); if (loadScan == null) { loadScan = dp.LoadScanRepository.GetById(_loadScanId); loadScan.GinTagLoadNumber = GinTicketLoadNumber; } loadScan.BridgeID = bridgeID; if (TruckID == "-- Select One --") { _TruckID = ""; } loadScan.TruckID = TruckID; if (!isAutoSave) { loadScan.GinTagLoadNumber = GinTicketLoadNumber; } var grossWeight = 0.00M; var split1 = 0.00M; var split2 = 0.00M; if (decimal.TryParse(GrossWeight, out grossWeight)) { loadScan.GrossWeight = grossWeight; } if (decimal.TryParse(SplitWeight1, out split1)) { loadScan.SplitWeight1 = split1; } if (decimal.TryParse(SplitWeight2, out split2)) { loadScan.SplitWeight2 = split2; } loadScan.NetWeight = loadScan.GrossWeight - _tareWeight; loadScan.Latitude = dp.SettingsRepository.GetSettingDoubleValue(BridgeSettingKeys.LATITUDE); loadScan.Longitude = dp.SettingsRepository.GetSettingDoubleValue(BridgeSettingKeys.LONGITUDE); loadScan.PickedBy = PickedBy; loadScan.Processed = false; var status = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.TARGET_STATUS, "AT GIN"); if (status == "AT GIN") { loadScan.TargetStatus = ModuleStatus.AT_GIN; } else { loadScan.TargetStatus = ModuleStatus.ON_FEEDER; } loadScan.TrailerNumber = TrailerNumber; loadScan.Variety = Variety; loadScan.YardRow = YardLocation; if (AttendantChecked) { loadScan.SubmittedBy = "attendant"; } if (DriverChecked) { loadScan.SubmittedBy = "driver"; } loadScan.Client = Client; loadScan.Farm = Farm; loadScan.Field = Field; var moduleScanData = new ModuleScanData(); moduleScanData.Scans = new List <LoadModuleScan>(); moduleScanData.Scans.AddRange(Modules.ToList()); loadScan.SetSerializedModuleScanData(moduleScanData); dp.LoadScanRepository.Save(loadScan); dp.SaveChanges(); Messenger.Default.Send <LoadSavedMessage>(new LoadSavedMessage { Scan = loadScan }); } } catch (Exception exc) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { if (!isAutoSave) { System.Windows.MessageBox.Show("An error occured saving load. " + exc.Message); } })); Logging.Logger.Log(exc); } }
private void ExecuteCreateLoad() { ShowInputError = false; //TODO VALIDATE TICKET LOAD NUMBER EXISTS if (string.IsNullOrEmpty(GinTicketLoadNumber)) { ShowInputError = true; InputErrorMessage = "Please enter a gin ticket load number."; } if (!ShowInputError) { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var hasLoad = dp.LoadScanRepository.FindMatching(x => x.GinTagLoadNumber == GinTicketLoadNumber).Any(); if (hasLoad) { this.ExecuteLookupLoad(); return; } var bridgeID = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.BRIDGE_ID, ""); var lastLoadScan = new LoadScanEntity(); lastLoadScan.SubmittedBy = "attendant"; //always use a new load number otherwise a previous load //could get overwritten lastLoadScan.BridgeLoadNumber = dp.LoadScanRepository.LastLoadNumber() + 1; var scanData = new ModuleScanData(); scanData.Scans = new List <LoadModuleScan>(); lastLoadScan.SetSerializedModuleScanData(scanData); lastLoadScan.BridgeID = bridgeID; lastLoadScan.TruckID = ""; lastLoadScan.GinTagLoadNumber = GinTicketLoadNumber; lastLoadScan.GrossWeight = 0.00M; lastLoadScan.NetWeight = 0.00M; lastLoadScan.SplitWeight1 = 0.00M; lastLoadScan.SplitWeight2 = 0.00M; lastLoadScan.Latitude = dp.SettingsRepository.GetSettingDoubleValue(BridgeSettingKeys.LATITUDE); lastLoadScan.Longitude = dp.SettingsRepository.GetSettingDoubleValue(BridgeSettingKeys.LONGITUDE); lastLoadScan.TrailerNumber = ""; lastLoadScan.Variety = ""; lastLoadScan.YardRow = "IN FIELD"; lastLoadScan.PickedBy = ""; lastLoadScan.Client = ""; lastLoadScan.Farm = ""; lastLoadScan.Field = ""; var status = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.TARGET_STATUS, "AT GIN"); if (status == "AT GIN") { lastLoadScan.TargetStatus = ModuleStatus.AT_GIN; } else { lastLoadScan.TargetStatus = ModuleStatus.ON_FEEDER; } lastLoadScan.SubmittedBy = "attendant"; //lastLoadScan.SetSerializedModuleScanData(scanData); dp.LoadScanRepository.Save(lastLoadScan); dp.SaveChanges(); var vm = new LoadViewModel(NavService); NavService.ShowPage(PageType.LOAD_PAGE, false, (BasePageViewModel)vm); vm.Initialize(GinTicketLoadNumber, false, true); } } }