public ActionResult Create(long?Table, long?id) { var postedModel = ViewData[GlobalNames.PostedModel] as Engine.Areas.ImportExport.ServiceTests.ExcelStructreTable; if (postedModel != null) { Table = (long)postedModel.Table; } if (id.HasValue) { using (var db = new EngineContext()) { var table = db.ExcelStructreTables.Include("Nodes").FirstOrDefault(d => d.Id == id); if (table == null) { throw new Exception("ساختار جدول یافت نشد"); } return(View("Create", table)); } } try { if (Table.HasValue) { ExcelStructureTableNames type = 0; try { type = (ExcelStructureTableNames)Table.Value; } catch (Exception e) { throw new Exception("شماره نوع جدول اشتباه است"); } var factory = new TableColumnsStructureFactory(); IExcelImporter impoerter = factory.GetImporter(factory.GetImporterName(type)); ExcelStructreTable tbl = impoerter.GetTableTemplate(); return(View("Create", tbl)); } else { return(View("Create", new ExcelStructreTable())); } } catch (Exception e) { ViewData[GlobalNames.MVCResponseMessage] = new CustomResult { Message = e.Message, Status = CustomResultType.fail }; return(View("Create", new ExcelStructreTable())); } }
public string GetImporterName(ExcelStructureTableNames table) { switch (table) { case ExcelStructureTableNames.Personnel: return(TableColumnsStructureFactory.PersonnelName); break; case ExcelStructureTableNames.BiometricRawData: return(TableColumnsStructureFactory.BiometricRawDataName); break; } throw new ExcelImporterException("یافت نشد"); }