def parameters_to_conditions(self, parameters):
        default_condition = self.get_default_conditions()

        c_dict = {}
        is_condition_set = False
        for key in self.__get_conditionables():
            p = Parameter.first_or_default(key, parameters)
            if p is not None and p.value is not None:
                is_condition_set = True
                if key == "bpm":
                    value = int(p.value)
                    if p.direction == CriticizeDirection.Up:
                        c_dict[key] = {"from": self.adjust_parameter(key, value, True)}
                    elif p.direction == CriticizeDirection.Down:
                        c_dict[key] = {"to": self.adjust_parameter(key, value, False)}
                    else:
                        c_dict[key] = {"from": self.adjust_parameter(key, value, False),
                                       "to": self.adjust_parameter(key, value, True)}

                elif key == "genre_score":
                    if p.direction == CriticizeDirection.Around:
                        c_dict[key] = p.value
                    else:
                        c_dict[key] = self.adjust_parameter(key, p.value, p.direction == CriticizeDirection.Up)

                elif key == "created_at":
                    value = self.adjust_parameter(key, p.value, p.direction == CriticizeDirection.Up)
                    c_dict[key] = {"from": value.strftime("%Y-%m-%d %H:%M:%S")}

                else:
                    c_dict[key] = p.value

        if "genre_score" in c_dict:
            genre = Track.score_to_genre(c_dict["genre_score"])
            c_dict["genres"] = genre
            c_dict.pop("genre_score")
        elif "genre" in c_dict:
            c_dict["genres"] = c_dict["genre"]

        if "genre" in c_dict:
            c_dict.pop("genre")

        if is_condition_set:
            c_dict["filter"] = default_condition["filter"]
        else:
            c_dict = default_condition

        return c_dict