public async Task <Ticket> AddNewTicket(TicketCreateCommand positionCreateCommand, CancellationToken cancellationToken)
        {
            var    ticketdetails = _mapper.Map <Ticket>(positionCreateCommand);
            Random rn            = new Random(10000000);

            ticketdetails.Id          = rn.Next().ToString();
            ticketdetails.Ticketid    = "T" + rn.Next().ToString();
            ticketdetails.CreatedDate = DateTime.Now;
            ticketdetails.Status      = "Open";
            ticketdetails.AssignTo    = new Recruiter()
            {
                Name = "Nathan S"
            };
            _databaseContext.Tickets.Add(ticketdetails);
            //_databaseContext.SaveChanges();
            await _databaseContext.SaveChangesAsync(cancellationToken);

            //await _notificationService.NotifyRecruiterAboutNewOpenPosition(ticketdetails, cancellationToken);

            return(ticketdetails);
        }
        private async Task <ComposeExtensionResponse> CreateResponseToConfirmCreatePostingCommand(TicketCreateCommand data)
        {
            var position = await _positionService.GetById(data.Id);

            var extensionAttachment = _mapper.Map <ComposeExtensionAttachment>(position);

            return(new ComposeExtensionResponse
            {
                ComposeExtension = new ComposeExtensionResult
                {
                    AttachmentLayout = AttachmentLayoutTypes.List,
                    Type = "result",
                    Attachments = new List <ComposeExtensionAttachment>
                    {
                        extensionAttachment
                    }
                }
            });
        }
        private async Task <TaskModuleResponseEnvelope> CreateConfirmJobPostingTaskModuleResponse(TicketCreateCommand positionCreateCommand, CancellationToken cancellationToken)
        {
            var position = await _positionService.AddNewTicket(positionCreateCommand, cancellationToken);

            positionCreateCommand.CommandId = AppCommands.ConfirmCreationOfNewPosition;
            positionCreateCommand.Ticketid  = position.Ticketid;

            var card = _mapper.Map <AdaptiveCard>(position);

            card.Actions = new List <AdaptiveAction>
            {
                new AdaptiveSubmitAction
                {
                    Title = "Confirm posting",
                    Data  = positionCreateCommand
                },
                new AdaptiveSubmitAction
                {
                    Title = "Cancel"
                }
            };

            return(new TaskModuleResponseEnvelope
            {
                Task = new TaskModuleContinueResponse
                {
                    Type = "continue",
                    Value = new TaskModuleTaskInfo
                    {
                        Card = card.ToAttachment(),
                        Title = "Confirm new posting",
                        Width = "medium",
                        Height = "medium"
                    }
                }
            });
        }