private bool SaveProductAttributes(int vendorID, artikelEigenschap artikelEigenschapData) { var alliantieName = VendorSettingsHelper.GetAlliantieName(vendorID); var retailPartnerCode = VendorSettingsHelper.GetRetailPartnerCode(vendorID); var sequenceNumberArtikelEigenschap = CommunicatorHelper.GetSequenceNumber(vendorID); artikelEigenschapData.header.berichtDatumTijd = DateTime.Now; artikelEigenschapData.header.berichtNaam = "artikelEigenschap"; artikelEigenschapData.header.retailPartnerCode = retailPartnerCode; artikelEigenschapData.header.bestandsNaam = string.Format("{0}{1}artikelEigenschap.xml", sequenceNumberArtikelEigenschap, alliantieName); var messageIDArtAttr = MessageHelper.InsertMessage(MessageHelper.WehkampMessageType.ProductAttribute, artikelEigenschapData.header.bestandsNaam, vendorID); try { artikelEigenschapData.SaveToFile(string.Format(Path.Combine(ConfigurationHelper.ProductAttributesRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), artikelEigenschapData.header.bestandsNaam))); MessageHelper.UpdateMessageStatus(messageIDArtAttr, WehkampMessageStatus.Success); } catch (Exception ex) { log.Fatal("Error while saving artikelEigenschap file", ex); MessageHelper.UpdateMessageStatus(messageIDArtAttr, WehkampMessageStatus.Error); return(false); } return(true); }
private void SaveStockReturn(int vendorID, retourAanvraag stockReturnRequest) { var alliantieName = VendorSettingsHelper.GetAlliantieName(vendorID); var retailPartnerCode = VendorSettingsHelper.GetRetailPartnerCode(vendorID); var sequenceNumber = CommunicatorHelper.GetSequenceNumber(vendorID); stockReturnRequest.header.berichtDatumTijd = DateTime.Now; stockReturnRequest.header.berichtNaam = "retourAanvraag"; stockReturnRequest.header.retailPartnerCode = retailPartnerCode; stockReturnRequest.header.bestandsNaam = string.Format("{0}{1}retourAanvraag.xml", sequenceNumber, alliantieName); var messageID = MessageHelper.InsertMessage(MessageHelper.WehkampMessageType.StockReturnRequest, stockReturnRequest.header.bestandsNaam, vendorID); try { stockReturnRequest.SaveToFile(string.Format(Path.Combine(ConfigurationHelper.StockReturnRequestRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), stockReturnRequest.header.bestandsNaam))); MessageHelper.UpdateMessageStatus(messageID, WehkampMessageStatus.Success); } catch (Exception ex) { log.Fatal("Error while saving retourAanvraag file", ex); MessageHelper.UpdateMessageStatus(messageID, WehkampMessageStatus.Error); } }
private void SavePriceChanges(int vendorID, prijsAanpassing priceChange) { var alliantieName = VendorSettingsHelper.GetAlliantieName(vendorID); var retailPartnerCode = VendorSettingsHelper.GetRetailPartnerCode(vendorID); var sequenceNumber = CommunicatorHelper.GetSequenceNumber(vendorID); priceChange.header.berichtDatumTijd = DateTime.Now; priceChange.header.berichtNaam = "prijsAanpassing"; priceChange.header.retailPartnerCode = retailPartnerCode; priceChange.header.bestandsNaam = string.Format("{0}{1}prijsAanpassing.xml", sequenceNumber, alliantieName); var messageIDPriceChange = MessageHelper.InsertMessage(MessageHelper.WehkampMessageType.ProductPriceUpdate, priceChange.header.bestandsNaam, vendorID); try { priceChange.SaveToFile(string.Format(Path.Combine(ConfigurationHelper.ProductPricesRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), priceChange.header.bestandsNaam))); MessageHelper.UpdateMessageStatus(messageIDPriceChange, WehkampMessageStatus.Success); } catch (Exception ex) { log.Fatal("Error while saving Price Change file", ex); MessageHelper.UpdateMessageStatus(messageIDPriceChange, WehkampMessageStatus.Error); } }
private void SaveProductInformation(int vendorID, artikelInformatie artInfo, PetaPoco.Database db = null) { var alliantieName = VendorSettingsHelper.GetAlliantieName(vendorID); var retailPartnerCode = VendorSettingsHelper.GetRetailPartnerCode(vendorID); var sequenceNumberArtikelInformatie = CommunicatorHelper.GetSequenceNumber(vendorID); artInfo.header.berichtDatumTijd = DateTime.Now; artInfo.header.berichtNaam = "artikelInformatie"; artInfo.header.retailPartnerCode = retailPartnerCode; artInfo.header.bestandsNaam = string.Format("{0}{1}artikelInformatie.xml", sequenceNumberArtikelInformatie, alliantieName); var messageIDArtInfo = MessageHelper.InsertMessage(MessageHelper.WehkampMessageType.ProductInformation, artInfo.header.bestandsNaam, vendorID, db); try { artInfo.SaveToFile(string.Format(Path.Combine(ConfigurationHelper.ProductInformationRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), artInfo.header.bestandsNaam))); MessageHelper.UpdateMessageStatus(messageIDArtInfo, WehkampMessageStatus.Success, db); } catch (Exception ex) { log.Fatal("Error while saving artikelInfo file", ex); MessageHelper.UpdateMessageStatus(messageIDArtInfo, WehkampMessageStatus.Error); } }
private void SaveShipmentInformation(int vendorID, aankomst shipment, PetaPoco.Database db = null) { var alliantieName = VendorSettingsHelper.GetAlliantieName(vendorID); var retailPartnerCode = VendorSettingsHelper.GetRetailPartnerCode(vendorID); var sequenceNumberShipment = CommunicatorHelper.GetSequenceNumber(vendorID); shipment.header.berichtDatumTijd = DateTime.Now; shipment.header.berichtNaam = "aankomst"; shipment.header.retailPartnerCode = retailPartnerCode; shipment.header.bestandsNaam = string.Format("{0}{1}aankomst.xml", sequenceNumberShipment, alliantieName); var messageIDShipment = MessageHelper.InsertMessage(MessageHelper.WehkampMessageType.ShipmentNotification, shipment.header.bestandsNaam, vendorID, db); try { shipment.SaveToFile(Path.Combine(ConfigurationHelper.ShipmentNotificationRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), shipment.header.bestandsNaam)); MessageHelper.UpdateMessageStatus(messageIDShipment, WehkampMessageStatus.Success, db); } catch (Exception ex) { log.Fatal("Error while saving aankomst file", ex); MessageHelper.UpdateMessageStatus(messageIDShipment, WehkampMessageStatus.Error); } }
private void DownloadMessageFiles(int vendorID) { var remoteFileList = new ArrayList(); _downloadedFiles = new Dictionary <string, decimal>(); var ftpClient = SftpHelper.CreateClient(VendorSettingsHelper.GetSFTPSetting(vendorID), CommunicatorHelper.GetWehkampPrivateKeyFilename(vendorID), "D1r@ct379"); if (ftpClient == null) { log.AuditCritical("SFTP failed to connect"); return; } remoteFileList.Clear(); var allianceDirectoryName = string.Format("TO_{0}", VendorSettingsHelper.GetAlliantieName(vendorID).ToUpperInvariant()); try { ftpClient.ListDirectory(allianceDirectoryName, remoteFileList); foreach (TElSftpFileInfo fileinfo in remoteFileList) { //log.Info(string.Format("Checking remote item '{0}'", fileinfo.Name)); if (fileinfo.Attributes.FileType != TSBSftpFileType.ftFile && (fileinfo.Attributes.FileType != TSBSftpFileType.ftUnknown && !fileinfo.Name.Contains(".xml"))) { //log.Info(string.Format("Not a file. Skip item '{0}'", fileinfo.Name)); continue; } var message = MessageHelper.GetMessageByFilename(fileinfo.Name); // if this is a second attempt, only try again if the validation has failed or there was an error downloading if (message != null && message.Status != WehkampMessageStatus.ErrorDownload && message.Status != WehkampMessageStatus.ValidationFailed) { //log.Info(string.Format("Skip downloading file '{0}'", fileinfo.Name)); continue; } try { //log.Info(string.Format("Start downloading file '{0}'", fileinfo.Name)); ftpClient.DownloadFile(Path.Combine(allianceDirectoryName, fileinfo.Name).ToUnixPath(), Path.Combine(ConfigurationHelper.IncomingFilesRootFolder, vendorID.ToString(CultureInfo.InvariantCulture), fileinfo.Name)); ftpClient.RemoveFile(Path.Combine(allianceDirectoryName, fileinfo.Name).ToUnixPath()); } catch (Exception e) { log.AuditError(string.Format("Cannot access {0} over SFTP: {1}\n{2}", allianceDirectoryName, e.Message, e.StackTrace)); if (message != null) { MessageHelper.UpdateMessageStatus(message.MessageID, WehkampMessageStatus.ErrorDownload); } } finally { if (message != null) { MessageHelper.UpdateMessageAttempt(message.MessageID); if (message.Attempts + 1 >= 10) { MessageHelper.UpdateMessageStatus(message.MessageID, WehkampMessageStatus.MaxRetryExceeded); } } } if (message == null || message.Attempts + 1 < 10) { _downloadedFiles.Add(fileinfo.Name, message != null ? message.MessageID : -1); } } } catch (Exception e) { log.AuditError(string.Format("Cannot access {0} over SFTP: {1}\n{2}", allianceDirectoryName, e.Message, e.StackTrace)); } CreateMessagesFromDownloadedFiles(vendorID); ftpClient.Dispose(); }