public async Task <CreateInvitation> CreateInvitationAsync([FromBody] CreateInvitationRequest request)
        {
            var(auth, tenantId, adminId, adminEmail) = Authorize();

            if (!auth)
            {
                return(new CreateInvitation());
            }

            var invite = ValidatorLinkEntity.Generate(tenantId, Guid.NewGuid().ToString("N"));

            invite.InvitationToken     = Guid.NewGuid().ToString("N") + Guid.NewGuid().ToString("N") + Guid.NewGuid().ToString("N");
            invite.Name                = request.Name;
            invite.Position            = request.Position;
            invite.Description         = request.Description;
            invite.CreatedAt           = DateTime.UtcNow;
            invite.CreatedByAdminId    = adminId;
            invite.CreatedByAdminEmail = adminEmail;
            await _validationWriter.InsertOrReplaceAsync(invite);


            _logger.LogInformation("Invitation Created. TenantId: {TenantId}; AdminId: {AdminId}", tenantId, adminId);

            var resp = new CreateInvitation()
            {
                TenantId        = invite.TenantId,
                InvitationToken = invite.InvitationToken,
                Name            = invite.Name,
                Position        = invite.Position,
                Description     = invite.Description
            };

            return(resp);
        }
        public async Task <APIResponse> CreateInvitations(CreateInvitationRequest request)
        {
            try
            {
                var client = httpClientFactory.CreateClient(EventAssistantServiceOperation.serviceName);

                var         param       = JsonConvert.SerializeObject(request);
                HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json");

                var response = await client.PostAsync(servicesConfig.EventAssistant + EventAssistantServiceOperation.CreateInvitations(), contentPost);

                if (response.IsSuccessStatusCode)
                {
                    var multicode = JsonConvert.DeserializeObject <InvitationResponse>(await response.Content.ReadAsStringAsync());
                    return(new APIResponse(multicode, HttpStatusCode.Created));
                }

                return(new APIResponse(response.StatusCode));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'CreateMultiCode()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
Exemple #3
0
        public async Task <InviteModel> GetOrganizationInvite(string organizationId, string missionId)
        {
            try
            {
                var request = new CreateInvitationRequest()
                {
                    InviterId = AppSettings.CurrentUser.Id,
                    MissionId = missionId
                };

                var invite = _mapper.Map <InviteModel>(await _gatewayRepository.ApiOrganizationsByOrganizationIdInvitesPostAsync(organizationId, request));

                if (invite is null)
                {
                    throw new BusinessException("Une erreur s'est produite lors de la création de cette invitation.");
                }
                //if (invite.IsRevoked)
                //    throw new BusinessException("Cette invitation est révoquée et ne peut plus être utilisée.");
                if (invite.Expires <= DateTime.UtcNow)
                {
                    throw new BusinessException("Cette invitation est expirée et ne peut plus être utilisée.");
                }

                return(invite);
            }
            catch (ApiException dalExc)
            {
                throw dalExc;
            }
            catch (Exception exc)
            {
                throw;
            }
        }
Exemple #4
0
 public Handle_Returns
 (
     WebApplicationFactory <Startup> aWebApplicationFactory,
     JsonSerializerSettings aJsonSerializerSettings
 ) : base(aWebApplicationFactory, aJsonSerializerSettings)
 {
     CreateInvitationRequest = CreateValidCreateInvitationRequest();
 }
 public void Arrange()
 {
     _userId = Guid.NewGuid().ToString();
     UserService.FindByEmail("*****@*****.**").Returns(new LoginUser()
     {
         Id = _userId
     });
     _createInvitationRequest = BuildCreateInvitationRequest();
 }
Exemple #6
0
        internal void ValidateCreateInvitationResponse(CreateInvitationRequest aCreateInvitationRequest, CreateInvitationResponse aCreateInvitationResponse)
        {
            aCreateInvitationResponse.CorrelationId.Should().Be(aCreateInvitationRequest.CorrelationId);
            aCreateInvitationResponse.ConnectionInvitationMessage.Id.Should().NotBeNullOrEmpty();
            aCreateInvitationResponse.ConnectionInvitationMessage.ImageUrl.Should().BeNull();
            aCreateInvitationResponse.ConnectionInvitationMessage.Label.Should().Be("Faber");
            aCreateInvitationResponse.ConnectionInvitationMessage.RecipientKeys.Count.Should().Be(1);
            aCreateInvitationResponse.ConnectionInvitationMessage.RoutingKeys.Count.Should().Be(1);
            aCreateInvitationResponse.ConnectionInvitationMessage.ServiceEndpoint.Should().Be("https://localhost:5551");
            aCreateInvitationResponse.ConnectionInvitationMessage.Type.Should().Be("did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation");

            aCreateInvitationResponse.InvitationUrl.Should().NotBeNull();
        }
        protected static CreateInvitationRequest BuildCreateInvitationRequest()
        {
            var createInvitationRequest = new CreateInvitationRequest()
            {
                Email        = "*****@*****.**",
                GivenName    = "InvitedGivenName",
                FamilyName   = "InvitedFamilyName",
                SourceId     = "InvitedSourceId",
                UserRedirect = new Uri("https://localhost/userredirect"),
                Callback     = new Uri("https://localhost/callback"),
                ClientId     = ClientId
            };

            return(createInvitationRequest);
        }
        public async Task <IActionResult> CreateInvitations([FromBody] CreateInvitationRequest request)
        {
            var result = await invitationService.CreateInvitations(request);

            return(StatusCode((int)result.Code, result.Value));
        }
        protected static CreateInvitationRequest BuildEmptyCreateInvitationRequest()
        {
            var createInvitationRequest = new CreateInvitationRequest();

            return(createInvitationRequest);
        }
        public ActionResult AddInvitation(CreateInvitationRequest createRequest)
        {
            var newInvitation = _repository.AddInvitation(createRequest.UserEmail, createRequest.EventId, createRequest.Link);

            return(Created($"api/invitation/{newInvitation.Id}", newInvitation));
        }