package it.csi.demo.democomp.business.mgr;

import it.csi.demo.democomp.dto.nspersona.Provincia;
import it.csi.demo.democomp.dto.nspersona.Regione;
import it.csi.demo.democomp.dto.nspersona.Comune;
import it.csi.demo.democomp.business.business.dao.refappdao.dao.*;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.ProvinciaDto;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.RegioneDto;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.ComuneDto;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.ComunePk;
import it.csi.demo.democomp.business.business.dao.refappdao.exceptions.RegioneDaoException;
import it.csi.demo.democomp.business.business.dao.refappdao.exceptions.ProvinciaDaoException;
import it.csi.demo.democomp.business.business.dao.refappdao.exceptions.ComuneDaoException;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.ProvinciaPk;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;






public class GestoreLimitiAmm {
public ArrayList<Regione> getAllRegioni(){
	ArrayList<Regione> ris = new ArrayList<Regione>();
	try {
		List<RegioneDto> elenco = getRegioneDao().findAll();
		for (RegioneDto regioneDto : elenco) {
			Regione x = new Regione();
			x.setId(regioneDto.getIdRegione().intValue());
			x.setDescrizione(regioneDto.getDescrizione());
			ris.add(x);
		}
	} catch (RegioneDaoException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return ris;
}

	public ArrayList<Provincia> getAllProvince(){
		ArrayList<Provincia> ris = new ArrayList<Provincia>();
		try {
			List<ProvinciaDto> elenco = getProvinciaDao().findAll();
			for (ProvinciaDto provinciaDto : elenco) {
				Provincia x = new Provincia();
				x.setId(provinciaDto.getIdProvincia().intValue());
				x.setDescrizione(provinciaDto.getDescrizione());
				ris.add(x);
			}
		} catch (ProvinciaDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return ris;
	}


public ArrayList<Provincia> getProvinceByRegione(int codRegione){
	ArrayList<Provincia> ris = new ArrayList<Provincia>();
	try {
		ProvinciaDto input = new ProvinciaDto();
		input.setIdRegione(new BigDecimal(codRegione));
		List<ProvinciaDto> elenco = getProvinciaDao().findFindByReg(input);
		for (ProvinciaDto provinciaDto : elenco) {
			Provincia x = new Provincia();
			x.setId(provinciaDto.getIdProvincia().intValue());
			x.setDescrizione(provinciaDto.getDescrizione());
			ris.add(x);
		}
	} catch (ProvinciaDaoException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return ris;
}

public int getProvinciaByComune(int c){
	int ris=0;
	try {
		
		ComunePk input = new ComunePk();
		input.setIdComune(new BigDecimal(c));
		ComuneDto r = new ComuneDto();
		r = getComuneDao().findByPrimaryKey(input);
		
		ris = r.getIdProvincia().intValue();
		
	} catch (ComuneDaoException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return ris;
}

public ArrayList<Comune> getComuniByProvincia(int codProvincia){
	ArrayList<Comune> ris = new ArrayList<Comune>();
	try {
		ComuneDto input = new ComuneDto();
		input.setIdProvincia(new BigDecimal(codProvincia));
		List<ComuneDto> elenco = getComuneDao().findFindByProv(input);
		for (ComuneDto comuneDto : elenco) {
			Comune x = new Comune();
			x.setId(comuneDto.getIdComune().intValue());
			x.setDescrizione(comuneDto.getDescrizione());
			ris.add(x);
		}
	} catch (ComuneDaoException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return ris;
}

RegioneDao regioneDao = null;
public RegioneDao getRegioneDao() {
	return regioneDao;
}

public void setRegioneDao(RegioneDao regioneDao) {
	this.regioneDao = regioneDao;
}

public ProvinciaDao getProvinciaDao() {
	return provinciaDao;
}

public void setProvinciaDao(ProvinciaDao provinciaDao) {
	this.provinciaDao = provinciaDao;
}
ProvinciaDao provinciaDao=null;

ComuneDao comuneDao = null;
public ComuneDao getComuneDao() {
	return comuneDao;
}

public void setComuneDao(ComuneDao comuneDao) {
	this.comuneDao = comuneDao;
}

}


