public ActionResult Post([FromBody] AddRemoveRequestCompositeEntity addRemoveRequestCompositeEntity) { try { AddRemoveRequestService addRemoveRequestService = new AddRemoveRequestService(); addRemoveRequestService.SubmitAddRemoveRequest(addRemoveRequestCompositeEntity); _logger.LogInformation("Logging from Contract controller try block"); return(Ok("Challenge Accepted")); //return new JsonResult("Here"); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(BadRequest(ex)); } }
public List <ContractAmendmentRequestARDetails> ContractAmendmentRequestARs(AddRemoveRequestCompositeEntity addRemoveRequestCompositeEntity) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <ContractAmendmentRequestARDetailsDTO, ContractAmendmentRequestARDetails>(); cfg.CreateMap <UserInfoDTO, UserInfo>(); }); var AmendmentRequestARDetails = new List <ContractAmendmentRequestARDetails>(); var mapper = new Mapper(config); foreach (ContractAmendmentRequestARDetailsDTO contractAmendmentRequestARDetailsDTO in addRemoveRequestCompositeEntity.ContractAddRemoveRequestDetails) { ContractAmendmentRequestARDetails contractAmendmentRequestARDetails = mapper.Map <ContractAmendmentRequestARDetails>(contractAmendmentRequestARDetailsDTO); AmendmentRequestARDetails.Add(contractAmendmentRequestARDetails); } return(AmendmentRequestARDetails); }
//private readonly ILogger<AddRemoveRequestService> _logger; public void SubmitAddRemoveRequest(AddRemoveRequestCompositeEntity addRemoveRequestCompositeEntity) { try { using (ContractDbContext contractDetailsEntities = new ContractDbContext()) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <ContractAmendmentRequestARDetailsDTO, ContractAmendmentRequestARDetails>(); cfg.CreateMap <UserInfoDTO, UserInfo>(); } ); var mapper = new Mapper(config); //UserInfo userInfo1 = mapper.Map<UserInfo>(addRemoveRequestCompositeEntity.UserInfo); UserInfo userInfo = new UserInfo(); userInfo = GetEntityByDTOKey(addRemoveRequestCompositeEntity.UserInfo); // _logger.LogInformation("Logging from addremoverequestservice"); //UserInfo userInfo = mapper. userMap<UserInfo>(addRemoveRequestCompositeEntity.UserInfo); var customerNumber = addRemoveRequestCompositeEntity.AssociatedSoldTo; //var ContractAmendmentAr = new List<ContractAmendmentRequestARDetails>(); //ContractAmendmentAr = ContractAmendmentRequestARs(addRemoveRequestCompositeEntity); var entityID = userInfo.Entity_ID; var email = userInfo.EMail; ContractAmendmentRequest contractAmendmentRequest = new ContractAmendmentRequest { // ContractAmendmentRequestID = 98373, SubmissionDateTime = System.DateTime.UtcNow, EntityID = entityID, SAPResponseDateTime = System.DateTime.UtcNow, SAPResponseDetails = " ", CustomerNumber = customerNumber, Description = " ", Status = (short)AddRemoveRequestStatus.InProgress, Type = (short)AddRemoveRequestType.AddRemove, LastModifiedDate = System.DateTime.UtcNow, LastModifiedBy = "xyz", IsArchived = false, UserEmail = email, }; // contractDetailsEntities.Entry(contractAmendmentRequest).State = EntityState.Added; //contractDetailsEntities.ContractAmendmentRequest.Add(contractAmendmentRequest); contractDetailsEntities.ContractAmendmentRequest.Add(contractAmendmentRequest); contractDetailsEntities.SaveChanges(); string contractSalesOrg = string.Empty; string sAgreementNumber = string.Empty; //contractAmendmentRequest.ContractAmendmentRequestARDetails = ContractAmendmentRequestARs(addRemoveRequestCompositeEntity); foreach (ContractAmendmentRequestARDetailsDTO contractAmendmentRequestARDetailsDTO in addRemoveRequestCompositeEntity.ContractAddRemoveRequestDetails) { ContractAmendmentRequestARDetails contractAmendmentRequestARDetails = mapper.Map <ContractAmendmentRequestARDetails>(contractAmendmentRequestARDetailsDTO); contractAmendmentRequest.ContractAmendmentRequestARDetails.Add(contractAmendmentRequestARDetails); //contractDetailsEntities.Entry(contractAmendmentRequestARDetails).State = EntityState.Added; //contractDetailsEntities.ContractAmendmentRequestARDetails.Add(contractAmendmentRequestARDetails); //contractAmendmentRequest.ContractAmendmentRequestARDetails.Add(contractAmendmentRequestARDetails); } contractDetailsEntities.Entry(contractAmendmentRequest).State = EntityState.Modified; try { contractDetailsEntities.SaveChanges(); } catch (Exception e) { throw e; } //Send SAP request ContractAmendmentSAPService contractAmendmentSAPServices = new ContractAmendmentSAPService(); AddRemoveRequestSAPResponse addRemoveRequestSAPResponse = null; try { addRemoveRequestSAPResponse = contractAmendmentSAPServices.SendSAPRequest(addRemoveRequestCompositeEntity.ContractAddRemoveRequestDetails).GetAwaiter().GetResult(); } catch (Exception ex) { addRemoveRequestSAPResponse = CreateFailureSAPResponse(addRemoveRequestCompositeEntity.ContractAddRemoveRequestDetails, sAgreementNumber); // objlog.LogException(ex, -1, null, "AddRemoveRequestService", System.Diagnostics.TraceEventType.Error, "", "SubmitAddRemoveRequest"); // LogHelper.LogExceptionMessage(ex); //logger.LogException(ex); } finally { UpdateSAPResponse(contractAmendmentRequest, addRemoveRequestSAPResponse); // persist the changes to database. contractDetailsEntities.SaveChanges(); } } } catch (Exception ex) { throw ex; } }
public async Task <AddRemoveRequestSAPResponse> SendSAPRequest(List <ContractAmendmentRequestARDetailsDTO> contractAmendmentRequestARDetailsDTOList) { try { _addremoveRequest = new AddRemoveRequestCompositeEntity(); _addremoveRequest.ContractAddRemoveRequestDetails = contractAmendmentRequestARDetailsDTOList; //Service SAPRFCService = new Service(); //string strURL = System.Configuration.ConfigurationManager.AppSettings["ContractManagementSAPURL"]; AddRemoveRequestSAPResponse addremoveResp = null; ZLW_AGR_ADD_REM_CONTRACT[] sapAddRemoveProductData = null; ZLW_OUT_GENERAL_DATA[] sapOutput = null; BAPIRET2[] messageOutput = null; int numberOfProducts = contractAmendmentRequestARDetailsDTOList.Count; sapAddRemoveProductData = new ZLW_AGR_ADD_REM_CONTRACT[numberOfProducts]; sapOutput = new ZLW_OUT_GENERAL_DATA[0]; messageOutput = new BAPIRET2[numberOfProducts]; int count = 0; foreach (ContractAmendmentRequestARDetailsDTO addRemoveProduct in contractAmendmentRequestARDetailsDTOList) { sapAddRemoveProductData[count] = new ZLW_AGR_ADD_REM_CONTRACT(); messageOutput[count] = new BAPIRET2(); if (addRemoveProduct.Action == 1) { sapAddRemoveProductData[count].ACTN_CODE = "A"; } else { sapAddRemoveProductData[count].ACTN_CODE = "R"; } sapAddRemoveProductData[count].VBELN = addRemoveProduct.ContractNumber; sapAddRemoveProductData[count].MATNR = addRemoveProduct.LicensableID; sapAddRemoveProductData[count].ITEM_CATEG = addRemoveProduct.BillingTypeCode; count++; } Z_V_OSW_R_ADD_REM_CONTRACTRequest request = new Z_V_OSW_R_ADD_REM_CONTRACTRequest(); request.In_Agr_Add_Rem_Contract_In = sapAddRemoveProductData; request.Out_General_Data_In = sapOutput; request.Out_Messages_In = messageOutput; // HttpConnector client = new HttpConnector(); HttpClient httpClient = new HttpClient(); var baseUri = "https://saptstws.trafficmanager.net/MST/MSSDOEMCONTRACT/"; httpClient.BaseAddress = new Uri(baseUri); string token = ""; AuthenticationResult accessToken = await GetToken(); token = accessToken.AccessToken; // httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "c55ddee3fc0643eab5534af29776892c"); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Add("Authorization", accessToken.CreateAuthorizationHeader()); httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "c55ddee3fc0643eab5534af29776892c"); httpClient.DefaultRequestHeaders.Add("Ocp-Apim-trace", "true"); httpClient.DefaultRequestHeaders.Add("X-CorrelationId", Guid.NewGuid().ToString()); var myContent = JsonConvert.SerializeObject(request); var buffer = System.Text.Encoding.UTF8.GetBytes(myContent); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await httpClient.PostAsync("api/Contracts/AddOrRemove", byteContent); //var response = await httpClient.PostAsync("api/Contracts/AddOrRemove/", request, new JsonMediaTypeFormatter()); var responseContent = await response.Content.ReadAsStringAsync(); Z_V_Osw_R_Add_Rem_Contract_RFCReturn RFCStrOutput = JsonConvert.DeserializeObject <Z_V_Osw_R_Add_Rem_Contract_RFCReturn>(responseContent); addremoveResp = ProcessSAPResponse(RFCStrOutput); addremoveResp.SAPResponse = SerializeObject(RFCStrOutput, typeof(Z_V_Osw_R_Add_Rem_Contract_RFCReturn)); return(addremoveResp); } catch (Exception ex) { // _logger.LogError(ex, ex.Message); throw ex; } }