public void CreateCollateralTiesTest() { string user = "******"; string pass = "******"; string bankId = "85"; string ObligorNumber = "0051606471"; string Obligation = "0000000042"; string itemNumber = ""; string luw = Constants.CREATE_COLL_TIE_LUW_ID;//"L012"; string batchId = "L01"; string restartcode = "1392"; var collateralTiesCommand = new CreateCollateralTieCommand(user, pass, bankId, ObligorNumber, batchId, Obligation, "", "", "", itemNumber, luw, restartcode); //input fields REQUEST_1392_FIELDS current_specific = new REQUEST_1392_FIELDS { x1392_EFF_FROM_DATE = "012715", x1392_SUPPORT_ITEM = "00018", x1392_SUPPORT_OBLIGOR = "0051606471", x1392_SUPPORT_TYPE = "500" }; var current_specific_fields = new List<REQUEST_1392_FIELDS>(10); current_specific_fields.Add(current_specific); current_specific_fields.AddRepeatDefaultValues<REQUEST_1392_FIELDS>(9); collateralTiesCommand.CURRENT_SPECIFIC_ITEMS = current_specific_fields; var future_specific_fields = new List<REQUEST_1192_FIELDS>(10); future_specific_fields.AddRepeatDefaultValues<REQUEST_1192_FIELDS>(10); collateralTiesCommand.FUTURE_SPECIFIC_ITEMS = future_specific_fields; var task = commandBus.ExecuteAsync(collateralTiesCommand); task.GetAwaiter().GetResult(); Assert.IsTrue(collateralTiesCommand.Errors.Length < 1, collateralTiesCommand.Errors); }
/// <summary> /// Validates the collateral tie request. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> private bool ValidateCollateralTieRequest(CreateCollateralTieCommand request) { //Checks if ((request.FUTURE_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1192_FIELDS>() && request.CURRENT_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1392_FIELDS>())) { request.Errors = "Current Specific Items and Future Specific Items both cannot be empty or null"; return false; } //NOTE: Need to verify if both Current and Future specific items can be populated at the same time if ((!request.FUTURE_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1192_FIELDS>() && !request.CURRENT_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1392_FIELDS>())) { request.Errors = "Current Specific Items and Future Specific Items both cannot be populated"; return false; } else if (!request.FUTURE_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1192_FIELDS>() && request.RestartRequestCode == Constants.CREATE_COLL_TIE_REQCODE_1192) { request.Errors = String.Format("Future Specific Items requires a RequestRestartCode of {0}", Constants.CREATE_COLL_TIE_REQCODE_1192); return false; } else if (!request.CURRENT_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1392_FIELDS>() && request.RestartRequestCode == Constants.CREATE_COLL_TIE_REQCODE_1392) { request.Errors = String.Format("Current Specific Items requires a RequestRestartCode of {0}", Constants.CREATE_COLL_TIE_REQCODE_1392); return false; } return true; }
/// <summary> /// Creates the collateral tie. /// </summary> /// <param name="request">The request.</param> public void CreateCollateralTie(CreateCollateralTieCommand request) { ClientContext ctx = GetClientContext(request.User, request.Password); //Checks if (!ValidateCollateralTieRequest(request)) { return; } //check for specific counts if (!request.FUTURE_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1192_FIELDS>()) { request.FUTURE_SPECIFIC_ITEMS.AddOrTrimExcess<REQUEST_1192_FIELDS>(Constants.CREATE_COLL_TIE_ITEMS_COUNT); } if (!request.CURRENT_SPECIFIC_ITEMS.IsNullOrEmpty<REQUEST_1392_FIELDS>()) { request.CURRENT_SPECIFIC_ITEMS.AddOrTrimExcess<REQUEST_1392_FIELDS>(Constants.CREATE_COLL_TIE_ITEMS_COUNT); } var get1192Fields = Array.ConvertAll<REQUEST_1192_FIELDS, CollateralServicesContext.REQUEST_1192_FIELDS>(request.FUTURE_SPECIFIC_ITEMS.ToArray(), delegate(REQUEST_1192_FIELDS output) { var get1192Field = new CollateralServicesContext.REQUEST_1192_FIELDS() { x1192_EFF_FROM_DATE = output.x1192_EFF_FROM_DATE, x1192_SUPPORT_ITEM = output.x1192_SUPPORT_ITEM, x1192_SUPPORT_OBLIGOR = output.x1192_SUPPORT_OBLIGOR, x1192_SUPPORT_TYPE = output.x1192_SUPPORT_TYPE }; return get1192Field; }); var get1392Fields = Array.ConvertAll<REQUEST_1392_FIELDS, CollateralServicesContext.REQUEST_1392_FIELDS>(request.CURRENT_SPECIFIC_ITEMS.ToArray(), delegate(REQUEST_1392_FIELDS output) { var get1392Field = new CollateralServicesContext.REQUEST_1392_FIELDS() { x1392_EFF_FROM_DATE = output.x1392_EFF_FROM_DATE, x1392_SUPPORT_ITEM = output.x1392_SUPPORT_ITEM, x1392_SUPPORT_OBLIGOR = output.x1392_SUPPORT_OBLIGOR, x1392_SUPPORT_TYPE = output.x1392_SUPPORT_TYPE }; return get1392Field; }); CreateCollateralTieInDocument doc = new CreateCollateralTieInDocument { LUW_BANK = request.BankId, LUW_BATCH_ID = request.BatchID, LUW_ERROR_MESSAGES = request.Errors, LUW_HEADER_FILLER = string.Empty, LUW_CALLING_APPL = Constants.LUW_HEADER_CALLING_APPL, LUW_ID = request.Luw, LUW_ITEM_NBR = request.ItemNumber, LUW_LENGTH = request.DataLength, LUW_OBLIGATION = request.ObligationNumber, LUW_OBLIGOR = request.ObligorNumber, LUW_REQUEST_CODE = request.RestartRequestCode, SEG_COUNTER = request.Segment, FAILING_OCCURS_NUMBER = request.FAILING_OCCURS_NUMBER, REQUEST_FAILED_SW = request.REQUEST_FAILED_SW, REQUEST_1192_FIELDS = get1192Fields, REQUEST_1392_FIELDS = get1392Fields }; try { srv.CreateCollateralTie(ref doc.LUW_ID, ref doc.LUW_REQUEST_CODE, ref doc.LUW_BATCH_ID, ref doc.LUW_BANK, ref doc.LUW_OBLIGOR, ref doc.LUW_OBLIGATION, ref doc.LUW_ITEM_NBR, ref doc.SEG_COUNTER, ref doc.LUW_HEADER_FILLER, ref doc.LUW_CALLING_APPL, ref doc.LUW_LENGTH, ref doc.LUW_ERROR_MESSAGES, ref doc.REQUEST_FAILED_SW, ref doc.FAILING_OCCURS_NUMBER, ref doc.REQUEST_1192_FIELDS, ref doc.REQUEST_1392_FIELDS, ref ctx); request.Errors = doc.LUW_ERROR_MESSAGES; //Note: Need to check if there are any other fields that need to be mapped back to the request //object for further operation } catch (CustomTIException Ex) { HandleHISException<CreateCollateralTieCommand>(request, Ex, "CreateCollateralTieCommand"); } catch (Exception ee) { string msg = ee.Message; request.Errors = msg; throw; } }