Exemplo n.º 1
0
        public async Task HandleAddDataAction(CommentsAddAction action, IDispatcher dispatcher)
        {
            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", action.Token);
            var returnCode = HttpStatusCode.OK;
            var response   = await _httpClient.PostAsJsonAsync(
                $"{Const.Comments}", action.Comment);

            var returnData = await response.Content.ReadFromJsonAsync <Comment>();

            string returnString = response.IsSuccessStatusCode ? string.Empty : response.StatusCode.ToString();

            var userResult = new RootObject <Comment>();

            try
            {
                userResult = await _httpClient.GetFromJsonAsync <RootObject <Comment> >(
                    requestUri : Const.Comments, Const.HttpClientOptions);
            }
            catch (Exception e)
            {
                dispatcher.Dispatch(new NotificationAction($"Error: {e.Message}", SnackbarColor.Danger));
                returnCode = HttpStatusCode.BadRequest;
            }

            dispatcher.Dispatch(
                new CommentsAddResultAction(
                    comment: returnData ?? new Comment(),
                    statusCode: returnString,
                    rootObject: userResult ?? new RootObject <Comment>(),
                    httpStatusCode: returnCode));

            if (returnCode != HttpStatusCode.BadRequest)
            {
                dispatcher.Dispatch(
                    new NotificationAction(action.AddDataSuccessMessage, SnackbarColor.Success));
            }
        }
Exemplo n.º 2
0
 public static CommentsState ReduceAddAction(CommentsState state, CommentsAddAction action) =>