Я пытаюсь выяснить, как отправить файл, загруженный из пользовательского интерфейса (угловой), и отправить его в веб-службу .NET, чтобы он проанализировал файл CSV и создал список объектов.
Моя текущая идея о том, как должна работать логика,
Загрузка файла ---> Веб-служба (для анализа файла) -> Веб-API ---> База данных
это правильно?
Чего мне не хватает, чтобы отправить этот файл в службу, а затем из службы в контроллер API?
HTML:
<input type="file" (change)="onFileSelected($event)">
<button type="submit" (click)="onUpload" class="button">Upload</button>
Веб-сервис:
static void Main(string[] args)
{
string currentDirectory = Directory.GetCurrentDirectory();
DirectoryInfo directory = new DirectoryInfo(currentDirectory);
var fileName = Path.Combine(directory.FullName, "sample-data.csv");
var fileContents = ReadMonitoredEvent(fileName);
}
public static string ReadFile(string fileName)
{
using (var reader = new StreamReader(fileName))
{
return reader.ReadToEnd();
}
}
public static List<MonitoredEvent> ReadMonitoredEvent(string fileName)
{
var monitoredEventResults = new List<MonitoredEvent>();
using (var reader = new StreamReader(fileName))
{
string line = "";
reader.ReadLine();
while ((line = reader.ReadLine()) != null)
{
var monitoredEvent = new MonitoredEvent();
string[] values = line.Split(',');
DateTime eventDate;
TimeSpan eventTime;
float tlc;
float totalOrder;
//String.Format("{Short Date}", DateTime.Now);
if (DateTime.TryParse(values[3], out eventDate))
{
var date = eventDate.Date;
monitoredEvent.EventDate = date;
}
if(TimeSpan.TryParse(values[4], out eventTime))
{
monitoredEvent.Time = eventTime;
}
if (float.TryParse(values[6], out tlc))
{
monitoredEvent.TLC = tlc;
}
if (float.TryParse(values[5], out totalOrder))
{
monitoredEvent.TotalOrder = totalOrder;
}
monitoredEvent.Venue = values[0];
monitoredEvent.Event = values[1];
monitoredEvent.Section = values[2];
monitoredEvent.TicketType = values[7];
monitoredEvent.Source = values[8];
monitoredEvent.TicketPage = values[9];
monitoredEventResults.Add(monitoredEvent);
}
}
return monitoredEventResults;
}
У меня нет ни кода для контроллера, ни машинописи.
Я хочу, чтобы этот файл мог передаваться пользователем, загружающим его, во все объекты, хранящиеся в базе данных.