private static void Main(string[] args) { var requestService = GetServiceProvider() .GetRequiredService <IRequestService>(); var url = ConsoleInput("url"); // "https://localhost:5003/api"; var segment = ConsoleInput("segment"); // "passage"; var doorReaderSerialNumber = ConsoleInput("door reader serial number"); while (true) { Console.WriteLine(); var request = new PassageRequest { CardUniqueNumber = ConsoleInput("card unique number"), DoorReaderSerialNumber = doorReaderSerialNumber, }; var message = requestService .SendAsync( request, url, new string[] { segment }) .GetAwaiter() .GetResult(); Console.WriteLine(message); if (!Question()) { return; } } }
public async Task <IActionResult> PostAsync([FromBody] PassageRequest request) { var currentCardDto = (await _cardManager .GetAllAsync(uniqueNumbers: new string[] { request.CardUniqueNumber })) .FirstOrDefault(); if (currentCardDto is null) { return(NotFound()); } var currentDoorReaderDto = (await _doorReaderManager .GetAllAsync( serialNumbers: new string[] { request.DoorReaderSerialNumber }, includes: new string[] { nameof(DoorReader.Door) })) .FirstOrDefault(); if (currentDoorReaderDto is null) { return(NotFound()); } var doorActionStatus = DoorActionStatusType.Success; if (currentCardDto.Status == CardStatusType.Locked) { doorActionStatus = DoorActionStatusType.Error; } if (currentDoorReaderDto.Door.Status != DoorStatusType.Active) { doorActionStatus = DoorActionStatusType.Error; } if (currentCardDto.Level < currentDoorReaderDto.Door.Level) { doorActionStatus = DoorActionStatusType.Denied; } var doorActionDto = new DoorActionDto { CardId = currentCardDto.Id, DoorReaderId = currentDoorReaderDto.Id, Status = doorActionStatus, TimeStamp = DateTime.Now, }; await _doorActionManager.AddAsync(doorActionDto); await _commitManager.SaveAsync(); return(doorActionStatus != DoorActionStatusType.Success ? BadRequest() : Ok()); }
public async Task <string> SendAsync( PassageRequest request, string url, params string[] segments) { var message = MessageResource.Success; try { await url.AppendPathSegments(segments) .PostJsonAsync(request); } catch (FlurlHttpException ex) { message = ex.Message; } return(message); }