private async Task CreateAndSaveInterdepartEntityAsync(Document document) { InterdepartRequest interdepartRequest = new InterdepartRequest(document, (int)InterdepartStatusType.AwaitingDispatch); await _context.InterdepartRequests.AddAsync(interdepartRequest); await _context.SaveChangesAsync(); }
private void Verification(InterdepartRequest interdepart) { if (VerificationNumberAndSeries(interdepart)) { Send(interdepart, (int)InterdepartStatus.Success); } else { Send(interdepart, (int)InterdepartStatus.Denied); } }
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(); }
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); }
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); }