public async Task <DeliveryCompleted> ProcessSingleFile(FileDelivered filedeliveredcommand) { SingleFile singlefile = new SingleFile(filedeliveredcommand.DeliveryId) { Customer = filedeliveredcommand.Customer, FileName = filedeliveredcommand.FileName, Flow = filedeliveredcommand.Flow, }; await PreProcessFile(singlefile); await ProcessFile(singlefile); await PostProcessFile(singlefile); //Guid headerid = Guid.NewGuid(); //create header //await _service.AddHeader(singlefile.DeliveryId, singlefile.Flow); //save files recursief //recursief opslaan //beastanden verwijderen //ophalen vervolgacties??? //notificeren return(new DeliveryCompleted(Guid.NewGuid(), singlefile.DeliveryId.ToString(), singlefile.Customer, singlefile.Flow, "")); }
public DateTime?GetDisplayRequestTime() { if (SendDate != null && (FileDelivered.GetValueOrDefault() || DocumentDelivered.GetValueOrDefault())) { return(SendDate); } if (DocumentProcessedSuccessfully()) { return(RequestTime); } return(null); }
private async Task HandleAsync(RealtimeTriggered realtimetriggered) { //ophalen alles bestanden die voldoen aan de trigger //bestanden verplaatsten naar inprocess map (in mapje met id). //dan de volgende queue aanroepen voor de echte verwerking var files = Directory.GetFiles(realtimetriggered.Folder, realtimetriggered.Filter); foreach (var file in files) { //kijken of file gelocked is, zo ja dan overslaan File.Move(file, Path.Combine(Path.GetDirectoryName(file), "InProcess", Path.GetFileName(file))); FileDelivered e = new FileDelivered(realtimetriggered.MessageId, Guid.NewGuid(), Path.Combine(Path.GetDirectoryName(file), "InProcess", Path.GetFileName(file)), realtimetriggered.Flow, realtimetriggered.Customer); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); } //await Task.Delay(2000); }
private async Task HandleAsync(FileDelivered fileDelivered) { DeliveryCompleted e = await _service.ProcessSingleFile(fileDelivered); //await _messagePublisher.PublishMessageAsync(e.MessageType, e, "DataService", null); //await _messagePublisher.PublishMessageAsync(e.MessageType, e, "notification", null); //var jobs = await _repo.GetMaintenanceJobsToBeInvoicedAsync(); //foreach (var jobsPerCustomer in jobs.GroupBy(job => job.CustomerId)) //{ // DateTime invoiceDate = DateTime.Now; // string customerId = jobsPerCustomer.Key; // Customer customer = await _repo.GetCustomerAsync(customerId); // Invoice invoice = new Invoice // { // InvoiceId = $"{invoiceDate.ToString("yyyyMMddhhmmss")}-{customerId.Substring(0, 4)}", // InvoiceDate = invoiceDate.Date, // CustomerId = customer.CustomerId, // JobIds = string.Join('|', jobsPerCustomer.Select(j => j.JobId)) // }; // StringBuilder specification = new StringBuilder(); // decimal totalAmount = 0; // foreach (var job in jobsPerCustomer) // { // TimeSpan duration = job.EndTime.Value.Subtract(job.StartTime.Value); // decimal amount = Math.Round((decimal)duration.TotalHours * HOURLY_RATE, 2); // totalAmount += amount; // specification.AppendLine($"{job.EndTime.Value.ToString("dd-MM-yyyy")} : {job.Description} on vehicle with license {job.LicenseNumber} - Duration: {duration.TotalHours} hour - Amount: € {amount}"); // } // invoice.Specification = specification.ToString(); // invoice.Amount = totalAmount; // await SendInvoice(customer, invoice); // await _repo.RegisterInvoiceAsync(invoice); // Log.Information("Invoice {Id} sent to {Customer}", invoice.InvoiceId, customer.Name); //} }