public void CreateCurrentFeeScheduleTest()
        {
            string user = "******";
            string pass = "******";
            string bankId = "85";
            string ObligorNumber = "0051606471";
            string ObligationNumber = "0000000042";
            string itemNumber = "";
            string luw = Constants.CREATE_ALT_NAME_ADD_LUW_ID;//"L002";
            string batchId = "L02";

            var currentFeeScheduleCommand = new CreateCurrentFeeScheduleCommand(user, pass, bankId, ObligorNumber, batchId, ObligationNumber, "", "", "", itemNumber, luw, "");

            //input fields
            REQUEST_1375_FEE_SCHEDULE currFeeSchedule = new REQUEST_1375_FEE_SCHEDULE
            {
                x1375_ACCRUAL_SCHD_CHARGE_CODE = "540",
                x1375_ACCRUAL_SCHD_EFFECT_FROM = "012715",
                x1375_ACCRUAL_SCHD_EFFECT_TO_DT = "032715",
                x1375_ACCRUAL_SCHD_BASIS = "4",
                x1375_ACCRUAL_SCHD_MEMO_ITEM = "0",
                x1375_ACCRUAL_SCHD_EARN_TYPE = "3",
                x1375_ACCRUAL_SCHD_FM_TIER_AMT = "125.00",
                x1375_ACCRUAL_SCHD_IMA_IND = string.Empty,
                x1375_BILLING_SCHD_BILL_PERIOD = "4",
                x1375_BILLING_SCHD_BILL_DATE = string.Empty,
                x1375_BILLING_SCHD_LEAD_DAYS = "015",
                x1375_BILLING_SCHD_DUE_DATE = "032715",
                x1375_BILLING_SCHD_METHOD_COLL = "11",
                x1375_BILLING_SCHD_CHARGE_ACCT = string.Empty,
                x1375_BILLING_SCHD_SPECIAL_MAIL = string.Empty,
                x1375_BILLING_SCHD_TRANSIT_NR = string.Empty,
                x1375_BILLING_SCHD_MATURITY_MOC = string.Empty
            };
            var currentFeeScheduleFields = new List<REQUEST_1375_FEE_SCHEDULE>(20);
            currentFeeScheduleFields.Add(currFeeSchedule);
            currentFeeScheduleFields.AddRepeatDefaultValues<REQUEST_1375_FEE_SCHEDULE>(19);
            currentFeeScheduleCommand.AccuralFeeBillSchedules = currentFeeScheduleFields;

            var task = commandBus.ExecuteAsync(currentFeeScheduleCommand);
            task.GetAwaiter().GetResult();

            if (currentFeeScheduleCommand.Errors.Length < 1)
                Assert.IsTrue(currentFeeScheduleCommand.Errors.Length < 1, currentFeeScheduleCommand.Errors);

        }
        /// <summary>
        /// Creates the current fee schedule.
        /// </summary>
        /// <param name="request">The request.</param>
        public void CreateCurrentFeeSchedule(CreateCurrentFeeScheduleCommand request)
        {
            ClientContext ctx = GetClientContext(request.User, request.Password);

            //check for specific counts
            if (!request.AccuralFeeBillSchedules.IsNullOrEmpty<REQUEST_1375_FEE_SCHEDULE>())
            {
                request.AccuralFeeBillSchedules.AddOrTrimExcess<REQUEST_1375_FEE_SCHEDULE>(Constants.CREATE_CURR_FEE_SCHEDULE_COUNT);
            }


            var get1375Fields = Array.ConvertAll<REQUEST_1375_FEE_SCHEDULE, ObligationServicesContext.x1375_FEES>(request.AccuralFeeBillSchedules.ToArray(), delegate(REQUEST_1375_FEE_SCHEDULE output)
            {
                var get1375Field = new x1375_FEES()
                {
                    x1375_ACCRUAL_SCHD_CHARGE_CODE = output.x1375_ACCRUAL_SCHD_CHARGE_CODE,
                    x1375_ACCRUAL_SCHD_EFFECT_FROM = output.x1375_ACCRUAL_SCHD_EFFECT_FROM,
                    x1375_ACCRUAL_SCHD_EFFECT_TO_DT = output.x1375_ACCRUAL_SCHD_EFFECT_TO_DT,
                    x1375_ACCRUAL_SCHD_BASIS = output.x1375_ACCRUAL_SCHD_BASIS,
                    x1375_ACCRUAL_SCHD_MEMO_ITEM = output.x1375_ACCRUAL_SCHD_MEMO_ITEM,
                    x1375_ACCRUAL_SCHD_EARN_TYPE = output.x1375_ACCRUAL_SCHD_EARN_TYPE,
                    x1375_ACCRUAL_SCHD_FM_TIER_AMT = output.x1375_ACCRUAL_SCHD_FM_TIER_AMT,
                    x1375_ACCRUAL_SCHD_IMA_IND = output.x1375_ACCRUAL_SCHD_IMA_IND,
                    x1375_BILLING_SCHD_BILL_PERIOD = output.x1375_BILLING_SCHD_BILL_PERIOD,
                    x1375_BILLING_SCHD_BILL_DATE = output.x1375_BILLING_SCHD_BILL_DATE,
                    x1375_BILLING_SCHD_LEAD_DAYS = output.x1375_BILLING_SCHD_LEAD_DAYS,
                    x1375_BILLING_SCHD_DUE_DATE = output.x1375_BILLING_SCHD_DUE_DATE,
                    x1375_BILLING_SCHD_METHOD_COLL = output.x1375_BILLING_SCHD_METHOD_COLL,
                    x1375_BILLING_SCHD_CHARGE_ACCT = output.x1375_BILLING_SCHD_CHARGE_ACCT,
                    x1375_BILLING_SCHD_SPECIAL_MAIL = output.x1375_BILLING_SCHD_SPECIAL_MAIL,
                    x1375_BILLING_SCHD_TRANSIT_NR = output.x1375_BILLING_SCHD_TRANSIT_NR,
                    x1375_BILLING_SCHD_MATURITY_MOC = output.x1375_BILLING_SCHD_MATURITY_MOC

                };

                return get1375Field;
            });

            CreateCurrentFeeScheduleInDocument doc = new CreateCurrentFeeScheduleInDocument
             {
                 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,
                 x1375_FEES = get1375Fields
             };

            try
            {
                srv.CreateCurrentFeeSchedule(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.x1375_FEES,
                                    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<CreateCurrentFeeScheduleCommand>(request, Ex, "CreateCurrentFeeScheduleCommand");
            }
            catch (Exception ee)
            {
                string msg = ee.Message;
                request.Errors = msg;
                throw;
            }
        }