Exemple #1
0
        public async Task <IActionResult> Get(int id,
                                              [FromQuery] bool forUpdate = false)
        {
            if (id < 1)
            {
                return(new NotFoundResult());
            }
            if (forUpdate)
            {
                var unitOfWork = _serviceProvider.GetService <IUnitOfWork <Vehicle> >();
                HttpContext.Response.RegisterForDispose(unitOfWork);
                var result = await unitOfWork.Repo.LoadAsync(id, User, true);

                // return version for tracking on vehicle. It is not
                // part of the C# class so it is tracked as a "shadow property"
                var concurrencyResult = new VehicleConcurrencyResolver
                {
                    OriginalVehicle = result,
                    RowVersion      = result == null ? null :
                                      await unitOfWork.Repo.GetPropertyValueAsync <byte[]>(
                        result, VehicleContext.RowVersion)
                };
                return(new OkObjectResult(concurrencyResult));
            }
            else
            {
                var result = await _repo.LoadAsync(id, User);

                return(result == null ? (IActionResult) new NotFoundResult() :
                       new OkObjectResult(result));
            }
        }
Exemple #2
0
        public async Task <IActionResult> GetCalculation(int calculationId)
        {
            var result = await _repository.LoadAsync(calculationId, User);

            return(Accepted(result));
        }