Exemple #1
0
        public async Task <XResult <T> > OperationWrap <T>(Func <Task <TableResult> > func)
        {
            try
            {
                var result = await func();

                if (result.HttpStatusCode != (int)HttpStatusCode.OK && result.HttpStatusCode != (int)HttpStatusCode.NoContent)
                {
                    return
                        (XResult <T> .GetBadRequest(String.Format("Table Storage not OK result: {0}",
                                                                  result.HttpStatusCode)));
                }

                if (result.Result == null)
                {
                    return
                        (XResult <T> .GetNotFound(String.Format("Table Storage item not found: {0}",
                                                                result.HttpStatusCode)));
                }

                return(new XResult <T>((T)result.Result));
            }
            catch (Exception ex)
            {
                _logService.TrackException(ex);
                return(XResult <T> .GetException("TableStorage " + ex.ToString(), ex));
            }
        }
Exemple #2
0
        public async Task <XResult <IList <T> > > GetList(params Expression <Func <T, bool> >[] queries)
        {
            if (queries.Length == 0)
            {
                return(XResult <IList <T> > .GetBadRequest("No queries passed in to GetList"));
            }

            await _init();

            var q = _client.CreateDocumentQuery <T>(_collection.DocumentsLink)
                    .Where(queries[0]);

            foreach (var subQuery in queries)
            {
                if (subQuery == queries[0])
                {
                    continue;
                }
                q = q.Where(subQuery);
            }

            var documents = await _queryAsync(q);

            if (!documents)
            {
                return(documents.Copy <IList <T> >());
            }

            var listItems = documents.Object;

            if (listItems == null || listItems.Count == 0)
            {
                return(XResult <IList <T> > .GetNotFound());
            }

            return(new XResult <IList <T> >(listItems));
        }
Exemple #3
0
        public async Task <XResult <T> > OperationWrapResourceResponse(Func <Task <ResourceResponse <Document> > > func)
        {
            try
            {
                var result = await func();

                if (result.StatusCode != HttpStatusCode.OK && result.StatusCode != HttpStatusCode.Created && result.StatusCode != HttpStatusCode.NoContent)
                {
                    return
                        (XResult <T> .GetBadRequest($"Document Database not OK result: {(int)result.StatusCode}"));
                }

                dynamic d = result.Resource;

                T dt = d;

                return(new XResult <T>(dt));
            }
            catch (Exception ex)
            {
                _logService.TrackException(ex);
                return(XResult <T> .GetException("Document DB " + ex.ToString(), ex));
            }
        }