Beispiel #1
0
        public async Task <IActionResult> Accept([FromBody] ComplaintAcceptModel model)
        {
            if (model == null)
            {
                return(ReturnError(ErrorCodes.IncomingPayloadIsMissing, nameof(Accept)));
            }
            try
            {
                var brokerId  = User.TryGetBrokerId().Value;
                var apiUserId = User.UserId();
                _ = await _apiOrderService.GetOrderAsync(model.OrderNumber, brokerId);

                var user = await _apiUserService.GetBrokerUser(model.CallingUser, brokerId);

                var complaint = await GetCreatedComplaint(model.OrderNumber, brokerId);

                _complaintService.Accept(complaint, user?.Id ?? apiUserId, user != null ? (int?)apiUserId : null);

                await _dbContext.SaveChangesAsync();

                //End of service
                return(Ok(new ResponseBase()));
            }
            catch (InvalidApiCallException ex)
            {
                return(ReturnError(ex.ErrorCode, nameof(Accept)));
            }
        }
        private async Task <bool> Accept(string orderNumber)
        {
            var payload = new ComplaintAcceptModel
            {
                OrderNumber = orderNumber,
                CallingUser = "******"
            };

            using var content = new StringContent(JsonConvert.SerializeObject(payload, Formatting.Indented), Encoding.UTF8, "application/json");
            var response = await client.PostAsync(_options.TolkApiBaseUrl.BuildUri("Complaint/Accept"), content);

            if (JsonConvert.DeserializeObject <ResponseBase>(await response.Content.ReadAsStringAsync()).Success)
            {
                await _hubContext.Clients.All.SendAsync("OutgoingCall", $"[Request/Accept]:: Boknings-ID: {orderNumber} accepterat reklamation");
            }
            else
            {
                await _hubContext.Clients.All.SendAsync("OutgoingCall", $"[Request/Accept] FAILED:: Boknings-ID: {orderNumber} accepterat reklamation");
            }

            return(true);
        }