/// <summary> /// Constructor to add new Driver to the database /// </summary> /// <param name="name">Full Name of the driver</param> /// <param name="contactNumber">Contact Number of the driver</param> /// <param name="creditLimit">Credit Limit to which the driver can use the app, after that the acount will be blocked</param> /// <param name="lastLocation">Last known location of the driver</param> /// <param name="cnic">Unique National ID Card Number</param> public Driver(NameFormat name, ContactNumberFormat contactNumber, decimal creditLimit, Location lastLocation, string cnic) : base(name, contactNumber) { dbCommand = new SqlCommand("AddNewDriver", dbConnection); dbCommand.CommandType = System.Data.CommandType.StoredProcedure; dbCommand.Parameters.Add(new SqlParameter("@id", System.Data.SqlDbType.BigInt)).Value = id; dbCommand.Parameters.Add(new SqlParameter("@creditLimit", System.Data.SqlDbType.Money)).Value = creditLimit; dbCommand.Parameters.Add(new SqlParameter("@lLongitude", System.Data.SqlDbType.Decimal)).Value = lastLocation.Longitude; dbCommand.Parameters.Add(new SqlParameter("@lLatitude", System.Data.SqlDbType.Decimal)).Value = lastLocation.Latitude; dbCommand.Parameters.Add(new SqlParameter("@cnic", System.Data.SqlDbType.NChar)).Value = cnic; dbConnection.Open(); try { dbCommand.ExecuteNonQuery(); } catch (SqlException ex) { dbConnection.Close(); if (ex.Number == 2601 || ex.Number == 2627) { DeleteUser(id); //Unique key handler throw new UniqueKeyViolationException("Cannot add duplicate CNIC Number to the record."); } throw new DbQueryProcessingFailedException("Driver->Constructor(NameFormat, ContactNumberFormat, decimal, Location, string)", ex); } dbConnection.Close(); this.creditLimit = creditLimit; this.lastLocation = lastLocation; }
/// <summary> /// Constructor to initialize values of a user from the database /// </summary> /// <param name="id">Primary key</param> public User(long id) { dbCommand = new SqlCommand("GetUser", dbConnection); dbCommand.CommandType = System.Data.CommandType.StoredProcedure; dbCommand.Parameters.Add(new SqlParameter("@uId", System.Data.SqlDbType.BigInt)).Value = id; dbConnection.Open(); try { using (dbReader = dbCommand.ExecuteReader()) { while (dbReader.Read()) { this.id = id; name = new NameFormat { FirstName = (string)dbReader[1], LastName = (string)dbReader[2] }; contactNumber = new ContactNumberFormat((string)dbReader[3], (string)dbReader[4], (string)dbReader[5]); isBlocked = (bool)dbReader[6]; } } } catch (SqlException ex) { dbConnection.Close(); throw new DbQueryProcessingFailedException("User->Constructor(long)", ex); } dbConnection.Close(); }
/// <summary> /// Constructor to add new user data tuple to the database /// </summary> /// <param name="name">Full Name of the user</param> /// <param name="contactNumber">Contact Number of the user</param> protected User(NameFormat name, ContactNumberFormat contactNumber) { dbCommand = new SqlCommand("AddNewUser", dbConnection); dbCommand.CommandType = System.Data.CommandType.StoredProcedure; dbCommand.Parameters.Add(new SqlParameter("@fName", System.Data.SqlDbType.VarChar)).Value = name.FirstName; dbCommand.Parameters.Add(new SqlParameter("@lName", System.Data.SqlDbType.VarChar)).Value = name.LastName; dbCommand.Parameters.Add(new SqlParameter("@cCode", System.Data.SqlDbType.VarChar)).Value = contactNumber.CountryCode; dbCommand.Parameters.Add(new SqlParameter("@comCode", System.Data.SqlDbType.VarChar)).Value = contactNumber.CompanyCode; dbCommand.Parameters.Add(new SqlParameter("@phoneNumber", System.Data.SqlDbType.VarChar)).Value = contactNumber.PhoneNumber; dbConnection.Open(); try { var result = dbCommand.ExecuteScalar(); id = Convert.ToInt64(result); } catch (SqlException ex) { dbConnection.Close(); if (ex.Number == 2601 || ex.Number == 2627) { //Unique key handler //returns the already created driver in the System var user = GetUser(contactNumber); id = user.UserId; name = user.FullName; contactNumber = user.ContactNumber; return; } throw new DbQueryProcessingFailedException("User->Constructor(NameFormat,ContactNumberFormat)", ex); } dbConnection.Close(); this.name = name; this.contactNumber = contactNumber; }
/// <summary> /// constructor which adds a new sub-admin to the database /// </summary> /// <param name="name">Full Name of the sub-admin</param> /// <param name="contactNumber">Contact Number of the sub-admin</param> public SubAdmin(NameFormat name, ContactNumberFormat contactNumber) : base(name, contactNumber) { dbCommand = new SqlCommand("INSERT INTO [SUB_ADMINS] ([UId]) VALUES (" + id + ")", dbConnection); dbConnection.Open(); try { dbCommand.ExecuteNonQuery(); } catch (SqlException ex) { dbConnection.Close(); throw new DbQueryProcessingFailedException("SubAdmin->Constructor(NameFormat, ContactNumberFormat)", ex); } dbConnection.Close(); }
/// <summary> /// constructor which adds a new rider to the database /// </summary> /// <param name="name">Full Name of the Rider</param> /// <param name="contactNumber">Contact Number of the Rider</param> public Rider(NameFormat name, ContactNumberFormat contactNumber) : base(name, contactNumber) { dbCommand = new SqlCommand("INSERT INTO [RIDERS] ([UId]) VALUES (" + id + ")", dbConnection); dbConnection.Open(); try { dbCommand.ExecuteNonQuery(); } catch (SqlException ex) { dbConnection.Close(); if (ex.Number == 2601 || ex.Number == 2627) { return; } throw new DbQueryProcessingFailedException("Rider->Constructor(NameFormat, ContactNumberFormat)", ex); } dbConnection.Close(); }
/// <summary> /// Method to get user by unique phone number /// </summary> /// <param name="contactNumber"></param> /// <returns></returns> public static User GetUser(ContactNumberFormat contactNumber) { User user; SqlConnection dbConnection = new SqlConnection(CONNECTION_STRING); SqlCommand dbCommand = new SqlCommand("SELECT UId FROM USERS WHERE CountryCode = '" + contactNumber.CountryCode + "' AND CompanyCode = '" + contactNumber.CompanyCode + "' AND PhoneNumber = '" + contactNumber.PhoneNumber + "'", dbConnection); dbConnection.Open(); try { user = new User(Convert.ToInt64(dbCommand.ExecuteScalar())); } catch (SqlException ex) { dbConnection.Close(); throw new DbQueryProcessingFailedException("User->GetUser", ex); } dbConnection.Close(); return(user); }
public ActionResult <User> GetByContactNumber(string countryCode, string companyCode, string phone) { ContactNumberFormat contactNumber = new ContactNumberFormat(countryCode, companyCode, phone); try { User user = null; using (var scope = container.BeginLifetimeScope()) { using (var userRepository = scope.Resolve <IUserRepository>()) { user = userRepository.GetUser(new ContactNumberFormat(contactNumber.CountryCode, contactNumber.CompanyCode, contactNumber.PhoneNumber)); } } return(user); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
/// <summary> /// Adds a new user data to the database /// </summary> /// <param name="fullName"></param> /// <param name="phoneNumber"></param> /// <param name="city"></param> protected User(NameFormat fullName, ContactNumberFormat phoneNumber, string city) { SqlParameter firstName = new SqlParameter("@fName", System.Data.SqlDbType.VarChar) { Value = fullName.FirstName }; SqlParameter lastName = new SqlParameter("@lName", System.Data.SqlDbType.VarChar) { Value = fullName.LastName }; SqlParameter phone = new SqlParameter("@pNumber", System.Data.SqlDbType.VarChar) { Value = phoneNumber }; try { ExecuteQuery("AddNewUser", SQLCommandTypes.StoredProcedure, firstName, lastName, phone); } catch (SqlException ex) { } }
/// <summary> /// Returns a user, searched by its phone number /// </summary> /// <param name="phoneNumber"></param> /// <returns></returns> public static User GetUser(ContactNumberFormat phoneNumber) { return(null); }
/// <summary> /// Adds a new Franchise Manager record into the database /// </summary> /// <param name="fullName"></param> /// <param name="phoneNumber"></param> /// <param name="city"></param> /// <param name="location"></param> public FranchiseManager(NameFormat fullName, ContactNumberFormat phoneNumber, string city, Location location) : base(fullName, phoneNumber, city) { }
public PrimaryUser(NameFormat name, ContactNumberFormat phoneNumber, string city, string cnic) : base(name, phoneNumber, city) { this.cnic = cnic; }