Exemple #1
0
        public void Should_return_unset_if_field_hidden()
        {
            var source = 123;

            var result = ValueConverters.ExcludeHidden()(source, stringField.Hide());

            Assert.Same(Value.Unset, result);
        }
        public void Should_return_same_value_if_decoding_null_value()
        {
            var source = JsonValue.Null;

            var result = ValueConverters.DecodeJson(TestUtils.DefaultSerializer)(source, jsonField);

            Assert.Same(source, result);
        }
Exemple #3
0
        public void Should_decode_json_values()
        {
            var source = "e30=";

            var result = ValueConverters.DecodeJson()(source, jsonField);

            Assert.Equal(new JObject(), result);
        }
Exemple #4
0
        public void Should_return_same_value_if_decoding_null_value()
        {
            var source = JValue.CreateNull();

            var result = ValueConverters.DecodeJson()(source, jsonField);

            Assert.Same(source, result);
        }
Exemple #5
0
        public void Should_return_same_value_if_encoding_non_json_field()
        {
            var source = (JToken)"NO-JSON";

            var result = ValueConverters.EncodeJson()(source, stringField);

            Assert.Same(source, result);
        }
Exemple #6
0
        public void Should_encode_json_value()
        {
            var source = new JObject();

            var result = ValueConverters.EncodeJson()(source, jsonField);

            Assert.Equal("e30=", result);
        }
Exemple #7
0
        public void Should_return_null_if_field_has_wrong_type()
        {
            var source = JsonValue.Create("invalid");

            var result = ValueConverters.ExcludeChangedTypes(TestUtils.DefaultSerializer)(source, numberField);

            Assert.Null(result);
        }
Exemple #8
0
        public void Should_return_same_value_if_decoding_non_json_field()
        {
            var source = JValue.CreateNull();

            var result = ValueConverters.EncodeJson()(source, stringField);

            Assert.Same(source, result);
        }
Exemple #9
0
        public void Should_return_unset_if_field_has_wrong_type()
        {
            var source = "invalid";

            var result = ValueConverters.ExcludeChangedTypes()(source, numberField);

            Assert.Same(Value.Unset, result);
        }
Exemple #10
0
 public static NamedContentData FromMongoModel(this IdContentData result, Schema schema, IJsonSerializer serializer)
 {
     return(result.ConvertId2Name(schema,
                                  FieldConverters.ForValues(
                                      ValueConverters.DecodeJson(serializer)),
                                  FieldConverters.ForNestedId2Name(
                                      ValueConverters.DecodeJson(serializer))));
 }
        public void Should_return_same_value_if_encoding_non_json_field()
        {
            var source = JsonValue.Create("NO-JSON");

            var result = ValueConverters.EncodeJson(TestUtils.DefaultSerializer)(source, stringField);

            Assert.Same(source, result);
        }
        public void Should_decode_json_values()
        {
            var source = JsonValue.Create("e30=");

            var result = ValueConverters.DecodeJson(TestUtils.DefaultSerializer)(source, jsonField);

            Assert.Equal(JsonValue.Object(), result);
        }
Exemple #13
0
 public static IdContentData ToMongoModel(this NamedContentData result, Schema schema)
 {
     return(result.ConvertName2Id(schema,
                                  FieldConverters.ForValues(
                                      ValueConverters.EncodeJson()),
                                  FieldConverters.ForNestedName2Id(
                                      ValueConverters.EncodeJson())));
 }
Exemple #14
0
        public void Should_return_null_if_field_hidden()
        {
            var source = JsonValue.Create(123);

            var result = ValueConverters.ExcludeHidden(source, stringField.Hide());

            Assert.Null(result);
        }
Exemple #15
0
        public void TryGetByTargetTypeReturnsTrueWhenThereIsAMatch()
        {
            var valueConverters = new ValueConverters()
                                  .Add(typeof(Bar), value => new Bar(int.Parse(value)))
                                  .Add(typeof(Baz), ParseBaz);

            Assert.True(valueConverters.TryGet(typeof(Bar), out var convertBar));
            Assert.True(valueConverters.TryGet(typeof(Baz), out var convertBaz));
        }
Exemple #16
0
        public void TryGetByDeclaringTypeAndMemberNameReturnsTrueWhenThereIsAMatch()
        {
            var valueConverters = new ValueConverters()
                                  .Add(typeof(Foo), "bar", value => new Bar(int.Parse(value)))
                                  .Add(typeof(Foo), "baz", ParseBaz);

            Assert.True(valueConverters.TryGet(typeof(Foo), "bar", out var convertBar));
            Assert.True(valueConverters.TryGet(typeof(Foo), "baz", out var convertBaz));
        }
Exemple #17
0
 public static NamedContentData FromMongoModel(this IdContentData result, Schema schema, List <Guid> deletedIds)
 {
     return(result.ConvertId2Name(schema,
                                  FieldConverters.ForValues(
                                      ValueConverters.DecodeJson(),
                                      ValueReferencesConverter.CleanReferences(deletedIds)),
                                  FieldConverters.ForNestedId2Name(
                                      ValueConverters.DecodeJson(),
                                      ValueReferencesConverter.CleanReferences(deletedIds))));
 }
        public MapperContext Clone()
        {
            var context = new MapperContext();

            Naming.CloneTo(context.Naming);
            UserConfigurations.CloneTo(context.UserConfigurations);
            ValueConverters.CloneTo(context.ValueConverters);

            return(context);
        }
        private static void AddLoggerFromLoggerFactory(this IServiceCollection services, string rockLibLoggerName,
                                                       DefaultTypes defaultTypes, ValueConverters valueConverters)
        {
            services.AddSingleton <ILogProcessor, BackgroundLogProcessor>();

            services.AddTransient(serviceProvider =>
            {
                var resolver = new Resolver(t => serviceProvider.GetService(t));
                return(LoggerFactory.Create(rockLibLoggerName, defaultTypes, valueConverters, resolver, reloadOnConfigChange: false));
            });
        }
Exemple #20
0
        public void GivenReturnTypeOfFunctionIsNotAssignableToTargetType_ThrowsArgumentException()
        {
            var valueConverters = new ValueConverters();

            var actual = Assert.Throws <ArgumentException>(() => valueConverters.Add(typeof(Bar), value => new Qux()));

#if DEBUG
            var expected = Exceptions.ReturnTypeOfConvertFuncIsNotAssignableToTargetType(typeof(Bar), typeof(Qux));
            Assert.Equal(expected.Message, actual.Message);
#endif
        }
Exemple #21
0
        public void GivenNoMatchingMembers_ThrowsArgumentException()
        {
            var valueConverters = new ValueConverters();

            var actual = Assert.Throws <ArgumentException>(() => valueConverters.Add(typeof(Foo), "qux", value => new Bar(int.Parse(value))));

#if DEBUG
            var expected = Exceptions.NoMatchingMembers(typeof(Foo), "qux");
            Assert.Equal(expected.Message, actual.Message);
#endif
        }
Exemple #22
0
        /// <summary>
        /// Creates an instance of the <see cref="ISender"/> interface identified by
        /// its name from the 'senders' section of the <paramref name="configuration"/> parameter.
        /// </summary>
        /// <param name="configuration">
        /// A configuration object that contains the specified sender in its 'senders' section.
        /// </param>
        /// <param name="name">The name that identifies which sender from configuration to create.</param>
        /// <param name="defaultTypes">
        /// An object that defines the default types to be used when a type is not explicitly specified by a
        /// configuration section.
        /// </param>
        /// <param name="valueConverters">
        /// An object that defines custom converter functions that are used to convert string configuration
        /// values to a target type.
        /// </param>
        /// <param name="resolver">
        /// An object that can retrieve constructor parameter values that are not found in configuration. This
        /// object is an adapter for dependency injection containers, such as Ninject, Unity, Autofac, or
        /// StructureMap. Consider using the <see cref="Resolver"/> class for this parameter, as it supports
        /// most depenedency injection containers.
        /// </param>
        /// <param name="reloadOnConfigChange">
        /// Whether to create an instance of <see cref="ISender"/> that automatically reloads itself when its
        /// configuration changes. Default is true.
        /// </param>
        /// <returns>A new instance of the <see cref="ISender"/> interface.</returns>
        public static ISender CreateSender(this IConfiguration configuration, string name,
                                           DefaultTypes defaultTypes = null, ValueConverters valueConverters = null,
                                           IResolver resolver        = null, bool reloadOnConfigChange = true)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            return(configuration.CreateScenario <ISender>("senders", name, defaultTypes, valueConverters, resolver, reloadOnConfigChange));
        }
        public void Should_not_convert_asset_ids_if_field_name_does_not_match(string path)
        {
            var field = Fields.Assets(1, "assets", Partitioning.Invariant);

            var source = JsonValue.Array(id1, id2);

            var expected = source;

            var result = ValueConverters.ResolveAssetUrls(appId, HashSet.Of(path), urlGenerator)(source, field, null);

            Assert.Equal(expected, result);
        }
Exemple #24
0
        public List <RepaymentView> ReadRepayment(TellerMobileDeposit tellerDeposit)
        {
            List <RepaymentView> repayments = new List <RepaymentView>();

            var    loanproductNames = loanProductsMgr.GetLoanCodes(db, false).ToList();
            var    investnames      = investMgr.InvestmentsCodes(db).ToList();
            String ledger           = tellerDeposit.ProductCode;

            if (ledger.Substring(0, 1) == "0")
            {
                ledger = "SAVINGS";
            }
            else
            {
                ledger = ledger.Substring(0, 1).In("A", "L") ? "LOANS" : "INVESTMENTS";
            }

            string productName = tellerDeposit.ProductCode;

            switch (ledger)
            {
            case "LOANS":
                if (loanproductNames.FirstOrDefault(x => x.LoanCode == tellerDeposit.ProductCode) != null)
                {
                    productName = ValueConverters.ConvertNullToEmptyString(
                        loanproductNames.FirstOrDefault(x => x.LoanCode == tellerDeposit.ProductCode).LoanName.ToString());
                }
                break;

            case "INVESTMENTS":
                if (investnames.FirstOrDefault(x => x.InvestmentCode == tellerDeposit.ProductCode) != null)
                {
                    productName = ValueConverters.ConvertNullToEmptyString(
                        investnames.FirstOrDefault(x => x.InvestmentCode == tellerDeposit.ProductCode).InvestmentName.ToString());
                }
                break;

            default:
                break;
            }

            repayments.Add(new RepaymentView
            {
                CustomerNo  = tellerDeposit.CustomerNo,
                ProductCode = tellerDeposit.ProductCode,
                ProductName = productName,
                Amount      = ValueConverters.ConvertDecimaltoDouble(tellerDeposit.TrxAmount),
                Ledger      = ledger,
                Section     = 1
            });

            return(repayments);
        }
Exemple #25
0
        public void Validate_Teller_Transaction(string transactionType, string tellerAccount, double transactionAmount, bool interTellerTransaction = false)
        {
            if (ValueConverters.IsStringEmpty(tellerAccount))
            {
                _validationDictionary.AddError("TransactionAmount", "You do not have a Valid Teller Account  !");
                _validationDictionary.AddError("PaidTo", "You do not have a Valid Teller Account  !");
                _validationDictionary.AddError("CustomerNo", "You do not have a Valid Teller Account  !");
                return;
            }
            if (transactionAmount <= 0.00)
            {
                _validationDictionary.AddError("TransactionAmount", "Transaction Amount is Zero/Negative");
                _validationDictionary.AddError("GlCredit", "Transaction Amount is Zero/Negative");
                _validationDictionary.AddError("CustomerNo", "Transaction Amount is Zero/Negative");
                _validationDictionary.AddError("PaidTo", "Transaction Amount is Zero/Negative");
            }

            double tellerBalance = TellerAccountBalance(tellerAccount);

            Company companyDetails = companyManager.GetCompanyDetails();

            if (interTellerTransaction || transactionType.ToUpper().In("MISCPAYMENTS", "AGENCYWITHDRAWAL", "CASHWITHDRAWAL"))
            {
                if (tellerBalance - transactionAmount < 0)
                {
                    _validationDictionary.AddError("TransactionAmount", "You Have Insufficient Funds for this Transaction !");
                    _validationDictionary.AddError("CustomerNo", "You Have Insufficient Funds for this Transaction !");
                    _validationDictionary.AddError("TrType", "You Have Insufficient Funds for this Transaction !");
                    _validationDictionary.AddError("PaidTo", "You Have Insufficient Funds for this Transaction !");
                }
            }
            else
            {
                if (!transactionType.ToUpper().In("CHEQUEDEPOSIT"))
                {
                    if ((decimal)tellerBalance > companyDetails.TellerCashInsuranceLimit)
                    {
                        if (transactionType == "PRODUCTREPAYMENTS")
                        {
                            _validationDictionary.AddError("customerDetails.CustomerNo", "Insurance Limit Has been Exceeded !");
                        }
                        else
                        {
                            _validationDictionary.AddError("TransactionAmount", "Insurance Limit Has been Exceeded !");
                            _validationDictionary.AddError("CustomerNo", "Insurance Limit Has been Exceeded !");
                            _validationDictionary.AddError("PaidTo", "You Have Insufficient Funds for this Transaction !");
                        }
                    }
                }
            }

            TellerDayClosed(tellerAccount);
        }
Exemple #26
0
        public void Should_not_convert_nested_asset_ids_when_field_name_does_not_match(string path)
        {
            var field = Fields.Array(1, "parent", Partitioning.Invariant, Fields.Assets(11, "assets"));

            var source = JsonValue.Array(id1, id2);

            var expected = source;

            var result = ValueConverters.ResolveAssetUrls(HashSet.Of(path), urlGenerator)(source, field.Fields[0], field);

            Assert.Equal(expected, result);
        }
Exemple #27
0
        public void Should_convert_asset_ids_to_urls(string path)
        {
            var field = Fields.Assets(1, "assets", Partitioning.Invariant);

            var source = JsonValue.Array(id1, id2);

            var expected = JsonValue.Array($"url/to/{id1}", $"url/to/{id2}");

            var result = ValueConverters.ResolveAssetUrls(HashSet.Of(path), urlGenerator)(source, field);

            Assert.Equal(expected, result);
        }
Exemple #28
0
        private IEnumerable <FieldConverter> GenerateConverters(Context context, ValueConverter?cleanReferences)
        {
            if (!context.IsFrontendClient)
            {
                yield return(excludedHiddenField);

                yield return(excludedHiddenValue);
            }

            yield return(excludedChangedField);

            yield return(excludedChangedValue);

            if (cleanReferences != null)
            {
                yield return(FieldConverters.ForValues(cleanReferences));

                yield return(FieldConverters.ForValues(ValueConverters.ForNested(cleanReferences)));
            }

            yield return(FieldConverters.ResolveInvariant(context.App.Languages));

            yield return(FieldConverters.ResolveLanguages(context.App.Languages));

            if (!context.IsFrontendClient)
            {
                if (context.ShouldResolveLanguages())
                {
                    yield return(FieldConverters.ResolveFallbackLanguages(context.App.Languages));
                }

                var languages = context.Languages();

                if (languages.Any())
                {
                    yield return(FieldConverters.FilterLanguages(context.App.Languages, languages));
                }

                var assetUrls = context.AssetUrls().ToList();

                if (assetUrls.Count > 0)
                {
                    var appId = context.App.NamedId();

                    var resolveAssetUrls = ValueConverters.ResolveAssetUrls(appId, assetUrls, urlGenerator);

                    yield return(FieldConverters.ForValues(resolveAssetUrls));

                    yield return(FieldConverters.ForValues(ValueConverters.ForNested(resolveAssetUrls)));
                }
            }
        }
Exemple #29
0
        public ConvertData(IUrlGenerator urlGenerator, IJsonSerializer jsonSerializer,
                           IAssetRepository assetRepository, IContentRepository contentRepository)
        {
            this.urlGenerator      = urlGenerator;
            this.assetRepository   = assetRepository;
            this.contentRepository = contentRepository;

            excludedChangedField = FieldConverters.ExcludeChangedTypes(jsonSerializer);
            excludedChangedValue = FieldConverters.ForValues(ValueConverters.ExcludeChangedTypes(jsonSerializer));

            excludedHiddenField = FieldConverters.ExcludeHidden;
            excludedHiddenValue = FieldConverters.ForValues(ValueConverters.ExcludeHidden);
        }
Exemple #30
0
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            optionsBuilder.UseSqlServer(ConnectionString);

            optionsBuilder.UseLoggerFactory(Logger);

            // Magically make queries faster!
            optionsBuilder.AddInterceptors(new SpeedInterceptor());

            // Always use bigint for TimeSpan columns.
            ValueConverters.Add(typeof(TimeSpan), new TimeSpanToTicksConverter());
        }