public override List <DataObject> Execute() { List <DataObject> dataList = new List <DataObject>(); using (Collection.WriterLock) { foreach (JObject item in Data) { // Unique 확인 if (UniqueFor != null && UniqueFor != "") { JToken valueToken = item.GetProperty(UniqueFor, false)?.Value; if (valueToken != null) { Dictionary <string, DataObject> result; if (valueToken.Type == JTokenType.String) { result = ScanFromData(Collection.GetObjects(UniqueFor), new ConditionToken($"{UniqueFor} == '{valueToken}'")); } else { result = ScanFromData(Collection.GetObjects(UniqueFor), new ConditionToken($"{UniqueFor} == {valueToken}")); } // Key 중복시 처리 if (result.Count() > 0) { if (OnDuplicate == "ignore") { continue; } if (OnDuplicate == "update") { foreach (var duplicatedItem in result.Values) { duplicatedItem.ReplaceData(item); } continue; } } } } var obj = Collection.AddData(item); dataList.Add(obj); } Storage.StorageEngine.Engine.InsertData(Collection, dataList); return(null); } }