コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }