protected virtual async Task <Entity> FetchFirstOrDefaultAsync(Fetch fetch)
        {
            var request = new RetrieveSingleRequest(fetch)
            {
                EnforceSingle = false
            };
            var response = await ExecuteAsync(request).WithCurrentCulture() as RetrieveSingleResponse;

            return(response.Entity);
        }
예제 #2
0
        public IHttpActionResult RetrieveSingle(RetrieveSingleRequest request)
        {
            log.Info("RetrieveSingle");
            log.Info(JsonConvert.SerializeObject(request));
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            RetrieveSingleResponse results = new RetrieveSingleResponse();

            results.request = request;
            results.Result  = null;
            results.Errors  = new List <Dictionary <string, string> >();

            ColumnSet columns;

            if (request.Fields == null || request.Fields.Count == 0)
            {
                columns = new ColumnSet(true);
            }
            else
            {
                columns = new ColumnSet(request.Fields.ToArray());
            }

            try
            {
                results.Result = connect.Retrieve(request.Entity, request.Id, columns);
            }
            catch (Exception ex)
            {
                results.Errors.Add(new Dictionary <string, string> {
                    { "Message", ex.Message }, { "StackTrace", ex.StackTrace }
                });
                log.Error(ex.Message);
                log.Error(ex.StackTrace);
                if (ex.InnerException != null)
                {
                    log.Error(ex.InnerException.Message);
                }
            }
            return(Ok <RetrieveSingleResponse>(results));
        }