示例#1
0
        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;
            }
        }