コード例 #1
0
        public BookingSavedStatus Save(VehichleDataDb data)
        {
            DateTime dateTime = System.DateTime.Now;

            string query = String.Format(INSERT_FULL_FORM_DATA,
                                         data.VehichleNumber, data.VehichleWeight, data.VehichleType, data.ParkingLotId, data.CustomerFullName,
                                         data.ContactNumber, dateTime.ToString("yyyy-MM-dd HH:MM"));

            BookingSavedStatus bookingSavedStatus = new BookingSavedStatus();

            try
            {
                ExecuteQuerry(query);
                bookingSavedStatus.IsSaved = true;
            }
            catch (Exception ex)
            {
                _logger.WriteLogs(string.Format(_logPath + "{0}\\PerchedPeackockLogs.txt", Environment.UserName), ex.Message);
                bookingSavedStatus.IsSaved = false;
                return(bookingSavedStatus);
            }

            ParkingReceipt parkingReceipt = PrepareParkingReceipt(new string[] { data.VehichleNumber, data.entryDateTime });

            bookingSavedStatus.ParkingReceipt = parkingReceipt;
            return(bookingSavedStatus);
        }
コード例 #2
0
        private ParkingReceipt PrepareParkingReceipt(string[] whereClause)
        {
            ParkingReceipt parkingReceipt = new ParkingReceipt();
            string         query          = string.Format(GET_PARKING_DETAILS_BY_VEHICHLE_NUMBER_AND_DATE, whereClause[0]);

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                connection.Open();
                using (SQLiteCommand command = connection.CreateCommand())
                {
                    command.CommandText = query;
                    SQLiteDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        parkingReceipt.Name           = reader["customerName"].ToString();
                        parkingReceipt.ParkingId      = reader["parkingId"].ToString();
                        parkingReceipt.ParkingLotId   = reader["parkingLotId"].ToString();
                        parkingReceipt.EntryDateTime  = reader["entryDateTime"].ToString();
                        parkingReceipt.VehichleNumber = reader["VehichleNumber"].ToString();
                    }
                    connection.Close();
                }
            }
            return(parkingReceipt);
        }
コード例 #3
0
        public Invoice Checkout(ParkingReceipt parkingReceipt)
        {
            DateTime currentTime = _timeService.GetCurrentTime();
            TimeSpan totalTimeParked = currentTime - parkingReceipt.TimeParked;

            decimal amountToPay = _priceCalculator.Calculate(totalTimeParked);

            return new Invoice {HoursParked = totalTimeParked.Hours, MinutesParked = totalTimeParked.Minutes, TotalAmount = amountToPay};
        }
        public IParkingReceipt GenerateParkingCharge(DateTime entry, DateTime exit)
        {
            var receipt = new ParkingReceipt {
                ParkingName = "No Charge", ParkingPrice = 0, Erred = true, RateType = RateType.NONE
            };

            if (entry >= exit)
            {
                return(receipt);
            }
            return(_IParkingRateHandlersSetting.Set.GetParkingCharges(entry, exit));
        }