/// <summary>
        /// إعدادات نظام الموردين
        /// </summary>
        /// <returns></returns>
        public VendorSettingViewModel GetVendorSetting()
        {
            var keys   = this._SettingsRepository.Get().ToList();
            var result = new VendorSettingViewModel
            {
                CashPurchaseAccountNumber           = keys.FirstOrDefault(k => k.Key == "CashPurchaseAccountNumber").Value,
                FuturePurchaseAccountNumber         = keys.FirstOrDefault(k => k.Key == "FuturePurchaseAccountNumber").Value,
                PurchaseDiscountAccountNumber       = keys.FirstOrDefault(k => k.Key == "PurchaseDiscountAccountNumber").Value,
                PurchaseExpensesAccountNumber       = keys.FirstOrDefault(k => k.Key == "PurchaseExpensesAccountNumber").Value,
                PurchaseTaxAccountNumber            = keys.FirstOrDefault(k => k.Key == "PurchaseTaxAccountNumber").Value,
                CashPurchasesRebateAccountNumber    = keys.FirstOrDefault(k => k.Key == "CashPurchasesRebateAccountNumber").Value,
                FuturePurchaseRebateAccountNumber   = keys.FirstOrDefault(k => k.Key == "FuturePurchaseRebateAccountNumber").Value,
                PurchaseRebateDiscountAccountNumber = keys.FirstOrDefault(k => k.Key == "PurchaseRebateDiscountAccountNumber").Value,
                PurchaseRebateExpensesAccountNumber = keys.FirstOrDefault(k => k.Key == "PurchaseRebateExpensesAccountNumber").Value,
                PurchaseRebateTaxAccountNumber      = keys.FirstOrDefault(k => k.Key == "PurchaseRebateTaxAccountNumber").Value,
            };

            ConditionFilter <AccountChart, long> AccountChartCondition = new ConditionFilter <AccountChart, long>
            {
                Query = (x =>
                         x.Id.ToString() == result.CashPurchaseAccountNumber ||
                         x.Id.ToString() == result.FuturePurchaseAccountNumber ||
                         x.Id.ToString() == result.PurchaseDiscountAccountNumber ||
                         x.Id.ToString() == result.PurchaseExpensesAccountNumber ||
                         x.Id.ToString() == result.PurchaseTaxAccountNumber ||
                         x.Id.ToString() == result.CashPurchasesRebateAccountNumber ||
                         x.Id.ToString() == result.FuturePurchaseRebateAccountNumber ||
                         x.Id.ToString() == result.PurchaseRebateDiscountAccountNumber ||
                         x.Id.ToString() == result.PurchaseRebateExpensesAccountNumber ||
                         x.Id.ToString() == result.PurchaseRebateTaxAccountNumber)
            };
            var acoountCharts = this._accountChartsRepository.Get(AccountChartCondition).ToList();

            result.CashPurchaseAccount           = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.CashPurchaseAccountNumber).ToLightModel();
            result.FuturePurchaseAccount         = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.FuturePurchaseAccountNumber).ToLightModel();
            result.PurchaseDiscountAccount       = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseDiscountAccountNumber).ToLightModel();
            result.PurchaseExpensesAccount       = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseExpensesAccountNumber).ToLightModel();
            result.PurchaseTaxAccount            = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseTaxAccountNumber).ToLightModel();
            result.CashPurchasesRebateAccount    = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.CashPurchasesRebateAccountNumber).ToLightModel();
            result.FuturePurchaseRebateAccount   = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.FuturePurchaseRebateAccountNumber).ToLightModel();
            result.PurchaseRebateDiscountAccount = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseRebateDiscountAccountNumber).ToLightModel();
            result.PurchaseRebateExpensesAccount = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseRebateExpensesAccountNumber).ToLightModel();
            result.PurchaseRebateTaxAccount      = acoountCharts.FirstOrDefault(x => x.Id.ToString() == result.PurchaseRebateTaxAccountNumber).ToLightModel();

            return(result);
        }
        public VendorSettingViewModel UpdateVendorSetting(VendorSettingViewModel model)
        {
            var keys = this._SettingsRepository.Get();

            keys.FirstOrDefault(k => k.Key == "CashPurchaseAccountNumber").Value           = model.CashPurchaseAccountNumber;
            keys.FirstOrDefault(k => k.Key == "FuturePurchaseAccountNumber").Value         = model.FuturePurchaseAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseDiscountAccountNumber").Value       = model.PurchaseDiscountAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseExpensesAccountNumber").Value       = model.PurchaseExpensesAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseTaxAccountNumber").Value            = model.PurchaseTaxAccountNumber;
            keys.FirstOrDefault(k => k.Key == "CashPurchasesRebateAccountNumber").Value    = model.CashPurchasesRebateAccountNumber;
            keys.FirstOrDefault(k => k.Key == "FuturePurchaseRebateAccountNumber").Value   = model.FuturePurchaseRebateAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseRebateDiscountAccountNumber").Value = model.PurchaseRebateDiscountAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseRebateExpensesAccountNumber").Value = model.PurchaseRebateExpensesAccountNumber;
            keys.FirstOrDefault(k => k.Key == "PurchaseRebateTaxAccountNumber").Value      = model.PurchaseRebateTaxAccountNumber;

            this._SettingsRepository.Update(keys);
            this._unitOfWork.Commit();

            var result = this.GetVendorSetting();

            return(result);
        }