package Server;

import Database.DatabaseClient;
import java.sql.*;

import java.util.GregorianCalendar;
import java.util.Calendar;

public class Utility {
    private DatabaseClient db;
    public GregorianCalendar D;
    public Calendar DA;

    public Utility(DatabaseClient dbc){
        this.db = dbc;
        D = new GregorianCalendar();
        DA = Calendar.getInstance();
    }

    public String getUserNamefromID(String id){
        String name = new String();
        try {
            ResultSet query = db.Query("SELECT username FROM utenti WHERE id = " + id);
            while(query.next()){
                name = query.getString("username");
            }
        } catch(Exception exp){
           System.out.println(exp);
        }
        return name;

    }

    public String getUserNamefromID(int id){
        String name = new String();
        try {
            ResultSet query = db.Query("SELECT username FROM utenti WHERE id = " + id);
            while(query.next()){
                name = query.getString("username");
            }
        } catch(Exception exp){
           System.out.println(exp);
        }
        return name;

    }

    public int getIDfromUserName(String name){
        int id = 0;
        try {
            ResultSet query = db.Query("SELECT id FROM utenti WHERE username = '" + name + "'");
            while(query.next()){
                id = query.getInt("id");
            }
        } catch(Exception exp){
           System.out.println(exp);
        }
        return id;

    }

    public String implode(String[] ary, String delim) {
        String out = "";
        for(int i=0; i<ary.length; i++) {
            if(i!=0) { out += delim; }
            out += ary[i];
        }
        return out;
    }

    public int array_search(String searched, String[] elements){
        int k = 0;
        if(elements.length != 0){
        for(int j = 0; j < elements.length; j++){
          if(elements[j].equals(searched)){
              k++;
          }
        }
        }
        return k;
    }

    public int array_search(int searched, int[] elements){
        int k = 0;
        if(elements.length != 0){
        for(int j = 0; j < elements.length; j++){
          if(elements[j] == searched){
              k++;
          }
        }
        }
        return k;
    }

    public int array_search(int searched, String[] elements){
        int k = 0;
        if(elements.length != 0){
        for(int j = 0; j < elements.length; j++){
          if(elements[j] != ""){
          if(Integer.parseInt(elements[j]) == searched){
              k++;
          }
          }
        }
        }
        return k;
    }

    public boolean is_event(int id){
        boolean bool = false;
        try{
            int rows = 0;
            ResultSet query = db.Query("SELECT * FROM rooms_events WHERE room_id = '" + id + "'");
            while(query.next()) rows++;
            if(rows == 0) bool = false;
            else bool = true;
        } catch(Exception exp){}
        return bool;
    }

    public String getRoomsRightUsers(int roomid)
    {
        String users = "";
        String packet = "";
        int y = 0;
        try{
            ResultSet query = db.Query("SELECT * FROM rooms_rights WHERE room_id = '" + roomid + "'");
            while(query.next()){
                users += query.getString("user_id") + ",";
                y++;
            }
            return users;
        } catch(Exception exp){ return ""; }
    }

    public String getnamebyid(int id)
    {
      try{
      ResultSet queryname = db.Query("SELECT username FROM utenti WHERE id = '" + id + "'");
      queryname.next();
      return queryname.getString("username");
      } catch(Exception e){}
        return "UTENTE SCONOSCIUTO";
    }

    public String Date(){
        //14-05-2010 16:52:16
        String data = DA.get(Calendar.DATE) + "-" + DA.get(Calendar.MONTH) + 1 + "-" + DA.get(Calendar.YEAR) + " " + DA.get(Calendar.HOUR) + ":" + DA.get(Calendar.MINUTE) + ":" + DA.get(Calendar.SECOND);
        return data;
    }

    

}
