public async Task <IActionResult> InviteAdministrator([FromBody] AdministratorInvitationInfo invitationInfo)
        {
            var(_, isFailure, error) = await _invitationService.SendInvitation(invitationInfo);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
        public Task <Result> SendInvitation(AdministratorInvitationInfo invitationInfo)
        {
            var messagePayloadGenerator = new Func <AdministratorInvitationInfo, string, DataWithCompanyInfo>((info, invitationCode) => new AdministratorInvitationData
            {
                InvitationCode   = invitationCode,
                UserEmailAddress = invitationInfo.Email,
                UserName         = $"{invitationInfo.FirstName} {invitationInfo.LastName}"
            });

            return(_userInvitationService.Send(invitationInfo.Email, invitationInfo, messagePayloadGenerator, _options.MailTemplateId,
                                               UserInvitationTypes.Administrator));
        }