示例#1
0
        /// <summary>
        /// Francis Mingomba
        /// Created: 2019/04/30
        ///
        /// Adds new vehicle status to database from database
        /// </summary>
        /// <param name="status">current vehicle status</param>
        /// <returns>returns primary key</returns>
        public int AddResortVehicleStatus(ResortVehicleStatus status)
        {
            int id;

            var conn = DBConnection.GetDbConnection();

            const string cmdText = @"sp_create_resort_vehicle_status";

            var cmd = new SqlCommand(cmdText, conn)
            {
                CommandType = CommandType.StoredProcedure
            };

            cmd.Parameters.AddWithValue("@ResortVehicleStatusId", status.Id);
            cmd.Parameters.AddWithValue("@Description", status.Description);

            try
            {
                conn.Open();

                id = Convert.ToInt32(cmd.ExecuteScalar());
            }
            finally
            {
                conn.Close();
            }

            return(id);
        }
        /// <summary author="Francis Mingomba" created="2019/04/03">
        /// Updates Resort Vehicle Status
        /// </summary>
        /// <param name="oldStatus">Old Vehicle Status (database copy)</param>
        /// <param name="newStatus">New Vehicle Status (new copy)</param>
        public void UpdateResortVehicleStatus(ResortVehicleStatus oldStatus, ResortVehicleStatus newStatus)
        {
            try
            {
                this.MeetsValidationCriteria(newStatus, GetResortVehicleValidationCriteria());

                _resortVehicleStatusAccessor.UpdateResortVehicleStatus(oldStatus, newStatus);
            }
            catch (Exception ex)
            {
                ExceptionLogManager.getInstance().LogException(ex);
                throw ex;
            }
        }
示例#3
0
        /// <summary>
        /// Francis Mingomba
        /// Created: 2019/04/30
        ///
        /// Retrieve vehicle status by id from database
        /// </summary>
        /// <param name="id">resort vehicle status id</param>
        /// <returns>resort vehicle status object</returns>
        public ResortVehicleStatus RetrieveResortVehicleStatusById(string id)
        {
            ResortVehicleStatus resortVehicleStatus;

            var conn = DBConnection.GetDbConnection();

            const string cmdText = @"sp_select_resort_vehicle_status_by_id";

            var cmd = new SqlCommand(cmdText, conn)
            {
                CommandType = CommandType.StoredProcedure
            };

            cmd.Parameters.AddWithValue("@ResortVehicleStatusId", id);

            try
            {
                conn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    reader.Read();

                    resortVehicleStatus = new ResortVehicleStatus()
                    {
                        Id          = reader.GetString(0),
                        Description = reader.GetString(1)
                    };
                }
                else
                {
                    throw new ApplicationException("Resort Vehicle Status not found.");
                }

                reader.Close();
            }
            finally
            {
                conn.Close();
            }

            return(resortVehicleStatus);
        }
        /// <summary author="Francis Mingomba" created="2019/04/03">
        /// Adds Resort Vehicle Status to database
        /// </summary>
        /// <param name="status">Resort Vehicle Status</param>
        /// <returns>New Resort Vehicle Status Id</returns>
        public int AddResortVehicleStatus(ResortVehicleStatus status)
        {
            int statusId;

            try
            {
                this.MeetsValidationCriteria(status, GetResortVehicleValidationCriteria());

                statusId = _resortVehicleStatusAccessor.AddResortVehicleStatus(status);
            }
            catch (Exception ex)
            {
                ExceptionLogManager.getInstance().LogException(ex);
                throw ex;
            }

            return(statusId);
        }
示例#5
0
        /// <summary>
        /// Francis Mingomba
        /// Created: 2019/04/30
        ///
        /// Updates Resort Vehicle Status in database
        /// </summary>
        /// <param name="oldStatus">old status</param>
        /// <param name="newStatus">new status</param>
        public void UpdateResortVehicleStatus(ResortVehicleStatus oldStatus, ResortVehicleStatus newStatus)
        {
            var conn = DBConnection.GetDbConnection();

            const string cmdText = @"sp_update_resort_vehicle_status";

            var cmd = new SqlCommand(cmdText, conn)
            {
                CommandType = CommandType.StoredProcedure
            };

            cmd.Parameters.AddWithValue("@ResortPropertyId", oldStatus.Id);
            cmd.Parameters.AddWithValue("@OldDescription", oldStatus.Description);

            cmd.Parameters.AddWithValue("@NewDescription", newStatus.Description);

            try
            {
                conn.Open();

                int result = cmd.ExecuteNonQuery();

                if (result == 0)
                {
                    // .. resort property wasn't found or old and database copy did not match
                    throw new ApplicationException("Database: Vehicle status not updated");
                }
                else if (result > 1)
                {
                    // .. protection against change in expected stored stored procedure behaviour
                    throw new ApplicationException("Fatal Error: More than one vehicle status updated");
                }
            }
            finally
            {
                conn.Close();
            }
        }