Example #1
0
        //######################################
        // 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);
            }
        }
Example #2
0
        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);
            }
        }