public static Dictionary<string, List<DataTuple>> GetSplitDatatuples2(List<DataTuple> newDatatuples, List<long> primaryKeys, DatasetVersion workingCopy, ref List<AbstractTuple> datatuplesFromDatabase)
{
Dictionary<string, List<DataTuple>> data = new Dictionary<string, List<DataTuple>>();
List<DataTuple> newDtList = new List<DataTuple>();
List<DataTuple> editDtList = new List<DataTuple>();
List<DataTuple> deleteDtList = new List<DataTuple>();
DatasetManager datasetManager = new DatasetManager();
DataTuple sourceDt;
Dictionary<long, string> PkValues;
// load datatuples from db
// later packagesize
for (int j = 0; j < newDatatuples.Count(); j++)
{
DataTuple newDt = newDatatuples.ElementAt(j);
if (!IsEmpty(newDt))
{
PkValues = getPrimaryKeyValues(newDt, primaryKeys);
bool exist = false;
for (int i = 0; i < datatuplesFromDatabase.Count; i++)
{
sourceDt = (DataTuple)datatuplesFromDatabase.ElementAt(i);
if (sourceDt != null && sameDatatuple(sourceDt, PkValues))
{
// check for edit
exist = true;
if (!Equal2(newDt, sourceDt))
{
//sourceDt.Materialize();
editDtList.Add(Merge(newDt, sourceDt));
}
if (datatuplesFromDatabase.Count > 0)
{
datatuplesFromDatabase.RemoveAt(i);
}
break;
}
}
if (!exist)
newDtList.Add(newDt);
}
}
//}
data.Add("new", newDtList);
data.Add("edit", editDtList);
return data;
}