private void SendMessageToSilkQueue(SilkEvent request)
        {
            using (IAmazonSQS sqs = new AmazonSQSClient(AwsSettings.AwsAccessKey, AwsSettings.AwsSecretKey,
                                                        RegionEndpoint.USEast1))
            {
                SendMessageRequest queueRequest = new SendMessageRequest
                {
                    MessageBody = JsonConvert.SerializeObject(request),
                    QueueUrl    = AwsSettings.SilkProcessingQueueUrl
                };

                sqs.SendMessageAsync(queueRequest);
            }
        }
        public override void LoanOpened(object sender, EventArgs e)
        {
            Loan loan         = EncompassApplication.CurrentLoan;
            var  currentUser  = loan.Session.GetCurrentUser();
            bool isPortalUser = currentUser.ID.Equals("portal");
            bool isSilkLoan   = loan.Fields["411"].ToString().Contains("Silk") ||
                                loan.Fields["419"].ToString().Contains("Silk");
            var processorId         = loan.Fields["LPID"];
            var closerId            = loan.Fields["CLID"];
            var processorAssignDate = loan.Fields["CX.SILK.PROCESR.ASSIGN.DATE"];
            var closerAssignDate    = loan.Fields["CX.SILK.CLOSER.ASSIGN.DATE"];
            var orderId             = loan.Fields["187"].ToString();

            bool isOrderIdCorrect = !loan.Fields["CX.SILK.ORDER.ID.FAILURE"].Value.Equals("Y");

            if (isPortalUser == false && isOrderIdCorrect)
            {
                if (isSilkLoan && !string.IsNullOrEmpty(orderId))
                {
                    if (!processorId.IsEmpty() && processorAssignDate.IsEmpty())
                    {
                        SilkEvent queueMessage = new SilkEvent()
                        {
                            LoanNumber = loan.LoanNumber,
                            OrderId    = loan.Fields["187"].ToString(),
                            EventType  = "Processor",
                            UserEmail  = loan.Fields["LoanTeamMember.Email.Processor"].ToString()
                        };
                        SendMessageToSilkQueue(queueMessage);
                    }

                    if (!closerId.IsEmpty() && closerAssignDate.IsEmpty())
                    {
                        SilkEvent queueMessage = new SilkEvent()
                        {
                            LoanNumber = loan.LoanNumber,
                            OrderId    = loan.Fields["187"].ToString(),
                            EventType  = "Closer",
                            UserEmail  = loan.Fields["LoanTeamMember.Email.Closer"].ToString()
                        };
                        SendMessageToSilkQueue(queueMessage);
                    }
                }
            }
        }