Пример #1
0
        public void TwoRowsWithInOut_OneRowReturned()
        {
            const string firstLine   = "Date,Team Member,In/Out,Time,Duration";
            var          columnNames = firstLine.Split(",").ToList();
            var          dataTable   = new DataTable();

            columnNames.ForEach(columnName => dataTable.Columns.Add(columnName));

            var lines = new List <string>
            {
                "Thu-01-Feb,Espen K. Brun,IN,8:30 am,9.25",
                "Thu-01-Feb,Espen K. Brun,OUT,5:45 pm"
            };

            lines.ForEach(line =>
            {
                var values = line?.Split(',');

                var row       = dataTable.NewRow();
                row.ItemArray = values;
                dataTable.Rows.Add(row);
            });

            var timeBlocks = DataTableConverter.ToTimeBlocks(dataTable);

            Assert.Single(timeBlocks);
            var timeBlock = timeBlocks.Single();

            Assert.Equal(new TimeSpan(9, 15, 0), timeBlock.Worked);
        }
Пример #2
0
        public async Task <IActionResult> Post(List <IFormFile> files)
        {
            ValidateFile(files);
            var dataTable = ParseToDataTable(files);

            if (dataTable.Rows.Count == 0)
            {
                return(Ok(new { rows = dataTable.Rows.Count, columns = dataTable.Columns.Count }));
            }

            var timeBlocks = DataTableConverter.ToTimeBlocks(dataTable);

            Context.AddRange(timeBlocks);
            await Context.SaveChangesAsync();

            return(Ok(new { rows = dataTable.Rows.Count, columns = dataTable.Columns.Count }));
        }