public void ProcessSheet(dynamic sheetDetails) { UploadTrade uploadTradeDetails = new UploadTrade(); UploadTradeLog uploadTradeLog = new UploadTradeLog() { ImportDate = DateTime.Now, WorkBookName = sheetDetails.Sheet.SheetName, TradeRequest = string.Empty, ExceptionMessage = string.Empty }; DAL.Trade trade = new DAL.Trade(); trade.TradeDBConnectionString = this.TradeDBConnectionString; int shippingId = -1; string shippingMissedElements = string.Empty; try { uploadTradeDetails.Shipping = GetShipping(sheetDetails.Sheet, sheetDetails.ShippingDetailsRowIndex, sheetDetails.DocumentInstructionsRowIndex); uploadTradeDetails.Shipping.TradeSheetName = sheetDetails.Sheet.SheetName; uploadTradeDetails.DocumentInstructions = GetDocumentInstructions(sheetDetails.Sheet, sheetDetails.DocumentInstructionsRowIndex); uploadTradeDetails.ShippingModels = GetShippingModels(sheetDetails.Sheet, sheetDetails.ShippingModelsRowIndex); var CheckIsSINoAlreadyExist = trade.CheckIsSINoAlreadyExist(uploadTradeDetails.Shipping.SINo); if (CheckIsSINoAlreadyExist) { throw new Exception("Import already done for this Shipping Instruction"); } else { DataTable documentInstructionsTable = JsonConvert.DeserializeObject <DataTable>(JsonConvert.SerializeObject(uploadTradeDetails.DocumentInstructions)); DataTable shippingModelsTable = JsonConvert.DeserializeObject <DataTable>(JsonConvert.SerializeObject(uploadTradeDetails.ShippingModels)); shippingId = trade.SaveShippingTradeDetails(uploadTradeDetails.Shipping, documentInstructionsTable, shippingModelsTable); } if (shippingId > 0) { uploadTradeLog.ShippingId = shippingId; uploadTradeLog.ImportStatus = "IMPORTED"; trade.WriteShippingImportLog(uploadTradeLog); } else { uploadTradeLog.ShippingId = shippingId; uploadTradeLog.ImportStatus = "VALIDATIONS"; uploadTradeLog.ExceptionMessage = shippingMissedElements; trade.WriteShippingImportLog(uploadTradeLog); } } catch (Exception ex) { uploadTradeLog.ShippingId = shippingId; uploadTradeLog.ImportStatus = "FAILED"; uploadTradeLog.ExceptionMessage = ex.Message; trade.WriteShippingImportLog(uploadTradeLog); _tradeLogger.Error("Trading.BLL.Trade.LoadSheet", ex); throw ex; } }
public ActionResult Trade(UploadTrade uploadTrade, HttpPostedFileBase postedFile, string submitButton) { UploadTradeVM uploadTradeVM = new UploadTradeVM(); try { switch (submitButton) { case "Search": ModelState.Clear(); Trading.BLL.Trade trade = new BLL.Trade(); trade.TradeDBConnectionString = ConfigurationManager.ConnectionStrings["TradeConnectionString"].ConnectionString; uploadTradeVM = trade.GetShippingTradeDetails(uploadTrade.ShippingId); uploadTradeVM = ReEvaluateUploadTrade(uploadTradeVM); if (uploadTrade.Shipping.SINo == null || uploadTrade.Shipping.SINo == string.Empty) { uploadTrade.IsSINoAvailable = false; } break; case "Upload": if (postedFile != null) { string path = Server.MapPath("~/TradeShippingSheets/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } postedFile.SaveAs(path + Path.GetFileName(postedFile.FileName)); uploadTradeVM = new UploadTradeVM() { Shipping = new ViewModel.Shipping(), DocumentInstructions = new List <DocumentInstructionVM>(), ShippingModels = new List <ShippingModelVM>() }; ProcessInputFile((path + Path.GetFileName(postedFile.FileName))); } break; } return(View(uploadTradeVM)); } catch (Exception ex) { throw ex; } }