public ActionResult UploadFile() { string tableKey = Request["tableKey"]; string pageType = Request["pageType"]; HttpPostedFileBase file = Request.Files["Filedata"]; SystemMessages sysMsg = new SystemMessages(); using (TScope ts = new TScope()) { try { DataSet ds = ExcelHelper.ReadExcel(file.InputStream, true); if (ds.Tables.Count > 0) { DateTime date = DateTime.Now; DataTable dt = ds.Tables[0]; FieldCategory fc = new FieldCategory(tableKey, pageType); foreach (DataRow dr in dt.Rows) { fc.ClearAllFieldsData(); FieldInfoCollecton fields = fc.VisibleFields; Dictionary<string, object> dicData = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { var fi = fields.Where(p => p.DisplayName == dc.ColumnName).SingleOrDefault(); if (fi != null) { dicData.Add(fi.FieldName, dr[dc.ColumnName]); } } if (dicData.Count == 0) { throw new Exception("Upload Error: can not match data."); } else { SCMPriceMasterDetail smd = new SCMPriceMasterDetail(fc, dicData, pageType); fc.CheckDataType(dicData, sysMsg); smd.CheckData(sysMsg); if (sysMsg.isPass) { smd.InsertUploadFile(date); } else { ts.Rollback(); break; } } } } } catch (Exception ex) { ts.Rollback(); sysMsg.isPass = false; sysMsg.Messages.Add("Error", ex.Message); } var result = new { success = sysMsg.isPass, errMessage = sysMsg.MessageString }; return Json(result); } }
public JsonResult SaveData() { SystemMessages sysMsg = new SystemMessages(); int id = 0; string postData = Request["postData"]; if (!String.IsNullOrWhiteSpace(postData)) { System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer(); Dictionary<string, object> jsonData = jss.Deserialize<Dictionary<string, object>>(postData) as Dictionary<string, object>; string dataId = Convert.ToString(jsonData["dataId"]); Int32.TryParse(dataId, out id); FieldCategory category = new FieldCategory(Convert.ToString(jsonData["categoryName"])); Dictionary<string, object> data = jsonData["data"] as Dictionary<string, object>; if (id == 0) { data["CreatorName"] = AccessControl.CurrentLogonUser.Name; data["CreationTime"] = DateTime.Now; } using (TScope ts = new TScope()) { try { CostingPeriodDetail cpd = new CostingPeriodDetail(category, data); category.CheckDataType(data, sysMsg); cpd.CheckData(sysMsg); if (sysMsg.isPass) { if (id > 0) { cpd.Update(id); } else { id = cpd.Add(); } if (Convert.ToString(data["Status"]) == "Active") { SetActiveToClose(id); } } } catch (Exception ex) { ts.Rollback(); sysMsg.isPass = false; sysMsg.Messages.Add("Error", ex.Message); } } } var jsonResult = new { DataId = id, success = sysMsg.isPass, errMessage = sysMsg.MessageString }; return Json(jsonResult); }
public JsonResult SaveOtherData() { SystemMessages sysMsg = new SystemMessages(); int id = 0; string postData = Request["postData"]; if (!String.IsNullOrWhiteSpace(postData)) { System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer(); Dictionary<string, object> jsonData = jss.Deserialize<Dictionary<string, object>>(postData) as Dictionary<string, object>; string dataId = Convert.ToString(jsonData["dataId"]); Int32.TryParse(dataId, out id); FieldCategory category = new FieldCategory(Convert.ToString(jsonData["categoryName"])); Dictionary<string, object> data = jsonData["data"] as Dictionary<string, object>; using (TScope ts = new TScope()) { try { CostingOtherDetailData codd = new CostingOtherDetailData(category, data); category.CheckDataType(data, sysMsg); codd.CheckData(sysMsg); if (sysMsg.isPass) { if (id > 0) { codd.Update(id); } else { id = codd.Add(); } } } catch (Exception ex) { ts.Rollback(); sysMsg.isPass = false; sysMsg.Messages.Add("Error", ex.Message); } } } var jsonResult = new { DataId = id, success = sysMsg.isPass, errMessage = sysMsg.MessageString }; return Json(jsonResult); }