コード例 #1
0
 /// <summary>
 /// Function For Unpark Api.
 /// </summary>
 /// <param name="VehicalNumber"></param>
 /// <returns></returns>
 public ParkingDetails Unpark(string VehicalNumber)
 {
     try
     {
         ParkingDetails vehicalExists = dBContext.ParkingDetails.Where <ParkingDetails>
                                            (p => p.VehicalNumber.Equals(VehicalNumber)).FirstOrDefault();
         if (vehicalExists != null)
         {
             if (vehicalExists.Status == "Parked")
             {
                 vehicalExists.UnparkDate = DateTime.Now;
                 vehicalExists.TotalTime  = vehicalExists.UnparkDate.Subtract(vehicalExists.ParkingDate).TotalHours;
                 double Amount = vehicalExists.TotalTime * RatePerHour;
                 vehicalExists.TotalAmount = Amount > RatePerHour ? Amount : RatePerHour;
                 vehicalExists.Status      = "Unparked";
                 vehicalExists.ParkingSlot = null;
                 dBContext.SaveChanges();
                 return(vehicalExists);
             }
             else if (vehicalExists.Status == "Unparked")
             {
                 vehicalExists.Status = "!Unparked";
             }
             return(vehicalExists);
         }
         else
         {
             return(vehicalExists = null);
         }
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #2
0
        /// <summary>
        /// This method used for get details by vehicle type.
        /// </summary>
        /// <param name="vehicleType">Vehicle type.</param>
        /// <returns>Parking details.</returns>
        public List <ParkingDetails> GetDetailsByVehicleType(int vehicleType)
        {
            try
            {
                using (this.conn)
                {
                    List <ParkingDetails> parkingData = new List <ParkingDetails>();
                    SqlCommand            cmd         = new SqlCommand("spGetVehicleByVehicleType", this.conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Vehicle_Type", vehicleType);
                    this.conn.Open();
                    SqlDataReader sqlDataReader = cmd.ExecuteReader();
                    if (sqlDataReader.HasRows)
                    {
                        while (sqlDataReader.Read())
                        {
                            ParkingDetails parkingDetails = new ParkingDetails();
                            parkingDetails = this.VehicleDetails(sqlDataReader);
                            parkingData.Add(parkingDetails);
                        }

                        this.conn.Close();
                        return(parkingData);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
コード例 #3
0
        /// <summary>
        /// This method used for delete data from slot number.
        /// </summary>
        /// <param name="slotNumber">Slot number.</param>
        /// <returns>Parking details.</returns>
        public ParkingDetails DeleteDetailsBySlotNumber(int slotNumber)
        {
            try
            {
                using (this.conn)
                {
                    ParkingDetails parkingDetails = new ParkingDetails();
                    SqlCommand     cmd            = new SqlCommand("spDeleteVehicleBySlotNumber", this.conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@SlotNumber", slotNumber);
                    this.conn.Open();
                    SqlDataReader sqlDataReader = cmd.ExecuteReader();
                    if (sqlDataReader.HasRows)
                    {
                        while (sqlDataReader.Read())
                        {
                            parkingDetails = this.VehicleDetails(sqlDataReader);
                        }

                        this.conn.Close();
                        return(parkingDetails);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
コード例 #4
0
        public string PutParking(ParkingDetails p, int id)
        {
            try
            {
                var a = (from pd in es.Parking_Details where pd.Parking_ID == id select pd).SingleOrDefault();
                if (p == null)
                {
                    return("Invalid id");
                }
                else
                {
                    a.Vechile_Number = p.Vechile_Number;
                    a.Visitor_ID     = p.Visitor_ID;

                    var res = es.SaveChanges();
                    if (res > 0)
                    {
                        return("Data Updated");
                    }
                }
                return("Error in data Updating");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #5
0
        /// <summary>
        /// This method used for get all parking vehicles data.
        /// </summary>
        /// <returns>All parking vehicles data.</returns>
        public List <ParkingDetails> GetAllParkingVehiclesData()
        {
            try
            {
                using (this.conn)
                {
                    List <ParkingDetails> parkingData = new List <ParkingDetails>();
                    SqlCommand            cmd         = new SqlCommand("spGetParkingVehiclesData", this.conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    this.conn.Open();
                    SqlDataReader sqlDataReader = cmd.ExecuteReader();
                    if (sqlDataReader.HasRows)
                    {
                        while (sqlDataReader.Read())
                        {
                            ParkingDetails parkingDetails = new ParkingDetails();
                            parkingDetails = this.VehicleDetails(sqlDataReader);
                            parkingData.Add(parkingDetails);
                        }

                        this.conn.Close();
                        return(parkingData);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
コード例 #6
0
 /// <summary>
 ///  database connection get specific parking details
 /// </summary>
 /// <param name="ParkingID">Get specific parking details</param>
 /// <returns></returns>
 public ParkingDetails GetspecificParkingDetails(int ParkingID)
 {
     try
     {
         ParkingDetails parking    = new ParkingDetails();
         SqlConnection  connection = DatabaseConnection();
         //for store procedure and connection to database
         SqlCommand command = StoreProcedureConnection("spSpecificParkingDetails", connection);
         command.Parameters.Add("@ParkingID", SqlDbType.Int).Value = ParkingID;
         connection.Open();
         //Read data from database
         SqlDataReader Response = command.ExecuteReader();
         while (Response.Read())
         {
             parking.ParkingID           = Convert.ToInt32(Response["ParkingID"]);
             parking.UserID              = Convert.ToInt32(Response["UserID"]);
             parking.VehicleOwnerAddress = Response["VehicleOwnerAddress"].ToString();
             parking.VehicleNumber       = Response["VehicleNumber"].ToString();
             parking.VehicalBrand        = Response["VehicalBrand"].ToString();
             parking.VehicalColor        = Response["VehicalColor"].ToString();
             parking.ParkingSlot         = Response["ParkingSlot"].ToString();
             parking.ParkingUserCategory = Response["ParkingUserCategory"].ToString();
             parking.ParkingStatus       = Response["ParkingStatus"].ToString();
             parking.Charges             = Response["Charges"].ToString();
             parking.EntryTime           = Convert.ToDateTime(Response["EntryTime"]);
             parking.ExitTime            = Convert.ToDateTime(Response["ExitTime"]);
         }
         connection.Close();
         return(parking);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
コード例 #7
0
 private ParkResponse ParkedVehicleResponse(ParkingDetails parkingDetails)
 {
     try
     {
         ParkResponse responseData = new ParkResponse
         {
             ReceiptNumber = parkingDetails.ReceiptNumber,
             OwnerName     = parkingDetails.OwnerName,
             VehicleNumber = parkingDetails.VehicleNumber,
             VehicleBrand  = parkingDetails.VehicleBrand,
             Color         = parkingDetails.Color,
             Disability    = parkingDetails.Disability,
             AttendantName = parkingDetails.AttendantName,
             ParkingDate   = parkingDetails.ParkingDate,
             ParkingSlot   = parkingDetails.ParkingSlot
         };
         if (responseData != null)
         {
             return(responseData);
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
コード例 #8
0
 private UnParkResponse UnParkedVehicleResponse(ParkingDetails unParkData, UnParkedDetails unParkedData)
 {
     try
     {
         UnParkResponse responseData = new UnParkResponse
         {
             ReceiptNumber = unParkData.ReceiptNumber,
             OwnerName     = unParkData.OwnerName,
             VehicleNumber = unParkData.VehicleNumber,
             VehicleBrand  = unParkData.VehicleBrand,
             Color         = unParkData.Color,
             IsParked      = unParkData.IsParked,
             Disability    = unParkData.Disability,
             AttendantName = unParkData.AttendantName,
             ParkingDate   = unParkData.ParkingDate,
             UnParkedDate  = unParkedData.UnParkedDate,
             ParkingSlot   = unParkData.ParkingSlot,
             TotalTime     = unParkedData.TotalTime,
             TotalAmt      = unParkedData.TotalAmt
         };
         if (responseData != null)
         {
             return(responseData);
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
コード例 #9
0
        /// <summary>
        /// This method used for park vehicle.
        /// </summary>
        /// <param name="parking">Parking object.</param>
        /// <returns>Parking <see cref="object"/>.</returns>
        public ParkingDetails ParkVehicle(Parking parking)
        {
            try
            {
                using (this.conn)
                {
                    ParkingDetails parkingDetails = new ParkingDetails();
                    SqlCommand     cmd            = new SqlCommand("spPark", this.conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Slot_Number", parking.SlotNumber);
                    cmd.Parameters.AddWithValue("@Vehicle_Number", parking.VehicleNumber);
                    cmd.Parameters.AddWithValue("@Vehicle_Type", parking.VehicleType);
                    cmd.Parameters.AddWithValue("@Parking_Type", parking.ParkingType);
                    cmd.Parameters.AddWithValue("@Driver_Type", parking.DriverType);
                    this.conn.Open();
                    SqlDataReader sqlDataReader = cmd.ExecuteReader();
                    if (sqlDataReader.HasRows)
                    {
                        while (sqlDataReader.Read())
                        {
                            parkingDetails = this.VehicleDetails(sqlDataReader);
                        }

                        this.conn.Close();
                        return(parkingDetails);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
コード例 #10
0
        /// <summary>
        /// Function For Parking Vehical.
        /// </summary>
        /// <param name="parkingDetails"></param>
        /// <returns></returns>
        public ParkingDetails Park(ParkingDetails parkingDetails)
        {
            try
            {
                //Checks If Vehical Is Already Parked.
                var parkingDetailsExists = dBContext.ParkingDetails.Where <ParkingDetails>
                                               (p => p.VehicalNumber.Equals(parkingDetails.VehicalNumber) && p.Brand.Equals(parkingDetails.Brand)).FirstOrDefault();

                if (parkingDetailsExists == null)
                {
                    //Assiging ParkingSlot
                    parkingDetails.ParkingSlot = AssignSlot(parkingDetails);

                    //Checking Which Parking Slot is Assigned.
                    if (parkingDetails.ParkingSlot == "A" || parkingDetails.ParkingSlot == "B" ||
                        parkingDetails.ParkingSlot == "C" || parkingDetails.ParkingSlot == "D")
                    {
                        //Setting Status and DateTime
                        parkingDetails.Status      = "Parked";
                        parkingDetails.ParkingDate = DateTime.Now;

                        //Updating DataBase With The Data.
                        dBContext.ParkingDetails.Add(parkingDetails);
                        dBContext.SaveChanges();
                    }
                    return(parkingDetails);
                }
                else if (parkingDetailsExists.Status == "Unparked")
                {
                    //Assiging ParkingSlot
                    parkingDetailsExists.ParkingSlot = AssignSlot(parkingDetails);

                    //Checking Which Parking Slot is Assigned.
                    if (parkingDetailsExists.ParkingSlot == "A" || parkingDetailsExists.ParkingSlot == "B" ||
                        parkingDetailsExists.ParkingSlot == "C" || parkingDetailsExists.ParkingSlot == "D")
                    {
                        //Setting Status and DateTime
                        parkingDetailsExists.Status      = "Parked";
                        parkingDetailsExists.ParkingDate = DateTime.Now;
                        parkingDetailsExists.TotalTime   = 0;
                        parkingDetailsExists.TotalAmount = 0;
                        parkingDetailsExists.DriverName  = parkingDetails.DriverName;

                        //Updating DataBase With The Data.
                        //dBContext.ParkingDetails.Add(parkingDetails);
                        dBContext.SaveChanges();
                    }
                    return(parkingDetailsExists);
                }
                else
                {
                    return(parkingDetailsExists = null);
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
コード例 #11
0
        public IActionResult Park([FromBody] ParkingDetails parkingDetails)
        {
            try
            {
                //Fetching Claim Form JWT.
                var identity = HttpContext.User.Identity as ClaimsIdentity;
                parkingDetails.DriverName = identity.Name;

                //Throws Custom Exception If Fields are Null.
                if (parkingDetails.VehicalOwnerName == null || parkingDetails.VehicalNumber == null ||
                    parkingDetails.Brand == null || parkingDetails.Color == null || parkingDetails.DriverName == null)
                {
                    throw new Exception(ParkingLotExceptions.ExceptionType.NULL_FIELD_EXCEPTION.ToString());
                }

                //Throws Custom Exception If Fields are Empty.
                if (parkingDetails.VehicalOwnerName == "" || parkingDetails.VehicalNumber == "" ||
                    parkingDetails.Brand == "" || parkingDetails.Color == "" || parkingDetails.DriverName == "")
                {
                    throw new Exception(ParkingLotExceptions.ExceptionType.EMPTY_FIELD_EXCEPTION.ToString());
                }

                //Calling BL.
                var parkResponse = this.parkingLotBL.Park(parkingDetails);

                if (parkResponse != null && parkResponse.ParkingSlot != "Unavailable")
                {
                    distributedCache.Remove("Vehicals");

                    //Sending Message To Azure Service Queue.
                    string message = "Hello " + Convert.ToString(parkResponse.VehicalOwnerName) +
                                     " Your \n" + "Vehical " + parkResponse.Brand.ToString() + ", " +
                                     "VehcialNumber: " + parkResponse.VehicalNumber.ToString()
                                     + " \nParked In " + Convert.ToString(parkResponse.ParkingSlot) +
                                     " Slot \nBy " + Convert.ToString(parkResponse.DriverName) +
                                     "\nAt " + parkResponse.ParkingDate.Date.ToString("d") + " & "
                                     + parkResponse.ParkingDate.ToString("hh:mm tt");
                    sender.Send(message, "Parking", parkResponse.VehicalOwnerEmail);

                    //Sending Response.
                    return(Ok(new { Success = true, Message = "Vehical Parked", Data = parkResponse }));
                }
                else if (parkResponse == null)
                {
                    return(Conflict(new { Success = false, Message = "Vehical Is Already Parked" }));
                }
                else
                {
                    return(NotFound(new { Success = false, Message = "Lot Is Full" }));
                }
            }
            catch (Exception exception)
            {
                return(BadRequest(new { Success = false, Message = exception.Message }));
            }
        }
コード例 #12
0
 /// <summary>
 /// Function For Parking Vehical.
 /// </summary>
 /// <param name="parkingDetails"></param>
 /// <returns></returns>
 public ParkingDetails Park(ParkingDetails parkingDetails)
 {
     try
     {
         return(this.parkingLotRL.Park(parkingDetails));
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #13
0
        /// <summary>
        /// This method used for for parking new vehicle in parking lot.
        /// </summary>
        /// <param name="parking">Parking data.</param>
        /// <returns>Boolean result.</returns>
        public ParkingDetails ParkVehicle(Parking parking)
        {
            ParkingDetails parkingDetails = this.parkingRepository.ParkVehicle(parking);

            if (parkingDetails != null)
            {
                this.mSMQService.SendDataToQueue("Parked vehicle number: " + parkingDetails.VehicleNumber + " At time: "
                                                 + parkingDetails.EntryTime + " Parking id:" + parkingDetails.ParkingId);
            }

            return(parkingDetails);
        }
コード例 #14
0
        /// <summary>
        /// This method used for for unpark in parking lot.
        /// </summary>
        /// <param name="slotNumber">Slot Number.</param>
        /// <returns>Boolean result.</returns>
        public ParkingDetails UnParkVehicle(int slotNumber)
        {
            ParkingDetails parkingDetails = this.parkingRepository.UnParkVehicle(slotNumber);

            if (parkingDetails != null)
            {
                this.mSMQService.SendDataToQueue("UnParked vehicle number: " + parkingDetails.VehicleNumber + " At time: "
                                                 + parkingDetails.ExitTime + " Total charge: " + parkingDetails.ParkingCharge);
            }

            return(parkingDetails);
        }
コード例 #15
0
 /// <summary>
 /// Function To Find Vehical By Number.
 /// </summary>
 /// <param name="vehicalNumber"></param>
 /// <returns></returns>
 public ParkingDetails GetVehicalByNumber(string VehicalNumber)
 {
     try
     {
         ParkingDetails vehicalExists = dBContext.ParkingDetails.Where <ParkingDetails>
                                            (p => p.VehicalNumber.Equals(VehicalNumber)).FirstOrDefault();
         return(vehicalExists);
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #16
0
        /// <summary>
        /// This method used for storing data in parking detail object.
        /// </summary>
        /// <param name="sqlDataReader">Sql reader.</param>
        /// <returns>Parking details.</returns>
        public ParkingDetails VehicleDetails(SqlDataReader sqlDataReader)
        {
            ParkingDetails parkingDetails = new ParkingDetails();

            parkingDetails.ParkingId     = Convert.ToInt32(sqlDataReader["PARKING_ID"]);
            parkingDetails.SlotNumber    = Convert.ToInt32(sqlDataReader["SLOT_NUMBER"]);
            parkingDetails.VehicleNumber = sqlDataReader["VEHICLE_NUMBER"].ToString();
            parkingDetails.ParkingType   = Convert.ToInt32(sqlDataReader["PARKING_TYPE"]);
            parkingDetails.VehicleType   = Convert.ToInt32(sqlDataReader["VEHICLE_TYPE"]);
            parkingDetails.DriverType    = Convert.ToInt32(sqlDataReader["DRIVER_TYPE"]);
            parkingDetails.EntryTime     = sqlDataReader["Entry_Time"].ToString();
            parkingDetails.ExitTime      = sqlDataReader["Exit_Time"].ToString();
            parkingDetails.ParkingCharge = Convert.ToInt32(sqlDataReader["PARKING_CHARGE"]);
            return(parkingDetails);
        }
コード例 #17
0
        public ActionResult GetVehicleBySlotNumber(int slotNumber)
        {
            try
            {
                ParkingDetails parking = this.parkingService.GetDetailsBySlotNumber(slotNumber);
                if (parking == null)
                {
                    return(this.NotFound(new ResponseEntity(HttpStatusCode.NotFound, "Plaese check slot number again")));
                }

                return(this.Ok(new ResponseEntity(HttpStatusCode.OK, "Vehicle details found", parking)));
            }
            catch (Exception e)
            {
                return(this.BadRequest(new ResponseEntity(HttpStatusCode.BadRequest, e.Message)));
            }
        }
コード例 #18
0
        public ActionResult UnParkVehicle(int slotNumber)
        {
            try
            {
                ParkingDetails result = this.parkingService.UnParkVehicle(slotNumber);
                if (result == null)
                {
                    return(this.NotFound(new ResponseEntity(HttpStatusCode.NotFound, "Please check details again")));
                }

                return(this.Ok(new ResponseEntity(HttpStatusCode.OK, "Vehicle unParked successfully", result)));
            }
            catch (Exception e)
            {
                return(this.BadRequest(new ResponseEntity(HttpStatusCode.BadRequest, e.Message)));
            }
        }
コード例 #19
0
 public ParkResponse ParkVehicle(int securityID, ParkRequest parkDetails)
 {
     try
     {
         var securityExists = _appDBContext.Users.
                              Any(security => security.ID == securityID);
         if (securityExists)
         {
             ParkingDetails parkData = new ParkingDetails
             {
                 OwnerName     = parkDetails.OwnerName,
                 VehicleNumber = parkDetails.VehicleNumber,
                 VehicleBrand  = parkDetails.VehicleBrand,
                 Color         = parkDetails.Color,
                 IsParked      = true,
                 AttendantName = parkDetails.AttendantName,
                 Disability    = parkDetails.Disability,
                 ParkingDate   = DateTime.Now
             };
             if (parkDetails.Disability)
             {
                 parkingSlot = GetParkingSlotForHandicap();
             }
             else
             {
                 parkingSlot = GetParkingSlot();
             }
             if (parkingSlot == null)
             {
                 return(null);
             }
             parkData.ParkingSlot = parkingSlot;
             _appDBContext.ParkingDetails.Add(parkData);
             _appDBContext.SaveChanges();
             ParkResponse responseData = ParkedVehicleResponse(parkData);
             return(responseData);
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
コード例 #20
0
        public List <ParkingDetails> GetAllVehiclesParkedData()
        {
            try
            {
                List <ParkingDetails> listParkingData = new List <ParkingDetails>();
                using (this.connection)
                {
                    SqlCommand cmd = new SqlCommand("spGetAllParkingData", this.connection);
                    cmd.CommandType = CommandType.StoredProcedure;
                    this.connection.Open();
                    SqlDataReader dataReader = cmd.ExecuteReader();
                    if (dataReader.HasRows)
                    {
                        while (dataReader.Read())
                        {
                            ParkingDetails parkingDetails = new ParkingDetails();
                            parkingDetails.ParkingId     = Convert.ToInt32(dataReader["PARKING_ID"]);
                            parkingDetails.VehicleNumber = dataReader["VEHICLE_NUMBER"].ToString();
                            parkingDetails.EntryTime     = dataReader["ENTRY_TIME"].ToString();
                            parkingDetails.ParkingType   = Convert.ToInt32(dataReader["PARKING_TYPE"]);
                            parkingDetails.DriverType    = Convert.ToInt32(dataReader["DRIVER_TYPE"]);
                            parkingDetails.VehicleType   = Convert.ToInt32(dataReader["VEHICLE_TYPE"]);
                            parkingDetails.ExitTime      = dataReader["EXIT_TIME"].ToString();
                            parkingDetails.SlotNumber    = Convert.ToInt32(dataReader["SLOT_NUMBER"]);
                            listParkingData.Add(parkingDetails);
                        }

                        this.connection.Close();
                        return(listParkingData);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                this.connection.Close();
            }
        }
コード例 #21
0
        public ParkingDetails GetParkingDetailsWithSlotNumber(int slotNumber)
        {
            try
            {
                ParkingDetails parkingDetails = new ParkingDetails();
                using (this.connection)
                {
                    SqlCommand cmd = new SqlCommand("spSearchSlotID", this.connection);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@SlotNumber", slotNumber);
                    this.connection.Open();
                    SqlDataReader dataReader = cmd.ExecuteReader();
                    if (dataReader.HasRows)
                    {
                        while (dataReader.Read())
                        {
                            parkingDetails.ParkingId     = Convert.ToInt32(dataReader["PARKING_ID"]);
                            parkingDetails.VehicleNumber = dataReader["VEHICLE_NUMBER"].ToString();
                            parkingDetails.EntryTime     = dataReader["ENTRY_TIME"].ToString();
                            parkingDetails.ParkingType   = Convert.ToInt32(dataReader["PARKING_TYPE"]);
                            parkingDetails.DriverType    = Convert.ToInt32(dataReader["DRIVER_TYPE"]);
                            parkingDetails.VehicleType   = Convert.ToInt32(dataReader["VEHICLE_TYPE"]);
                            parkingDetails.ExitTime      = dataReader["EXIT_TIME"].ToString();
                            parkingDetails.SlotNumber    = Convert.ToInt32(dataReader["SLOT_NUMBER"]);
                            parkingDetails.ParkingCharge = Convert.ToInt32(dataReader["CHARGE"]);
                        }

                        this.connection.Close();
                        return(parkingDetails);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                this.connection.Close();
            }
        }
コード例 #22
0
        public ParkingFee ValidateVehicleClamped(string accessToken, ParkingDetails objParkingDetails)
        {
            ParkingFee obj_ParkingFee = new ParkingFee();

            try
            {
                string baseUrl = Convert.ToString(App.Current.Properties["BaseURL"]);
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    // Add the Authorization header with the AccessToken.
                    client.DefaultRequestHeaders.Add("Authorization", "bearer  " + accessToken);
                    // create the URL string.
                    string url = "api/InstaConsumer/ValidateVehicleClamped";
                    // make the request

                    var json    = JsonConvert.SerializeObject(objParkingDetails);
                    var content = new StringContent(json, Encoding.UTF8, "application/json");
                    HttpResponseMessage response = client.PostAsync(url, content).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        string jsonString = response.Content.ReadAsStringAsync().Result;
                        if (jsonString != null)
                        {
                            APIResponse apiResult = JsonConvert.DeserializeObject <APIResponse>(jsonString);

                            if (apiResult.Result)
                            {
                                obj_ParkingFee = JsonConvert.DeserializeObject <ParkingFee>(Convert.ToString(apiResult.Object));
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(obj_ParkingFee);
        }
コード例 #23
0
 public bool PostParking(ParkingDetails p)
 {
     try
     {
         Parking_Details pd = new Parking_Details();
         pd.Parking_ID     = p.Parking_ID;
         pd.Vechile_Number = p.Vechile_Number;
         pd.Visitor_ID     = p.Visitor_ID;
         es.Parking_Details.Add(pd);
         var res = es.SaveChanges();
         if (res > 0)
         {
             return(true);
         }
         return(false);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #24
0
        public IEnumerable <ParkingDetails> GetParking()
        {
            try
            {
                var res = es.Parking_Details.ToList();
                List <ParkingDetails> pd = new List <ParkingDetails>();
                foreach (var r in res)
                {
                    ParkingDetails p = new ParkingDetails();
                    p.Parking_ID     = r.Parking_ID;
                    p.Vechile_Number = r.Vechile_Number;
                    p.Visitor_ID     = r.Visitor_ID;
                    p.Slot_Id        = r.Slot_Id;

                    pd.Add(p);
                }
                return(pd);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #25
0
        public List <ParkingDetails> GetAllEmptySlots()
        {
            try
            {
                List <ParkingDetails> listEmptySlots = new List <ParkingDetails>();
                using (this.connection)
                {
                    SqlCommand cmd = new SqlCommand("spGetEmptySLots", this.connection);
                    cmd.CommandType = CommandType.StoredProcedure;
                    this.connection.Open();
                    SqlDataReader datarReader = cmd.ExecuteReader();
                    if (datarReader.HasRows)
                    {
                        while (datarReader.Read())
                        {
                            ParkingDetails parkingDetails = new ParkingDetails();
                            parkingDetails.SlotNumber = Convert.ToInt32(datarReader["SLOT_NUMBER"]);
                            listEmptySlots.Add(parkingDetails);
                        }

                        this.connection.Close();
                        return(listEmptySlots);
                    }

                    return(null);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                this.connection.Close();
            }
        }
コード例 #26
0
 public ParkingDetails GetByParkingId(int id)
 {
     try
     {
         ParkingDetails p = new ParkingDetails();
         var            r = es.Parking_Details.Where(x => x.Parking_ID == id).SingleOrDefault();
         if (r != null)
         {
             p.Parking_ID     = r.Parking_ID;
             p.Vechile_Number = r.Vechile_Number;
             p.Visitor_ID     = Convert.ToInt32(r.Visitor_ID);
             p.Slot_Id        = r.Slot_Id;
         }
         else
         {
             throw new Exception("Invalid id");
         }
         return(p);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #27
0
        public IActionResult GetVehicalByNumber([FromRoute] string VehicalNumber)
        {
            try
            {
                //Throws Custom Exception If VehicalNumber Is Null;
                if (VehicalNumber == null)
                {
                    throw new Exception(ParkingLotExceptions.ExceptionType.NULL_FIELD_EXCEPTION.ToString());
                }

                //Throws Custom Exception If VehicalNumber Is Not in Valid Format.
                if (!Regex.IsMatch(VehicalNumber, @"^[A-Z]{2}\s[0-9]{2}\s[A-Z]{1,2}\s[0-9]{4}$"))
                {
                    throw new Exception(ParkingLotExceptions.ExceptionType.INVALID_VEHICAL_NUMBER_FORMAT.ToString() + " Please Enter Vehical In 'MH 01 AZ 2005' This Format.");
                }

                //Calling BL.
                ParkingDetails details = this.parkingLotBL.GetVehicalByNumber(VehicalNumber);
                if (details != null && details.Status == "Parked")
                {
                    return(Ok(new { Success = true, Message = "Vehical Details Fetched Successful", Data = details }));
                }
                else if (details != null && details.Status == "Unparked")
                {
                    return(NotFound(new { Success = false, Message = "Car Already Unparked" }));
                }
                else
                {
                    return(NotFound(new { Success = false, Message = "Car Not Found" }));
                }
            }
            catch (Exception exception)
            {
                return(BadRequest(new { Success = false, Message = exception.Message }));
            }
        }
コード例 #28
0
 /// <summary>
 ///  database connection for get all Parking details
 /// </summary>
 public IEnumerable <ParkingDetails> GetAllParkingDetails()
 {
     try
     {
         List <ParkingDetails> listparking = new List <ParkingDetails>();
         SqlConnection         connection  = DatabaseConnection();
         //for store procedure and connection to database
         SqlCommand command = StoreProcedureConnection("spAllVehicleParking", connection);
         connection.Open();
         //Read data from database
         SqlDataReader Response = command.ExecuteReader();
         while (Response.Read())
         {
             ParkingDetails parking = new ParkingDetails();
             parking.ParkingID           = Convert.ToInt32(Response["ParkingID"]);
             parking.UserID              = Convert.ToInt32(Response["UserID"]);
             parking.VehicleOwnerAddress = Response["VehicleOwnerAddress"].ToString();
             parking.VehicleNumber       = Response["VehicleNumber"].ToString();
             parking.VehicalBrand        = Response["VehicalBrand"].ToString();
             parking.VehicalColor        = Response["VehicalColor"].ToString();
             parking.ParkingSlot         = Response["ParkingSlot"].ToString();
             parking.ParkingUserCategory = Response["ParkingUserCategory"].ToString();
             parking.ParkingStatus       = Response["ParkingStatus"].ToString();
             parking.Charges             = Response["Charges"].ToString();
             parking.EntryTime           = Convert.ToDateTime(Response["EntryTime"]);
             parking.ExitTime            = Convert.ToDateTime(Response["ExitTime"]);
             listparking.Add(parking);
         }
         connection.Close();
         return(listparking);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
コード例 #29
0
        public HttpResponseMessage <ParkingConfirmation> Post(ParkingDetails id)
        {
            //if (parkingDetails.LocationFile != null && parkingDetails.LocationFile.ContentLength > 0)

            var result = new ParkingConfirmation
            {
                Id       = 122345,
                Location = new Location
                {
                    Id   = 1,
                    Name = "Vancouver"
                },
                QuotedPrice    = 0.30m,
                UserProperties = new UserProperties
                {
                    Vehicle = new Dictionary <string, string>()
                    {
                        { "car 1 ", "123 sdf" }, { "car 2", "sdf234" }
                    }
                }
            };

            return(Request.CreateResponse(result));
        }
コード例 #30
0
        public ParkingDetails UnParkVehicle(int slotNumber)
        {
            ParkingDetails parkingDetails = this.parkingLotRepository.UnParkVehicle(slotNumber);

            return(parkingDetails);
        }