コード例 #1
0
        private static Receipt extractData(SQLiteDataReader reader)
        {
            Receipt receipt = new Receipt();

            receipt.Id        = reader.GetInt32(0);
            receipt.Recipient = reader.GetString(1);
            receipt.Address   = reader.GetString(2);
            receipt.Phone     = reader.GetString(3);
            receipt.Status    = reader.GetInt32(4);
            receipt.Date      = reader.GetString(5);
            receipt.Customer  = CustomerDAL.GetById(reader.GetInt32(6));

            string        detailsQuery   = $"SELECT * FROM {detailsTable} WHERE receiptId = @receiptId";
            SQLiteCommand detailsCommand = new SQLiteCommand(detailsQuery, DAL.Conn);

            detailsCommand.Parameters.AddWithValue("@receiptId", receipt.Id);

            SQLiteDataReader detailsReader = detailsCommand.ExecuteReader();

            while (detailsReader.HasRows)
            {
                while (detailsReader.Read())
                {
                    ReceiptDetails details = new ReceiptDetails();
                    details.Receipt = receipt;
                    details.Product = ProductDAL.GetById(detailsReader.GetInt32(1));
                    details.Amount  = detailsReader.GetInt32(2);

                    receipt.Details.Add(details);
                }

                detailsReader.NextResult();
            }

            string        combosQuery   = $"SELECT * FROM {combosTable} WHERE receiptId = @receiptId";
            SQLiteCommand combosCommand = new SQLiteCommand(combosQuery, DAL.Conn);

            combosCommand.Parameters.AddWithValue("@receiptId", receipt.Id);

            SQLiteDataReader combosReader = combosCommand.ExecuteReader();

            while (combosReader.HasRows)
            {
                while (combosReader.Read())
                {
                    ReceiptCombos combos = new ReceiptCombos();
                    combos.Receipt = receipt;
                    combos.Combo   = ComboDAL.GetById(combosReader.GetInt32(1));
                    combos.Amount  = combosReader.GetInt32(2);

                    receipt.Combos.Add(combos);
                }

                combosReader.NextResult();
            }

            return(receipt);
        }
コード例 #2
0
        public void AddCustomer(Customer customer)
        {
            using var _context = new Project0Context(_options);
            CustomerDAL newCustomer = new CustomerDAL
            {
                FirstName = customer.FirstName,
                LastName  = customer.LastName,
                Email     = customer.Email,
                Address   = customer.Address
            };

            _context.Add(newCustomer);
            _context.SaveChanges();
        }
コード例 #3
0
ファイル: ContractDAL.cs プロジェクト: cuongdv18020vtca/Nhom1
        // public ContractDAL()
        // {
        //     connection = DBHelper.OpenConnection();
        // }

        public bool CreateContract(Contract contract, Customers cus)
        {
            if (contract == null)
            {
                return(false);
            }
            bool result = false;

            MySqlConnection connection = DBHelper.OpenConnection();
            MySqlCommand    cmd        = connection.CreateCommand();

            cmd.Connection = connection;


            cmd.CommandText = "lock tables Customers write, Contract_Motor write, Contract write,Motor write;";
            cmd.ExecuteNonQuery();
            MySqlTransaction trans = connection.BeginTransaction();

            cmd.Transaction = trans;
            MySqlDataReader reader = null;
            CustomerDAL     cusdal = new CustomerDAL();

            if (cus == null || cus.Customer_Name == null || cus.Customer_Name == "")
            {
                cus = new Customers()
                {
                    CustomerID = 1
                };
            }

            try
            {
                if (cusdal.GetCustomerByIdentityCard(cus.IdentityCard) == null)
                {
                    cmd.CommandText = @"insert into Customers(Customer_Name,Customer_Address,IdentityCard,Customer_PhoneNumber)
                 
                    values(@Customer_Name,@Customer_Address,@IdentityCard,@Customer_PhoneNumber);";
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@Customer_Name", cus.Customer_Name);
                    cmd.Parameters.AddWithValue("@Customer_Address", cus.Customer_Address);
                    cmd.Parameters.AddWithValue("@IdentityCard", cus.IdentityCard);
                    cmd.Parameters.AddWithValue("@Customer_PhoneNumber", cus.Customer_PhoneNumber);
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = "select CustomerID from Customers order by CustomerID desc limit 1;";
                    reader          = cmd.ExecuteReader();
                    if (reader.Read())
                    {
                        cus.CustomerID = reader.GetInt32("CustomerID");
                    }
                    reader.Close();
                }
                else
                {
                    cusdal = new CustomerDAL();
                    cus    = cusdal.GetCustomerByIdentityCard(cus.IdentityCard);
                }

                // insert Contract;
                cmd.CommandText = @"insert into Contract(CustomerID,IdentityCard,Type_Transaction,Contract_Status,Contract_DateRental,Contract_DateReturn)
                 values(@CustomerID,@IdentityCard,@Type_Transaction,@Contract_Status,@Contract_DateRental, @Contract_DateReturn);";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@CustomerID", cus.CustomerID);
                cmd.Parameters.AddWithValue("@IdentityCard", cus.IdentityCard);
                cmd.Parameters.AddWithValue("@Type_Transaction", contract.Type_Transaction);
                cmd.Parameters.AddWithValue("@Contract_Status", contract.Contract_Status);

                cmd.Parameters.AddWithValue("@Contract_DateRental", contract.DateRental);
                cmd.Parameters.AddWithValue("@Contract_DateReturn", contract.DateReturn);
                cmd.ExecuteNonQuery();
                cmd.CommandText = "select LAST_INSERT_ID() as ContractID";
                reader          = cmd.ExecuteReader();
                if (reader.Read())
                {
                    contract.customer.CustomerID = reader.GetInt32("ContractID");
                }
                reader.Close();

                if (contract.motor.LicensePlate == null)
                {
                    throw new Exception("Khong tim thay xe");
                }

                cmd.CommandText = "select PriceOfMotor from Motor where LicensePlate = @LicensePlate";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@LicensePlate", contract.motor.LicensePlate);
                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    contract.motor.PriceOfMotor = reader.GetString("PriceOfMotor");
                }
                // if (contract.PriceOfMotor == null)
                // {
                //     throw new Exception("Khong ton tai xe");

                // }

                reader.Close();

                //insert Contract_Motor
                cmd.CommandText = "insert into Contract_Motor(LicensePlate,ContractID) values(@LicensePlate,@ContractID);";

                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@LicensePlate", contract.motor.LicensePlate);
                cmd.Parameters.AddWithValue("@ContractID", contract.customer.CustomerID);

                cmd.ExecuteNonQuery();

                //Update status in Motor

                // if (contract.deposit <= 50000)
                // {
                //     throw new Exception("Ban chua dat coc");
                // }

                cmd.CommandText = "update Motor set Motor_Status = @Motor_Status where LicensePlate = '" + contract.motor.LicensePlate + "';";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@Motor_Status", contract.Type_Transaction);
                cmd.ExecuteNonQuery();

                trans.Commit();
                result = true;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                result = false;
                try
                {
                    trans.Rollback();
                }
                catch
                {
                }
            }
            finally
            {
                cmd.CommandText = "unlock tables;";
                cmd.ExecuteNonQuery();
                DBHelper.CloseConnection();
            }
            return(result);
        }
コード例 #4
0
ファイル: ContractDAL.cs プロジェクト: cuongdv18020vtca/Nhom1
        public bool ReturnMotor(Customers customer, Motor motor, Contract contract)
        {
            bool            result     = false;
            CustomerDAL     cusdal     = new CustomerDAL();
            MotorDAL        mtdal      = new MotorDAL();
            MySqlConnection connection = DBHelper.OpenConnection();
            MySqlCommand    cmd        = connection.CreateCommand();

            cmd.Connection = connection;


            cmd.CommandText = "lock tables  Contract write,Motor write;";
            cmd.ExecuteNonQuery();
            MySqlTransaction trans = connection.BeginTransaction();

            cmd.Transaction = trans;
            MySqlDataReader reader = null;

            try
            {
                if (cusdal.GetCustomerByID(customer.CustomerID) != null && mtdal.GetMotorByLicensePlate(motor.LicensePlate) != null)
                {
                    cmd.CommandText = @"select ct.ContractID,ct.CustomerID,mt.LicensePlate,ct.Contract_DateRental,ct.Contract_DateReturn,datediff(ct.Contract_DateReturn,ct.Contract_DateRental) as TongNgayThue,
                    (mt.PriceOfMotor * datediff(ct.Contract_DateReturn,ct.Contract_DateRental)) as TongTien from Contract ct
                    inner join Contract_Motor cm on ct.ContractID = cm.ContractID
                    inner join	Motor mt on  mt.LicensePlate = cm.LicensePlate where ct.CustomerID = '" + customer.CustomerID + "' and mt.LicensePlate = '" + motor.LicensePlate + "';";
                    reader          = cmd.ExecuteReader();
                    if (reader.Read())
                    {
                        contract.ContractID = reader.GetInt32("ContractID");
                    }
                    reader.Close();

                    // Update status contract

                    cmd.CommandText = "update Contract set Contract_Status = 'DA THANH TOAN' where ContractID = '" + contract.ContractID + "';";
                    // cmd.Parameters.Clear();
                    // cmd.Parameters.AddWithValue("@LicensePlate",motor.LicensePlate);
                    cmd.ExecuteNonQuery();

                    // Update status Motor
                    cmd.CommandText = "update Motor set Motor_Status = 'CHUA THUE' where LicensePlate = '" + motor.LicensePlate + "'";
                    // cmd.Parameters.Clear();
                    // cmd.Parameters.AddWithValue("@LicensePlate",motor.LicensePlate);
                    cmd.ExecuteNonQuery();
                    trans.Commit();
                    return(true);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                result = false;
                try
                {
                    trans.Rollback();
                }
                catch
                {
                }
            }
            finally
            {
                cmd.CommandText = "unlock tables;";
                cmd.ExecuteNonQuery();
                DBHelper.CloseConnection();
            }
            return(result);
        }