/// <summary> /// Function UpdatePortStorageDateOutProcessignDetails to get the vehicle details /// </summary> /// <param name="obj"></param> /// <returns>NA</returns> /// <createdBy></createdBy> /// <createdOn>May-11,2016</createdOn> public void UpdateAndGetPortStorageDateOutProcessignDetails(object obj) { CommonSettings.logger.LogInfo(typeof(string), string.Format(CultureInfo.InvariantCulture, Resources.loggerMsgStart, DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), MethodBase.GetCurrentMethod().Name)); try { if (string.IsNullOrEmpty(Vin)) { MessageBox.Show(Resources.msgVINReq, Resources.msgTitleMessageBox); return; } // Cannot allow multiples. if (RequestProcessingList.Any(it => it.Vin.Contains(Vin))) { MessageBox.Show(Resources.msgVehicleListAlready, Resources.msgTitleMessageBoxVehicleList); ClearFiled(); return; } // If there are no vehicles matching VIN, alert, and end. List <VehicleProp> vehiclesMatchingVIN = CheckMultipleVecheleDetailByVIN(Vin.ToUpper()); if (vehiclesMatchingVIN.Any() == false) { MessageBox.Show(Resources.msgProcessingVINFound, Resources.msgTitleMessageBoxVehicleNotFound); return; } // Create LINQ statement grabbing first two vehicles matching VIN that do not have date out. string shortVin = Vin.Substring(0, 8); IEnumerable <VehicleProp> firstTwoVehiclesWithoutDateOut = vehiclesMatchingVIN.Where(x => x.DateOut == null).Take(2); // If there are no vehicles that have no date out, alert with information on vehicle that does, and end. if (firstTwoVehiclesWithoutDateOut.Any() == false) { VehicleProp vehicleFound = GetVecheleDetailByVIN(shortVin); MessageBox.Show($"{Resources.msgDateoutProcess + vehicleFound.Name} IN: {vehicleFound.DateIn} REQ: {vehicleFound.DateRequested} OUT: {vehicleFound.DateOut}", "Vehicle Not Found"); ClearFiled(); return; } // If there are multiple vehicles matching VIN with no date out, alert, and end. if (firstTwoVehiclesWithoutDateOut.Count() == 2) { MessageBox.Show(Resources.msgMultipleVINProcessing, Resources.msgTitleMessageBoxMultipleVIN); return; } // Update vehicle details to make date out now. var updateVehicle = new VehicleProp { VehiclesID = firstTwoVehiclesWithoutDateOut.First().VehiclesID, Vin = Vin.Substring(0, 8), DateOut = DtDateOut, Note = Note, }; int value = _serviceInstance.UpdatePortStorageDateOutProcessignDetails(updateVehicle); // If update was successful, add vehicle to list for display on grid. if (value > 0) { VehicleProp foundVehicle = _serviceInstance.GetPortStorageDateOutProcessignDetails(shortVin).First(); VehicleModel vehicleModel = new VehicleModel { Vin = foundVehicle.Vin, Name = foundVehicle.Name, DateIn = foundVehicle.DateIn, DateOut = DtDateOut, MakeModel = foundVehicle.MakeModel, VehiclesID = foundVehicle.VehiclesID, BayLocation = foundVehicle.BayLocation, VehicleStatus = foundVehicle.VehicleStatus, }; RequestProcessingList.Add(vehicleModel); } ClearFiled(); Scrolled = "NOTSCROLLED"; } catch (Exception ex) { LogHelper.LogErrorToDb(ex); bool displayErrorOnUI = false; CommonSettings.logger.LogError(this.GetType(), ex); if (displayErrorOnUI) { throw; } } finally { CommonSettings.logger.LogInfo(typeof(string), string.Format(CultureInfo.InvariantCulture, Resources.loggerMsgEnd, DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), MethodBase.GetCurrentMethod().Name)); } }