async Task <ExpandoObject> SaveExcel(RequestFile ru, Stream stream, ExpandoObject prms, String fileName) { if (ru.availableModels != null) { using (var xp = new ExcelParser()) { if (fileName != null) { prms.Set("FileName", fileName); } var epr = xp.CreateDataModel(stream); String cols = String.Join("|", epr.Columns); var fm = ru.FindModel(null, cols); if (fm == null) { throw new RequestModelException($"There is no model for columns='{cols}'"); } prms.Append(fm.parameters); var dm = await _dbContext.SaveModelAsync(fm.CurrentSource(ru), fm.UpdateProcedure(ru), epr.Data, prms); return(dm?.Root); } } else if (String.IsNullOrEmpty(ru.CurrentModel)) { using (var xp = new ExcelParser()) { var epr = xp.CreateDataModel(stream); return(epr.Data); } } else { using (var xp = new ExcelParser()) { xp.ErrorMessage = "UI:@[Error.FileFormatException]"; IDataModel dm = await _dbContext.SaveModelAsync(ru.CurrentSource, ru.UpdateProcedure, null, prms, (table) => { return(xp.ParseFile(stream, table).Data); }); return(dm?.Root); } } }
async Task <ExpandoObject> SaveExcel(RequestFile ru, Stream stream, ExpandoObject prms) { if (String.IsNullOrEmpty(ru.CurrentModel)) { using (var xp = new ExcelParser()) { return(xp.CreateDataModel(stream)); } } else { using (var xp = new ExcelParser()) { xp.ErrorMessage = "UI:@[Error.FileFormatException]"; IDataModel dm = await _dbContext.SaveModelAsync(ru.CurrentSource, ru.UpdateProcedure, null, prms, (table) => { return(xp.ParseFile(stream, table)); }); return(dm?.Root); } } }