//###################################### // AddObject //###################################### internal List <T> AddObject <T>(int parentId, NewObjectParameters parameters, Func <SearchFilter[], List <T> > getObjects, bool resolve, Action <Type, int> errorCallback = null, Func <bool> shouldStop = null, bool allowMultiple = false) where T : SensorOrDeviceOrGroupOrProbe { if (resolve) { var filters = RequestParser.GetFilters(parentId, parameters); Action addObjectInternal = () => AddObjectInternal(parentId, parameters); Func <List <T> > getObjs = () => getObjects(filters); return((ResolveWithDiff(addObjectInternal, getObjs, ResponseParser.ExceptTableObject, errorCallback, shouldStop, allowMultiple)).OrderBy(o => o.Id).ToList()); } else { AddObjectInternal(parentId, parameters); return(null); } }
internal async Task <List <T> > AddObjectAsync <T>(int parentId, NewObjectParameters parameters, Func <SearchFilter[], Task <List <T> > > getObjects, bool resolve, Action <Type, int> errorCallback = null, Func <bool> shouldStop = null, bool allowMultiple = false) where T : SensorOrDeviceOrGroupOrProbe { if (resolve) { var filters = RequestParser.GetFilters(parentId, parameters); Func <Task> addObjectInternal = async() => await AddObjectInternalAsync(parentId, parameters).ConfigureAwait(false); Func <Task <List <T> > > getObjs = async() => await getObjects(filters).ConfigureAwait(false); return((await ResolveWithDiffAsync(addObjectInternal, getObjs, ResponseParser.ExceptTableObject, errorCallback, shouldStop, allowMultiple).ConfigureAwait(false)).OrderBy(o => o.Id).ToList()); } else { await AddObjectInternalAsync(parentId, parameters).ConfigureAwait(false); return(null); } }