コード例 #1
0
        /// <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));
            }
        }