Exemple #1
0
        public async Task <IActionResult> ReadEmployeeExcel()
        {
            var file = Request.Form.Files[0];
            var rs   = new List <EmployeeErrorableModel>();
            await FileHelper.scanExcel(file, 6, async (header, row) =>
            {
                var employee    = new EmployeeErrorableModel();
                employee.person = new ApiModels.Core.PersonModel();
                try {
                    for (var i = 0; i < header.Cells.Count; i++)
                    {
                        await employee.UpdateEmployeeFromCell(header.Cells[i].StringCellValue, row.Cells[i],
                                                              async(p) =>
                        {
                            return(await _coreRep.ListEmployees(filter: p));
                        }, async(p) => {
                            return(await _coreRep.GetDepartments(filter: p));
                        });
                    }
                    employee.person.AutoGenerateDisplayName();
                    employee.person.AutoGenerateFullName();
                }
                catch (Exception e)
                {
                    employee.messages.Add(MessageModel.CreateError(e.Message + ". " + e.StackTrace));
                }
                rs.Add(employee);
            });

            return(Ok(new ResponseModel(rs)));
        }