예제 #1
0
        /// <summary>
        /// Get Products of Discount
        /// </summary>
        /// <returns></returns>
        public Response GetDiscountProducts(Objects.Discount discount)
        {
            int           statusCode = 200;
            Response      response   = new Response();
            List <object> products   = new List <object>();

            try
            {
                Database.Connection.Open();
                string query = " SELECT * FROM ProductDiscounts WHERE DiscountId=@DiscountId ORDER BY CreatedAt DESC ";
                //Execute Query
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);
                Command.Parameters.AddWithValue("DiscountId", discount.Id);
                MySqlDataReader DataReader = Command.ExecuteReader();

                //Read Data
                while (DataReader.Read())
                {
                    Objects.DiscountProduct product = new Objects.DiscountProduct
                    {
                        DiscountId = DataReader["DiscountId"].ToString(),
                        ProductId  = DataReader["ProductId"].ToString(),
                        CreatedAt  = Convert.ToDateTime(DataReader["CreatedAt"].ToString()),
                    };
                    products.Add(product);
                }
                if (!DataReader.HasRows)
                {
                    // Nothing
                    statusCode = 204;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.DataArray  = products;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "Discount", "Getting Discount Products");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #2
0
        /// <summary>
        /// Create a new Discount
        /// </summary>
        /// <returns></returns>
        public Response Create(Objects.Discount discount)
        {
            //Props
            int      statusCode = 201;
            Response response   = new Response();

            //Random Tokens
            discount.Id = ServerUtil.GenerateToken(TokenLengths.TokensLength);
            try
            {
                Database.Connection.Open();

                string query = " INSERT INTO Discounts (DiscountId, Name, Description, StartDate, EndDate, Type, Value ) " +
                               " VALUES (@DiscountId, @Name, @Description, @StartDate, @EndDate, @Type, @Value) ";
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);

                Command.Parameters.AddWithValue("DiscountId", discount.Id);
                Command.Parameters.AddWithValue("Name", discount.Name);
                Command.Parameters.AddWithValue("Description", discount.Description);
                Command.Parameters.AddWithValue("StartDate", discount.StartDate);
                Command.Parameters.AddWithValue("EndDate", discount.EndDate);
                Command.Parameters.AddWithValue("Type", discount.Type);
                Command.Parameters.AddWithValue("Value", discount.Value);
                Command.ExecuteNonQuery();

                Database.Connection.Close();

                // Status Code
                statusCode = 201;
            }
            catch (MySqlException e)
            {
                if (e.Message.Contains("Duplicate entry"))
                {
                    //Duplicate Key or Conflict
                    statusCode = 409;
                }
                else
                {
                    // Internal Server Error
                    statusCode = 500;
                }
                Logger.QueryError(e, "Discount", "Create");
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            //Response

            response.StatusCode = statusCode;
            response.Data       = discount;

            return(response);
        }
예제 #3
0
        /// <summary>
        ///  Update
        public Response Update(Objects.Discount discount)
        {
            //Props
            int      statusCode = 200;
            Response response   = new Response();

            try
            {
                Database.Connection.Open();

                string query = " UPDATE Discounts SET Name=@Name, Description=@Description, StartDate=@StartDate, EndDate=@EndDate, Type=@Type, Value=@Value" +
                               " WHERE DiscountId=@DiscountId ";
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);

                Command.Parameters.AddWithValue("DiscountId", discount.Id);
                Command.Parameters.AddWithValue("Name", discount.Name);
                Command.Parameters.AddWithValue("Description", discount.Description);
                Command.Parameters.AddWithValue("StartDate", discount.StartDate);
                Command.Parameters.AddWithValue("EndDate", discount.EndDate);
                Command.Parameters.AddWithValue("Type", discount.Type);
                Command.Parameters.AddWithValue("Value", discount.Value);

                Command.ExecuteNonQuery();

                Database.Connection.Close();

                // Updated Successfully
                statusCode = 204;

                //Response
                response.StatusCode = statusCode;
            }
            catch (MySqlException e)
            {
                if (e.Message.Contains("Duplicate entry"))
                {
                    //Duplicate Key or Conflict
                    statusCode = 409;
                }
                else
                {
                    // Internal Server Error
                    statusCode = 500;
                }

                Logger.QueryError(e, "Discount", "Update");
                // Status Code
                response.StatusCode = statusCode;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #4
0
        /// <summary>
        ///  Delete
        /// </summary>
        public Response Delete(Objects.Discount discount)
        {
            //Props
            int      statusCode = 204;
            Response response   = new Response();

            try
            {
                Database.Connection.Open();

                string Query = "DELETE FROM Discounts WHERE DiscountId=@DiscountId ";
                //Execute Query With Connection  => DataReader
                MySqlCommand Command = new MySqlCommand(Query, Database.Connection);
                Command.Parameters.AddWithValue("DiscountId", discount.Id);

                //Execute Command
                Command.ExecuteNonQuery();

                //Close Connection
                Database.Connection.Close();

                //[HTTP Status Code] OK : Successfully Deleted : Returning No Content
                statusCode          = 204;
                response.StatusCode = statusCode;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "Discount", "Delete ");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #5
0
        /// <summary>
        /// Checks if Id is valid
        /// </summary>
        /// <returns></returns>
        public bool IsValid(Objects.Discount discount)
        {
            bool isValid;

            try
            {
                //Open Connection
                Database.Connection.Open();

                string       query   = "SELECT DiscountId FROM Discounts WHERE DiscountId=@DiscountId";
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);
                Command.Parameters.AddWithValue("DiscountId", discount.Id);
                MySqlDataReader DataReader = Command.ExecuteReader();
                if (!DataReader.HasRows)
                {
                    isValid = false;
                }
                else
                {
                    isValid = true;
                }

                //Close Connection
                Database.Connection.Close();
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "Discount", "Verifying Id");
                isValid = false;
            }

            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(isValid);
        }
예제 #6
0
        /// <summary>
        /// Get Discounts
        /// </summary>
        /// <returns></returns>
        public Response GetDiscounts()
        {
            //Props
            int           statusCode = 200;
            Response      response   = new Response();
            List <object> discounts  = new List <object>();

            try
            {
                Database.Connection.Open();
                //search query or teyxt
                string query = " SELECT * FROM Discounts ORDER BY CreatedAt DESC ";

                //Execute Query
                MySqlCommand    Command    = new MySqlCommand(query, Database.Connection);
                MySqlDataReader DataReader = Command.ExecuteReader();

                //Read Data
                while (DataReader.Read())
                {
                    Objects.Discount discount = new Objects.Discount
                    {
                        Id          = DataReader["DiscountId"].ToString(),
                        Name        = DataReader["Name"].ToString(),
                        Description = DataReader["Description"].ToString(),
                        Type        = DataReader["Type"].ToString(),
                        Value       = decimal.Parse(DataReader["Value"].ToString()),

                        StartDate = Convert.ToDateTime(DataReader["StartDate"].ToString()),
                        EndDate   = Convert.ToDateTime(DataReader["EndDate"].ToString()),

                        UpdatedAt = Convert.ToDateTime(DataReader["UpdatedAt"].ToString()),
                        CreatedAt = Convert.ToDateTime(DataReader["CreatedAt"].ToString()),
                    };

                    discounts.Add(discount);
                }
                if (!DataReader.HasRows)
                {
                    // Nothing
                    statusCode = 204;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.DataArray  = discounts;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "Discount", "Getting Discounts");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #7
0
        /// <summary>
        /// Get
        /// </summary>
        /// <returns></returns>
        public Response Get(Objects.Discount discount)
        {
            //Props
            int      statusCode = 200;
            Response response   = new Response();

            try
            {
                Database.Connection.Open();

                string Query = "SELECT * FROM Discounts WHERE DiscountId=@DiscountId";

                //Execute Query
                MySqlCommand Command = new MySqlCommand(Query, Database.Connection);
                Command.Parameters.AddWithValue("DiscountId", discount.Id);
                MySqlDataReader DataReader = Command.ExecuteReader();

                //Read Data
                while (DataReader.Read())
                {
                    discount.Id    = DataReader["DiscountId"].ToString();
                    discount.Name  = DataReader["Name"].ToString();
                    discount.Type  = DataReader["Type"].ToString();
                    discount.Value = decimal.Parse(DataReader["Value"].ToString());

                    discount.StartDate = Convert.ToDateTime(DataReader["StartDate"].ToString());
                    discount.EndDate   = Convert.ToDateTime(DataReader["EndDate"].ToString());

                    discount.UpdatedAt = Convert.ToDateTime(DataReader["UpdatedAt"].ToString());
                    discount.CreatedAt = Convert.ToDateTime(DataReader["CreatedAt"].ToString());
                }
                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.Data       = discount;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "Discount", "Get");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }