public void TestAcceptGetXmlAttributes() { string xml = @"<roar tick=""128555559022""> <mail> <accept status=""ok""/> </mail> <!-- Inventory has changed upon receiving this mail --> <server> <inventory_changed/> </server> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Mail.Accept accept_parser = new Roar.DataConversion.Responses.Mail.Accept(); AcceptResponse response = accept_parser.Build(nn); Assert.IsNotNull(response); }
public override async Task <AcceptResponse> Accept(AcceptRequest request, ServerCallContext context) { var validatorId = request.ValidatorId; var validatorLinkEntity = _validatorLinkReader.Get().FirstOrDefault(v => v.InvitationToken == request.InviteId); if (validatorLinkEntity == null) { _logger.LogInformation("Cannot accept invitation: 'Invitation token is not correct'. InviteId='{InviteId}'; ValidatorId='{ValidatorId}'", request.InviteId, request.ValidatorId); return(new AcceptResponse() { Error = new ValidatorApiError() { Code = ValidatorApiError.Types.ErrorCodes.WrongInvitation, Message = "Invitation token is not correct" } }); } if (validatorLinkEntity.IsAccepted) { _logger.LogInformation("Cannot accept invitation: 'Invitation token already accepted'. InviteId='{InviteId}'; ValidatorId='{ValidatorId}'", request.InviteId, request.ValidatorId); return(new AcceptResponse() { Error = new ValidatorApiError() { Code = ValidatorApiError.Types.ErrorCodes.WrongInvitation, Message = "Invitation token already accepted" } }); } if (string.IsNullOrEmpty(request.PublicKeyPem)) { _logger.LogInformation("Cannot accept invitation: 'PublicKeyPem cannot be empty'. InviteId='{InviteId}'; ValidatorId='{ValidatorId}'", request.InviteId, request.ValidatorId); return(new AcceptResponse() { Error = new ValidatorApiError() { Code = ValidatorApiError.Types.ErrorCodes.WrongInvitation, Message = "PublicKeyPem cannot be empty" } }); } var token = GenerateJwtToken(validatorId, request.PublicKeyPem, validatorLinkEntity.ApiKeyId, validatorLinkEntity.TenantId); var resp = new AcceptResponse { ApiKey = token, Name = validatorLinkEntity.Name, Position = validatorLinkEntity.Position, Description = validatorLinkEntity.Description }; validatorLinkEntity.ValidatorId = request.ValidatorId; validatorLinkEntity.PublicKeyPem = request.PublicKeyPem; validatorLinkEntity.IsAccepted = true; validatorLinkEntity.DeviceInfo = request.DeviceInfo; validatorLinkEntity.PushNotificationFcmToken = request.PushNotificationFCMToken; await _validatorLinkWriter.InsertOrReplaceAsync(validatorLinkEntity); _logger.LogInformation("Invitation accepted. InviteId='{InviteId}'; ValidatorId='{ValidatorId}'; PushNotificationFcmToken='{PushNotificationFcmToken}'", request.InviteId, request.ValidatorId, request.PushNotificationFCMToken); return(resp); }