package com.aspose.words.examples.linq;
import java.io.File;
import java.io.FileInputStream;
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.examples.Utils;
import com.aspose.words.net.System.Data.DataRow;
import com.aspose.words.net.System.Data.DataSet;
import com.aspose.words.net.System.Data.DataTable;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class Common {
public static List<Manager> managers = new ArrayList<Manager>();
/// <summary>
/// Return first manager from Managers which is an enumeration of instances of the Manager class.
/// </summary>
public static Manager GetManager(){
for (Manager manager : GetManagers()) {
return manager;
}
return null;
}
/// <summary>
/// Return an dataset of the Client class.
/// </summary>
public static DataSet GetClients() throws Exception
{
// Create a new data set
DataSet dataSet = new DataSet("DS");
// Add a new table to store clients
DataTable dt = new DataTable("clients");
// Add columns
dt.getColumns().add("Name");
dataSet.getTables().add(dt);
// Populate the data in table
for (Manager manager : GetManagers()) {
List<Contract> listOfContracts = manager.getContracts();
for (Contract contract : listOfContracts) {
DataRow row = dt.newRow();
row.set("Name", contract.getClient().getName());
dt.getRows().add(row);
}
}
return dataSet;
}
/// <summary>
/// Return an enumeration of instances of the Manager class.
/// </summary>
private static List<Manager> GetManagers() {
Manager manager = new Manager();
manager.setName("John Smith");
manager.setAge(36);
manager.setPhoto(Photo());
Contract contract1 = new Contract();
Client client1 = new Client();
client1.setName("A Company");
contract1.setClient(client1);
contract1.setManager(manager);
contract1.setPrice(1200000);
contract1.setDate(new Date(2015, 1, 1));
Contract contract2 = new Contract();
Client client2 = new Client();
client2.setName("B Ltd.");
contract2.setClient(client2);
contract2.setManager(manager);
contract2.setPrice(750000);
contract2.setDate(new Date(2015, 4, 1));
Contract contract3 = new Contract();
Client client3 = new Client();
client3.setName("C & D");
contract3.setClient(client3);
contract3.setManager(manager);
contract3.setPrice(350000);
contract3.setDate(new Date(2015, 7, 1));
ArrayList<Contract> contracts = new ArrayList<Contract>();
contracts.add(contract1);
contracts.add(contract2);
contracts.add(contract3);
manager.setContracts(contracts);
managers.add(manager);
manager = new Manager();
manager.setName("Tony Anderson");
manager.setAge(37);
manager.setPhoto(Photo());
Contract contract4 = new Contract();
Client client4 = new Client();
client4.setName("E Corp.");
contract4.setClient(client4);
contract4.setManager(manager);
contract4.setPrice(650000);
Date date = new Date(2015, 2, 1);
contract4.setDate(date);
Contract contract5 = new Contract();
Client client5 = new Client();
client5.setName("F & Partners");
contract5.setClient(client5);
contract5.setManager(manager);
contract5.setPrice(550000);
contract5.setDate(new Date(2015, 8, 1));
ArrayList<Contract> contracts2 = new ArrayList<Contract>();
contracts2.add(contract4);
contracts2.add(contract5);
manager.setContracts(contracts2);
managers.add(manager);
manager = new Manager();
manager.setName("July James");
manager.setAge(38);
manager.setPhoto(Photo());
Contract contract6 = new Contract();
Client client6 = new Client();
client6.setName("G & Co.");
contract6.setClient(client6);
contract6.setManager(manager);
contract6.setPrice(350000);
contract6.setDate(new Date(2015, 2, 1));
Contract contract7 = new Contract();
Client client7 = new Client();
client7.setName("H Group");
contract7.setClient(client7);
contract7.setManager(manager);
contract7.setPrice(250000);
contract7.setDate(new Date(2015, 5, 1));
Contract contract8 = new Contract();
Client client8 = new Client();
client8.setName("I & Sons");
contract8.setClient(client8);
contract8.setManager(manager);
contract8.setPrice(100000);
contract8.setDate(new Date(2015, 7, 1));
Contract contract9 = new Contract();
Client client9 = new Client();
client9.setName("J Ent.");
contract9.setClient(client9);
contract9.setManager(manager);
contract9.setPrice(100000);
contract9.setDate(new Date(2015, 8, 1));
ArrayList<Contract> contracts3 = new ArrayList<Contract>();
contracts3.add(contract6);
contracts3.add(contract7);
contracts3.add(contract8);
contracts3.add(contract9);
manager.setContracts(contracts3);
managers.add(manager);
return managers;
}
/// <summary>
/// Return an array of photo bytes.
/// </summary>
private static byte[] Photo()
{
// The path to the documents directory.
String dataDir = Utils.getDataDir(Common.class);
File file = new File(dataDir + "photo.png");
return readContentIntoByteArray(file);
}
private static byte[] readContentIntoByteArray(File file)
{
FileInputStream fileInputStream = null;
byte[] bFile = new byte[(int) file.length()];
try
{
//convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
for (int i = 0; i < bFile.length; i++)
{
//System.out.print((char) bFile[i]);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return bFile;
}
/// <summary>
/// Return an dataset of the Contract class.
/// </summary>
public static DataSet GetContracts() throws Exception
{
// Create a new data set
DataSet ds = new DataSet("ds");
// Add a new table to store contracts
DataTable dtContracts = new DataTable("Contracts");
// Add a new table to store managers
DataTable dtManagers = new DataTable("Managers");
// Add a new table to store clients
DataTable dtClients = new DataTable("Clients");
// Add columns to Managers table
dtManagers.getColumns().add("Id", int.class);
dtManagers.getColumns().add("Name");
dtManagers.getColumns().add("Age", int.class);
dtManagers.getColumns().add("Photo", byte[].class);
ds.getTables().add(dtManagers);
// Add columns to Contracts table
dtContracts.getColumns().add("Id", int.class);
dtContracts.getColumns().add("ClientId", int.class);
dtContracts.getColumns().add("ManagerId", int.class);
dtContracts.getColumns().add("Price", float.class);
dtContracts.getColumns().add("Date", Date.class);
ds.getTables().add(dtContracts);
// Add columns to Clients table
dtClients.getColumns().add("Id", int.class);
dtClients.getColumns().add("Name");
ds.getTables().add(dtClients);
ds.getRelations().add(dtClients,dtContracts, "Id","ClientId");
ds.getRelations().add(dtManagers,dtContracts, "Id","ManagerId");
int managerCounter = 1;
int contractCounter =1;
int clientCounter = 1;
for (Manager manager : GetManagers()) {
// Add data row to managers table.
DataRow managerRow = dtManagers.newRow();
managerRow.set("Id", managerCounter);
managerRow.set("Name", manager.getName());
managerRow.set("Age", manager.getAge());
managerRow.set("Photo", manager.getPhoto());
dtManagers.getRows().add(managerRow);
for (Contract contract : manager.getContracts()) {
DataRow contractRow = dtContracts.newRow();
DataRow clientRow = dtClients.newRow();
clientRow.set("Id", clientCounter);
clientRow.set("Name", contract.getClient().getName());
dtClients.getRows().add(clientRow);
contractRow.set("Id", contractCounter);
contractRow.set("ClientId", clientCounter);
contractRow.set("ManagerId", managerCounter);
contractRow.set("Price", contract.getPrice());
contractRow.set("Date", contract.getDate());
dtContracts.getRows().add(contractRow);
clientCounter += 1;
contractCounter += 1;
}
managerCounter += 1;
}
return ds;
}
}