public void CancelEventNotFound() { //Arrange SetBasicMockDb(); var controller = new EventController(_logs, _eventRepo); var cancel = new EventCancelled { EventId = "0" }; //Act var result = controller.CancelEvent(cancel); //Assert Assert.IsType <NotFoundResult>(result); }
public IActionResult CancelEvent([FromBody] EventCancelled cancelEvent) { var authenticatedUser = GetAuthenticatedUserNetname(); if (!_eventRepo.IsAuthorized(cancelEvent.EventId, authenticatedUser, Role.Creator, true)) { return(Forbid()); } var result = _eventRepo.RemoveEventAsync(cancelEvent).Result; if (result != EventActionResult.Success) { return(NotFound()); } return(Ok()); }
public void Start() { if (Sourse != null && !Sourse.IsCancellationRequested) { return; } Sourse = new CancellationTokenSource(); var callOptions = new CallOptions(new Metadata { new Metadata.Entry("mailbox-name", "game") }, cancellationToken: Sourse.Token); var _call = _client.Mailbox(callOptions.WithWaitForReady()); _ = Task.Run(async() => { var incomeMailQueue = _dbMailQueueRepository.GetIncomeMailQueue(); await foreach (var message in _call.ResponseStream.ReadAllAsync(Sourse.Token)) { await incomeMailQueue.WriteAsync(new MailPacket { Id = message.Id, Content = message.Content.ToByteArray(), Reserve = message.Reserve, UserId = message.UserId, ClientId = message.ClientId }); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("!!!end"); Console.ResetColor(); }, Sourse.Token); _ = Task.Run(async() => { while (!Sourse.Token.IsCancellationRequested) { try { if (CurrentMail == null) { if (await _mailChannel.Reader.WaitToReadAsync(Sourse.Token)) { if (_mailChannel.Reader.TryRead(out var mail)) { CurrentMail = mail; await WriteDBMail(CurrentMail); CurrentMail = null; } } else { break; } } else { await WriteDBMail(CurrentMail); CurrentMail = null; } } catch (Exception e) { _logger.LogWarning(e.Message); Sourse.Cancel(); } } }, Sourse.Token); async Task WriteDBMail(MailPacket mail) { var forward = new ForwardMailMessage { Id = mail.Id, Content = mail.Content != null?Google.Protobuf.ByteString.CopyFrom(mail.Content) : Google.Protobuf.ByteString.Empty, Reserve = mail.ClientId, UserId = mail.UserId, ClientId = mail.ClientId }; try { await _call.RequestStream.WriteAsync(forward); } catch (Exception e) { _logger.LogWarning(e.Message); Sourse.Cancel(); EventCancelled?.Invoke(_type); } } }