BExIS.Dcm.UploadWizard.UploadWizardHelper.GetSplitDatatuples2 C# (CSharp) Метод

GetSplitDatatuples2() публичный статический Метод

public static GetSplitDatatuples2 ( List newDatatuples, List primaryKeys, DatasetVersion workingCopy, List &datatuplesFromDatabase ) : List>.Dictionary
newDatatuples List
primaryKeys List
workingCopy BExIS.Dlm.Entities.Data.DatasetVersion
datatuplesFromDatabase List
Результат List>.Dictionary
        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;
        }