Esempio n. 1
0
        private async Task CreateAndSaveInterdepartEntityAsync(Document document)
        {
            InterdepartRequest interdepartRequest = new InterdepartRequest(document,
                                                                           (int)InterdepartStatusType.AwaitingDispatch);

            await _context.InterdepartRequests.AddAsync(interdepartRequest);

            await _context.SaveChangesAsync();
        }
Esempio n. 2
0
 private void Verification(InterdepartRequest interdepart)
 {
     if (VerificationNumberAndSeries(interdepart))
     {
         Send(interdepart, (int)InterdepartStatus.Success);
     }
     else
     {
         Send(interdepart, (int)InterdepartStatus.Denied);
     }
 }
Esempio n. 3
0
        public async Task RequestAsync(Document document)
        {
            InterdepartRequest interdepartRequest;

            if (Verification(document))
            {
                interdepartRequest = new InterdepartRequest(document.Id,
                                                            (int)InterdepartStatusType.Confirmed);
            }
            else
            {
                interdepartRequest = new InterdepartRequest(document.Id,
                                                            (int)InterdepartStatusType.Denied);
            }

            _documentRepository.Add(interdepartRequest);
            await _documentRepository.SaveAllAsync();
        }
Esempio n. 4
0
        private void Send(InterdepartRequest interdepart, int status)
        {
            InterdepartResponse interdepartResponse = new InterdepartResponse(interdepart.Id, status);
            var factory = new ConnectionFactory();

            factory.Uri = new System.Uri(Settings.Uri);

            using var connection = factory.CreateConnection();
            using var channel    = connection.CreateModel();

            channel.QueueDeclare(queue: Settings.KeyResponse,
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            string message = JsonConvert.SerializeObject(interdepartResponse);
            var    body    = System.Text.Encoding.UTF8.GetBytes(message);

            channel.BasicPublish(exchange: "", routingKey: Settings.KeyResponse, basicProperties: null, body: body);
        }
Esempio n. 5
0
        private bool VerificationNumberAndSeries(InterdepartRequest interdepart)
        {
            if (string.IsNullOrWhiteSpace(interdepart.Number))
            {
                return(false);
            }

            if (string.IsNullOrWhiteSpace(interdepart.Series))
            {
                return(false);
            }

            if (interdepart.Number.Length != 6)
            {
                return(false);
            }

            if (interdepart.Series.Length != 4)
            {
                return(false);
            }

            return(true);
        }