Пример #1
0
        public async Task <bool> UpdateEPSMappingAsync(EPSMapping mapping)
        {
            try
            {
                var p = new DynamicParameters();
                p.Add("VersionID", mapping.versionID, DbType.Int32);
                p.Add("MappingID", mapping.mappingID, DbType.Int32);
                p.Add("PDLFlag", mapping.pdlFlag, DbType.Boolean);
                p.Add("ParamID", mapping.paramID, DbType.Int32);
                p.Add("WorldPayFieldName", mapping.worldPayFieldName, DbType.String);
                p.Add("WorldPayTableName", mapping.worldPayTableName, DbType.String);
                p.Add("WorldPayJoinFields", mapping.worldPayJoinFields, DbType.String);
                p.Add("WorldPayCondition", mapping.worldPayCondition, DbType.String);
                p.Add("WorldPayOrderBy", mapping.worldPayOrderBy, DbType.String);
                p.Add("WorldPayFieldDescription", mapping.worldPayFieldDescription, DbType.String);
                p.Add("EffectiveBeginDate", mapping.effectiveBeginDate, DbType.DateTime);
                p.Add("EffectiveEndDate", mapping.effectiveEndDate, DbType.DateTime);
                p.Add("VIPERTableName", mapping.viperTableName, DbType.String);
                p.Add("VIPERFieldName", mapping.viperFieldName, DbType.String);
                p.Add("ViperCondition", mapping.viperCondition, DbType.String);
                p.Add("CharStartIndex", mapping.charStartIndex, DbType.Int32);
                p.Add("CharLength", mapping.charLength, DbType.Int32);
                p.Add("LastUpdatedBy", mapping.lastUpdatedBy, DbType.String);

                var result = await UpdateEPSMapping(p);

                return(await Task.FromResult(result));
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Пример #2
0
        private EPSMapping GetMapping(XElement element)
        {
            try
            {
                EPSMapping mapping = new EPSMapping();
                foreach (XAttribute attribute in element.Attributes())
                {
                    if (attribute.Name.LocalName.Equals("MappingID"))
                    {
                        mapping.mappingID = Int32.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("PDLFlag"))
                    {
                        mapping.pdlFlag = attribute.Value == "1";
                    }
                    else if (attribute.Name.LocalName.Equals("ParamID"))
                    {
                        mapping.paramID = Int32.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("WorldPayFieldDescription"))
                    {
                        mapping.worldPayFieldDescription = attribute.Value;
                    }
                    else if (attribute.Name.LocalName.Equals("EffectiveBeginDate"))
                    {
                        mapping.effectiveBeginDate = DateTime.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("EffectiveEndDate"))
                    {
                        mapping.effectiveEndDate = DateTime.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("VIPERTableName"))
                    {
                        mapping.viperTableName = attribute.Value;
                    }
                    else if (attribute.Name.LocalName.Equals("VIPERFieldName"))
                    {
                        mapping.viperFieldName = attribute.Value;
                    }
                    else if (attribute.Name.LocalName.Equals("ViperCondition"))
                    {
                        mapping.viperCondition = attribute.Value;
                    }
                    else if (attribute.Name.LocalName.Equals("CharStartIndex"))
                    {
                        mapping.charStartIndex = Int32.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("CharLength"))
                    {
                        mapping.charLength = Int32.Parse(attribute.Value);
                    }
                }

                return(mapping);
            }
            catch
            {
                throw;
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="mapping"></param>
        /// <returns></returns>
        public async Task <ApiResult <EPSMappingErrorCodes> > InsertEPSMappingAsync(EPSMapping mapping)
        {
            ApiResult <EPSMappingErrorCodes> res = new ApiResult <EPSMappingErrorCodes>();

            try
            {
                var response = ValidateMapping(mapping);
                if (response == EPSMappingErrorCodes.Succeeded)
                {
                    var insertResponse = await _epsMappingRepository.InsertEPSMappingAsync(mapping);

                    if (false == insertResponse)
                    {
                        response = EPSMappingErrorCodes.EPSMappingAllErrorMsg;
                    }
                }
                res.Result = response;
            }
            catch (Exception)
            {
                throw;
            }

            return(res);
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="mapping"></param>
        /// <returns></returns>
        public static String PostValidation(EPSMapping mapping)
        {
            String errorkey = "";

            if (mapping.pdlFlag)
            {
                if (string.IsNullOrEmpty(mapping.paramName))
                {
                    errorkey = "EPSMappingParamNameErrorMsg";
                }
            }
            else
            {
                if (string.IsNullOrEmpty(mapping.worldPayFieldName) || string.IsNullOrEmpty(mapping.worldPayTableName))
                {
                    errorkey = "EPSMappingTable_FieldNamerErrorMsg";
                }
            }
            if ((string.IsNullOrEmpty(mapping.viperFieldName) || string.IsNullOrEmpty(mapping.viperTableName)) && string.IsNullOrEmpty(errorkey))
            {
                errorkey = "EPSMappingViperFieldsErrorMsg";
            }

            if ((mapping.effectiveBeginDate.HasValue == false || mapping.effectiveEndDate.HasValue == false) && string.IsNullOrEmpty(errorkey))
            {
                errorkey = "EPSMappingDatesErrorMsg";
            }

            return(errorkey);
        }
Пример #5
0
        public async Task InsertEPSMappingTest_Success()
        {
            MockEPSMappingApiRepository bApi        = new MockEPSMappingApiRepository();
            IDistributedCache           _cache      = FakeCache();
            IOptions <Settings>         appSettings = Substitute.For <IOptions <Settings> >();
            IEPSMappingApi       epsMappingApi      = new EPSMappingApi(appSettings, bApi);
            EPSMappingController controller         = FakeController(_cache, epsMappingApi);
            EPSMapping           epsMapping         = new EPSMapping();

            epsMapping.versionID                = 1;
            epsMapping.pdlFlag                  = false;
            epsMapping.paramID                  = 200;
            epsMapping.worldPayFieldName        = "PrimaryPhoneNbr";
            epsMapping.worldPayTableName        = "tbTranSurcharge";
            epsMapping.worldPayJoinFields       = null;
            epsMapping.worldPayCondition        = null;
            epsMapping.worldPayOrderBy          = null;
            epsMapping.worldPayFieldDescription = "Master Cutoff Amount1";
            epsMapping.effectiveBeginDate       = DateTime.Now;
            epsMapping.effectiveEndDate         = DateTime.Now;
            epsMapping.viperTableName           = "Fee";
            epsMapping.viperFieldName           = "/ Fee / FeeRow / FeeAmount";
            epsMapping.viperCondition           = "Fee";
            epsMapping.charStartIndex           = 102;
            epsMapping.charLength               = 3;
            epsMapping.createdByUser            = "******";
            //.. Act
            var dinfo = await controller.Post(epsMapping);

            var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value;

            //..Assert
            Assert.Equal(((bool)actualRecord), true);
        }
Пример #6
0
 public Task <bool> InsertEPSMappingAsync(EPSMapping mapping)
 {
     if (mapping.versionID > 0)
     {
         epsMapping.Add(mapping);
     }
     else
     {
         throw new Exception("VersionId is not provided");
     }
     return(Task.Run(() => true));
 }
Пример #7
0
 public Task <bool> UpdateEPSMappingAsync(EPSMapping mapping)
 {
     if (epsMapping.Any(s => s.versionID == mapping?.versionID))
     {
         var currentMapping = epsMapping.Where(s => s.versionID == mapping.versionID).FirstOrDefault();
         epsMapping.Remove(currentMapping);
         epsMapping.Add(mapping);
     }
     else
     {
         throw new Exception("Version not exists");
     }
     return(Task.Run(() => true));
 }
Пример #8
0
 public EPSMapping GetMappingFromXml(string xml)
 {
     try
     {
         EPSMapping mapping = new EPSMapping();
         if (string.IsNullOrEmpty(xml))
         {
             return(mapping);
         }
         XDocument xDoc = XDocument.Parse(xml);
         return(GetMapping(xDoc.Root));
     }
     catch
     {
         throw;
     }
 }
Пример #9
0
        public async Task <ApiResult <EPSMappingErrorCodes> > UpdateEPSMappingAsync(EPSMapping mapping)
        {
            ApiResult <EPSMappingErrorCodes> response = new ApiResult <EPSMappingErrorCodes>();

            try
            {
                var errorResponse = ValidateMapping(mapping);
                if (errorResponse == EPSMappingErrorCodes.Succeeded)
                {
                    await _epsMappingRepository.UpdateEPSMappingAsync(mapping);
                }

                response.Result = errorResponse;
            }
            catch (Exception)
            {
                throw;
            }

            return(response);
        }
Пример #10
0
        public async Task InsertEPSMappingTest_FailOnPdfFlagTrue()
        {
            MockEPSMappingApiRepository bApi        = new MockEPSMappingApiRepository();
            IDistributedCache           _cache      = FakeCache();
            IOptions <Settings>         appSettings = Substitute.For <IOptions <Settings> >();
            IEPSMappingApi epsMappingApi            = new EPSMappingApi(appSettings, bApi);
            var            localizer = new MockStringLocalizer <EPSMappingController>();

            localizer[0] = new LocalizedString("EPSMappingParamNameErrorMsg", "ParamName is mandatory");

            EPSMappingController controller = FakeController(_cache, epsMappingApi, localizer);
            EPSMapping           epsMapping = new EPSMapping();

            epsMapping.versionID                = 1;
            epsMapping.pdlFlag                  = true;
            epsMapping.paramID                  = 200;
            epsMapping.worldPayFieldName        = null;
            epsMapping.worldPayTableName        = null;
            epsMapping.worldPayJoinFields       = null;
            epsMapping.worldPayCondition        = null;
            epsMapping.worldPayOrderBy          = null;
            epsMapping.worldPayFieldDescription = "Master Cutoff Amount1";
            epsMapping.effectiveBeginDate       = DateTime.Now;
            epsMapping.effectiveEndDate         = DateTime.Now;
            epsMapping.viperTableName           = "Fee";
            epsMapping.viperFieldName           = "/ Fee / FeeRow / FeeAmount";
            epsMapping.viperCondition           = null;
            epsMapping.charStartIndex           = 102;
            epsMapping.charLength               = 3;
            epsMapping.createdByUser            = "******";
            //.. Act
            var dinfo = await controller.Post(epsMapping);

            var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo);

            //..Assert
            Assert.Equal(actualRecord.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
            Assert.Equal(actualRecord.Value, "ParamName is mandatory");
        }
Пример #11
0
        private EPSMappingErrorCodes ValidateMapping(EPSMapping mapping)
        {
            var response = EPSMappingErrorCodes.Succeeded;

            try
            {
                if (mapping.pdlFlag)
                {
                    if (string.IsNullOrEmpty(mapping.paramName))
                    {
                        response = EPSMappingErrorCodes.EPSMappingParamNameErrorMsg;
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(mapping.worldPayFieldName) || string.IsNullOrEmpty(mapping.worldPayTableName))
                    {
                        response = EPSMappingErrorCodes.EPSMappingTable_FieldNameErrorMsg;
                    }
                }

                if ((string.IsNullOrEmpty(mapping.viperFieldName) || string.IsNullOrEmpty(mapping.viperTableName)) && response == EPSMappingErrorCodes.Succeeded)
                {
                    response = EPSMappingErrorCodes.EPSMappingViperFieldsErrorMsg;
                }

                if ((mapping.effectiveBeginDate.HasValue == false || mapping.effectiveEndDate.HasValue == false) && response == EPSMappingErrorCodes.Succeeded)
                {
                    response = EPSMappingErrorCodes.EPSMappingDatesErrorMsg;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(response);
        }
Пример #12
0
        public async Task UpdateEPSMappingVersionDetailsTest_Success()
        {
            MockEPSMappingApiRepository api         = new MockEPSMappingApiRepository();
            IDistributedCache           _cache      = FakeCache();
            IOptions <Settings>         appSettings = Substitute.For <IOptions <Settings> >();
            IEPSMappingApi       epsMappingApi      = new EPSMappingApi(appSettings, api);
            EPSMappingController controller         = FakeController(_cache, epsMappingApi);
            EPSMapping           epsMapping         = new EPSMapping();

            epsMapping.versionID                = 3;
            epsMapping.mappingID                = 399;
            epsMapping.pdlFlag                  = true;
            epsMapping.paramName                = "Test";
            epsMapping.paramID                  = 200;
            epsMapping.worldPayFieldName        = null;
            epsMapping.worldPayTableName        = null;
            epsMapping.worldPayJoinFields       = null;
            epsMapping.worldPayCondition        = null;
            epsMapping.worldPayOrderBy          = null;
            epsMapping.worldPayFieldDescription = "Master Cutoff Amount2";
            epsMapping.effectiveBeginDate       = DateTime.Now;
            epsMapping.effectiveEndDate         = DateTime.Now;
            epsMapping.viperTableName           = "Fee";
            epsMapping.viperFieldName           = "/ FeeRow / FeeAmount";
            epsMapping.viperCondition           = null;
            epsMapping.charStartIndex           = 103;
            epsMapping.charLength               = 3;
            epsMapping.createdByUser            = "******";
            //.. Act
            var dinfo = await controller.Update(epsMapping);

            var actualRecord   = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value;
            var updatedMapping = api.epsMapping.Where(s => s.versionID == 3).FirstOrDefault();

            //..Assert
            Assert.Equal(epsMapping.pdlFlag, true);
            Assert.Equal(updatedMapping, epsMapping);
        }
Пример #13
0
        public async Task <IActionResult> Update([FromBody] EPSMapping mapping)
        {
            await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting EPS Mapping Update ", "EPSMappingController.cs", "Update"), CancellationToken.None);

            if (!ModelState.IsValid)
            {
                await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, ModelState.ToString(), "EPSMappingController.cs", "Update"), CancellationToken.None);

                return(BadRequest(ModelState));
            }

            try
            {
                var serviceResponse = await _epsmappingApi.UpdateEPSMappingAsync(mapping);

                if (serviceResponse.Result == Model.Error.EPSMappingErrorCodes.Succeeded)
                {
                    return(Ok(true));
                }
                else
                {
                    var errorKey     = serviceResponse.Result.ToString();
                    var errorMessage = this._localizer[errorKey]?.Value;
                    await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, errorMessage + "Update Unsuccessful", "EPSMappingController.cs", "Update"), CancellationToken.None);

                    return(BadRequest(errorMessage));
                }
            }
            catch (Exception ex)
            {
                var msg = this._localizer?["EPSMappingUpdateErrorMsg"]?.Value;
                await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in EPSMappingUpdate()", CancellationToken.None);

                return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg));
            }
        }