/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='request'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <object> TrackProgressAsync(this IGoals operations, TrackProgressRequest request, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.TrackProgressWithHttpMessagesAsync(request, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public async Task <ActionResult <ProgressModel> > TrackProgress(TrackProgressRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } try { var result = await _repository.TrackProgress( User.Claims.GetUserId(), new GoalProgressEntity { GoalId = request.GoalId, Weight = request.Weight, Date = request.Date }); var response = new ProgressModel { ProgressId = result.ProgressId, Weight = result.Weight, GoalId = result.GoalId, Date = result.Date }; return(response); } catch (DbException ex) { if (ex.Code == 50100) { return(Forbid()); } return(BadRequest(ex.Message)); } catch (Exception) { return(StatusCode(500)); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='request'> /// </param> public static object TrackProgress(this IGoals operations, TrackProgressRequest request) { return(Task.Factory.StartNew(s => ((IGoals)s).TrackProgressAsync(request), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }