private void btnUpdateETN_Click(object sender, EventArgs e) { APIRequestResponse apiResponse = new APIRequestResponse(); string tokenReturnValue = string.Empty; string tokenvalue = string.Empty; System.Net.WebRequest req = System.Net.WebRequest.Create("http://129.232.164.178/BIPEXAPI/Authentication?username=LandseaAPIUser&password=ujD@wxxg_z3Eg9aK"); req.ContentType = "application/x-www-form-urlencoded"; req.Method = "GET"; string tokenResponse = string.Empty; System.Net.WebResponse resp = req.GetResponse(); if (resp == null) { MessageBox.Show("Authentication Failed"); return; } using (System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream())) { tokenResponse = sr.ReadToEnd().Trim(); } if (!string.IsNullOrEmpty(tokenResponse)) { tokenReturnValue = "Data"; tokenvalue = JObject.Parse(tokenResponse)[tokenReturnValue].ToString(); } ETNNumberModel model = new ETNNumberModel { CaroWiseKey = "S00001006", ETNNumber = "DOC16", GIBInvoiceNumber = "LSG00000000001" }; // Update ETN Numbers linked to Cargo Wise key System.Net.ServicePointManager.ServerCertificateValidationCallback += (senderDetail, certificate, chain, sslPolicyErrors) => true; using (HttpClient client = new HttpClient(new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Automatic })) { string landseaAPIURL = "http://129.232.164.178/LandSeaGlobal/LandseaAPI/api/ETNNumber/"; //string landseaAPIURL = "http://localhost:51203/api/ETNNumber/"; client.BaseAddress = new Uri(landseaAPIURL); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("BIPASK", tokenvalue); client.DefaultRequestHeaders.Add("BIPASK", authToken); HttpResponseMessage res = client.PutAsJsonAsync("Update", model).Result; if (res.IsSuccessStatusCode) { apiResponse = res.Content.ReadAsAsync <APIRequestResponse>().Result; MessageBox.Show(apiResponse.ToString()); } else { string resultString = res.Content.ReadAsStringAsync().Result; MessageBox.Show(resultString); } } }
public RequestReponse Update([FromBody] ETNNumberModel etnDetail) { RequestReponse result = new RequestReponse(); try { string msg = string.Empty; if (string.IsNullOrEmpty(etnDetail.CaroWiseKey)) { result.Success = false; result.Message = "Update ETN Number failed!"; result.MessageDetail = "CargoWise Key value is missing"; return(result); } if (!LoadSettings()) { result.Success = false; result.Message = "ETA Number Update failed!"; result.MessageDetail = "Failed to read configuration settings"; return(result); } if (!GenerateBIPToken()) { result.Success = false; result.Message = "ETA Number Update failed!"; result.MessageDetail = "Internal security token generation failed"; return(result); } ProcessLogs.bipToken = bipToken; ProcessLogs.logFilePath = logFilePath; ProcessLogs.webApiUrl = bipAPIURL; using (CargoWiseFileProvider provider = new CargoWiseFileProvider()) { if (!provider.UpdateETNNumber(etnDetail, ref msg)) { result.Success = false; result.Message = "ETA Number Update Failed!"; result.MessageDetail = msg; } else { result.Success = true; result.Message = "ETA Number successfully updated."; result.MessageDetail = string.Empty; } } #region BIP Message //we need to create a new message in BIP BaseMessage bmessage = new BaseMessage(); List <MessageHistoryModel> newHistory = new List <MessageHistoryModel>(); using (DataSet ds = new DataSet("ETNNUmberUpdate")) { using (DataTable dt = new DataTable("RequestDetail")) { dt.Columns.Add("Key", typeof(string)); dt.Columns.Add("ETNNumber", typeof(string)); dt.Columns.Add("GIBInvoiceNumber", typeof(string)); dt.Columns.Add("ResultMsg", typeof(string)); dt.Columns.Add("ResultDetailMsg", typeof(string)); dt.AcceptChanges(); DataRow dr = dt.NewRow(); dr["Key"] = etnDetail.CaroWiseKey; dr["ETNNumber"] = etnDetail.ETNNumber; dr["GIBInvoiceNumber"] = etnDetail.GIBInvoiceNumber; dr["ResultMsg"] = result.Message; dr["ResultDetailMsg"] = result.MessageDetail; dt.Rows.Add(dr); dt.AcceptChanges(); ds.Tables.Add(dt); ds.AcceptChanges(); using (TextWriter write = new StringWriter()) { //convert the results into xml ds.WriteXml(write); //also convert the xml into byte arry bmessage.Context = new byte[write.ToString().Length *sizeof(char)]; System.Buffer.BlockCopy(write.ToString().ToCharArray(), 0, bmessage.Context, 0, bmessage.Context.Length); } } } if (result.Success) { bmessage.PublishMessageID = (int)InternalStatus.Processing; bmessage.MessageStatus = InternalStatus.Processing; newHistory.Add(new MessageHistoryModel { EventDesc = "Request received from LandSea XML API Service - Update ETN Number", ProfileProcessID = ProfileProcessID, EventTypeID = (byte)EventLogType.Information, MessageStatusID = 1, DoneBy = "LandSea API Service" }); } else { bmessage.PublishMessageID = (int)InternalStatus.Suspended; bmessage.MessageStatus = InternalStatus.Suspended; newHistory.Add(new MessageHistoryModel { EventDesc = result.Message + " Detail: " + result.MessageDetail, ProfileProcessID = ProfileProcessID, EventTypeID = (byte)EventLogType.Error, MessageStatusID = 2, DoneBy = "LandSea API Service" }); } bmessage.PromoteValue("CargoWiseKey", etnDetail.CaroWiseKey); bmessage.PromoteValue("ETNNumber", etnDetail.ETNNumber); bmessage.PromoteValue("GIBInvoiceNumber", etnDetail.GIBInvoiceNumber); bmessage.webApiUrl = bipAPIURL; bmessage.bipToken = bipToken; bmessage.AttachmentID = 0; bmessage.XMLContext = string.Empty; bmessage.ProfileID = ActiveProfileID; bmessage.CreatedBy = "LandSea XML API Service"; bmessage.ReProcessed = false; bmessage.PublishMessageID = null; bmessage.ProfileProcessID = ProfileProcessID; bool saveResult = true; using (UpdateMessage sMessage = new BIP.MessageUtils.UpdateMessage()) { saveResult = sMessage.SaveMessageDetail(bmessage, newHistory, BIP.Enum.MessageType.Incomming, ref msg); } if (!saveResult) { result.Success = false; result.Message = "Failed to Update BIP process"; result.MessageDetail = msg; } #endregion BIP Message } catch (Exception ex) { result.Success = false; result.Message = ex.Message; result.MessageDetail = ExceptionDetail.GetExceptionFullMessage(ex); ProcessLogs.UpdateProfileHistory(result.Message, BIP.Enum.EventLogType.Error, ActiveProfileID); } return(result); }