/// <summary>
        /// 添加交易明细记录
        /// </summary>
        /// <param name="transactionId">交易Id</param>
        /// <param name="creatorId">创建人Id</param>
        /// <param name="content">内容</param>
        /// <param name="extraData">附加数据</param>
        public virtual void AddDetailRecord(
            long transactionId, long?creatorId, string content, object extraData = null)
        {
            var recordRepository = RepositoryResolver.ResolveRepository <GenericRecordRepository>(Context);

            recordRepository.AddRecord(RecordType, transactionId, creatorId, content, null, extraData);
        }
        public async Task <LoginResult> Login(string emailAdress, string password)
        {
            LoginResult result      = new LoginResult();
            var         credentials = CredentialUtil.GetCredential("BalanceKeeper.Desktop" + emailAdress);

            if (emailAdress != null && credentials != null && credentials.Username == emailAdress && password == credentials.Password)
            {
                result.IsError = false;
                SetCurrentUser(emailAdress);


                SQLiteStarter starter = new SQLiteStarter();
                starter.Start(new Action(() =>
                {
                    IUserProvider desktopUserProvider = ServiceResolver.GetContainer().GetInstance <IUserProvider>();
                    desktopUserProvider.SetUserId(LoginRepository.Instance.CurrentUser.ID);
                }));
                starter.CreateDBIfNotExists();

                await RepositoryResolver.GetRepository <ITransactionRepository>().CreateInitialFilling();
            }
            else
            {
                result.IsError   = true;
                result.ErrorType = LoginErrorType.WrongCredentials;
            }
            return(await Task <LoginResult> .FromResult(result));
        }
        /// <summary>
        /// 删除相应的购物车商品
        /// </summary>
        protected virtual void RemoveCartProducts()
        {
            var cartProducts          = Parameters.OrderParameters.GetCartProducts();
            var cartProductRepository = RepositoryResolver.Resolve <CartProduct>(Context);

            cartProductRepository.BatchDeleteForever(cartProducts.Keys.OfType <object>());
        }
            /// <summary>
            /// 提交表单
            /// </summary>
            protected override object OnSubmit(IDatabaseContext context, Database.Article saveTo)
            {
                if (saveTo.Id <= 0)
                {
                    var sessionManager = Application.Ioc.Resolve <SessionManager>();
                    var session        = sessionManager.GetSession();
                    var userRepository = RepositoryResolver.Resolve <User>(context);
                    saveTo.Author     = userRepository.GetById(session.ReleatedId);
                    saveTo.CreateTime = DateTime.UtcNow;
                }
                saveTo.Title   = Title;
                saveTo.Summary = Summary;
                var classRepository = RepositoryResolver.Resolve <GenericClass>(context);
                var tagRepository   = RepositoryResolver.Resolve <GenericTag>(context);

                saveTo.Classes      = new HashSet <GenericClass>(classRepository.GetMany(c => ArticleClass.Contains(c.Id)));
                saveTo.Tags         = new HashSet <GenericTag>(tagRepository.GetMany(t => ArticleTag.Contains(t.Id)));
                saveTo.DisplayOrder = DisplayOrder;
                saveTo.Contents     = Contents;
                saveTo.Remark       = Remark;
                saveTo.LastUpdated  = DateTime.UtcNow;
                return(new {
                    message = new T("Saved Successfully"),
                    script = ScriptStrings.AjaxtableUpdatedAndCloseModal
                });
            }
Exemple #5
0
        protected override void OnStartup(StartupEventArgs e)
        {
            IRepository repository = RepositoryResolver.Resolve <IRepository>();

            if (!repository.GetValue <bool>("SeenLicense"))
            {
                var result = MessageBox.Show("This program is distrubuted under the General Public License. You must agree to the terms and conditions of this license before using the program", "GPL License", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (result == MessageBoxResult.No)
                {
                    Application.Current.Shutdown();
                    return;
                }

                IColorSettings colorSettings = ModelResolver.Resolve <IColorSettings>();
                colorSettings.ReturnToDefault();
                colorSettings.SaveSettings();

                repository.SetValue("SeenLicense", true);
                repository.Save();
            }

            MainWindow          view      = new MainWindow();
            MainWindowViewModel viewModel = new MainWindowViewModel(e.Args);

            view.DataContext = viewModel;

            view.Show();

            base.OnStartup(e);
        }
Exemple #6
0
        public void BeforeDelete(IDatabaseContext context, PaymentTransaction data)
        {
            var recordRepository = RepositoryResolver.Resolve <GenericRecord>(context);

            recordRepository.BatchDelete(
                r => r.Type == PaymentTransactionRepository.RecordType && r.ReleatedId == data.Id);
        }
Exemple #7
0
        public override void SaveSettings()
        {
            if (ModelObjectState == ModelObjectState.Clean)
            {
                return;
            }

            try
            {
                IRepository repository = RepositoryResolver.Resolve <IRepository>();
                repository.SetValue("NoseColorSetting", NoseColor);
                repository.SetValue("OrientationColor", OrientationColor);
                repository.SetValue("Whisker1ColorSetting", Whisker1Color);
                repository.SetValue("Whisker2ColorSetting", Whisker2Color);
                repository.SetValue("Whisker3ColorSetting", Whisker3Color);
                repository.SetValue("Whisker4ColorSetting", Whisker4Color);
                repository.SetValue("Whisker5ColorSetting", Whisker5Color);
                repository.SetValue("Whisker6ColorSetting", Whisker6Color);
                repository.SetValue("Whisker7ColorSetting", Whisker7Color);
                repository.SetValue("Whisker8ColorSetting", Whisker8Color);
                repository.SetValue("Whisker9ColorSetting", Whisker9Color);
                repository.SetValue("Whisker10ColorSetting", Whisker10Color);
                repository.Save();
            }
            catch (SettingsPropertyNotFoundException)
            {
                ErrorOccured("Settings file is missing or corrupt, reverting to default values");
                return;
            }

            DataLoadComplete();
        }
        /// <summary>
        /// 如果设置了下单时扣减库存,减少对应商品的库存
        /// </summary>
        protected virtual void ReduceProductsStock()
        {
            // 检查库存减少的模式
            var configManager = Application.Ioc.Resolve <GenericConfigManager>();
            var orderSettings = configManager.GetData <OrderSettings>();

            if (orderSettings.StockReductionMode != StockReductionMode.AfterCreate)
            {
                return;
            }
            // 获取匹配数据并减少数据中的库存数量
            var matchedDataRepository = RepositoryResolver.Resolve <ProductMatchedData>(Context);

            foreach (var order in Result.CreatedOrders)
            {
                foreach (var orderProduct in order.OrderProducts)
                {
                    var data = orderProduct.Product.MatchedDatas
                               .Where(d => d.Stock != null)
                               .WhereMatched(orderProduct.MatchParameters).FirstOrDefault();
                    if (data != null)
                    {
                        matchedDataRepository.Save(ref data, d => d.ReduceStock(orderProduct.Count));
                    }
                }
            }
        }
Exemple #9
0
            /// <summary>
            /// 提交表单
            /// </summary>
            protected override object OnSubmit(IDatabaseContext context, ProductCategory saveTo)
            {
                if (saveTo.Id <= 0)
                {
                    saveTo.CreateTime = DateTime.UtcNow;
                }
                saveTo.Name = Name;
                var propertyRepository = RepositoryResolver.Resolve <ProductProperty>(context);
                var selected           = new List <long>();

                if (SalesProperties != null)
                {
                    selected.AddRange(SalesProperties);
                }
                if (NonSalesProperties != null)
                {
                    selected.AddRange(NonSalesProperties);
                }
                saveTo.Properties.Clear();
                saveTo.Properties.AddRange(propertyRepository.GetMany(p => selected.Contains(p.Id)));
                saveTo.Remark      = Remark;
                saveTo.LastUpdated = DateTime.UtcNow;
                // 编辑后清除类目管理器的缓存
                Application.Ioc.Resolve <ProductCategoryManager>().ClearCache();
                return(new {
                    message = new T("Saved Successfully"),
                    script = ScriptStrings.AjaxtableUpdatedAndCloseModal
                });
            }
Exemple #10
0
        public OfflineOrOnlineAdminstrationChoseViewmodel(IView view)
        {
            _view = view;



            OfflineCommand = new RelayCommand(async(object obj) =>
            {
                _view.Disable();

                SQLiteStarter starter             = new SQLiteStarter();
                IUserProvider desktopUserProvider = ServiceResolver.GetContainer().GetInstance <IUserProvider>();
                desktopUserProvider.SetUserId(LoginRepository.Instance.CurrentUser.ID);
                starter.CreateDBIfNotExists();
                // starter.TestSeedDb();
                Properties.Settings settings = new Properties.Settings();
                if (RememberChoice)
                {
                    settings.ChoiceIsOnline       = false;
                    settings.RememberOnlineChoice = true;
                    settings.Save();
                }
                else
                {
                    settings.RememberOnlineChoice = false;
                    settings.Save();
                }

                await RepositoryResolver.GetRepository <ITransactionRepository>().CreateInitialFilling();

                new MainWindow().Show();
                _view.Close();
            });
        }
Exemple #11
0
                public CorrectContent()
                {
                    loader = new ResourceLoader();
                    loader.LoadResources("contexts/correct_withselection");

                    resolver = new RepositoryResolver(loader);
                }
        /// <summary>
        /// 有一个以上的订单时创建合并订单交易
        /// </summary>
        protected virtual void CreateMergedTransaction()
        {
            if (Result.CreatedTransactions.Count <= 1)
            {
                return;
            }
            // 创建合并订单交易
            // 因为目前只能使用后台的支付接口,所以收款人应该是null
            // 手续费会在这里按合并后的金额重新计算
            var apiManager            = Application.Ioc.Resolve <PaymentApiManager>();
            var transactionRepository = RepositoryResolver
                                        .ResolveRepository <PaymentTransactionRepository>(Context);
            var firstTransaction = Result.CreatedTransactions.First();
            var amount           = Result.CreatedTransactions.Sum(t => t.Amount);
            var paymentFee       = apiManager.CalculatePaymentFee(firstTransaction.Api.Id, amount);
            var transaction      = transactionRepository.CreateTransaction(
                MergedOrderTransactionHandler.ConstType,
                firstTransaction.Api.Id,
                amount,
                paymentFee,
                firstTransaction.CurrencyType,
                (firstTransaction.Payer == null) ? null : (long?)firstTransaction.Payer.Id,
                null, null,
                string.Join(":", Result.CreatedTransactions.Select(t => t.Description)),
                null, Result.CreatedTransactions);

            Result.CreatedTransactions.Add(transaction);
        }
        public void GetRepository_ReturnsCorrectImplementationForBiscuit()
        {
            var resolver = new RepositoryResolver(testConfiguration);

            var result = resolver.GetRepository <Biscuit>();

            Assert.True(result.GetType() == typeof(BiscuitRepository));
        }
        private void OnRelationEdited(object sender, EventArgs e)
        {
            var indexOfItem = importedRelationsPage.ImportResult.ImportedRelations.IndexOf(editRelation);

            importedRelationsPage.ImportResult.ImportedRelations.Remove(editRelation);
            importedRelationsPage.ImportResult.ImportedRelations.Insert(indexOfItem, Relation);
            UpdateTaskNotifier = new NotifyTaskCompletion <bool>(RepositoryResolver.GetRepository <ITransactionRepository>().SynchronizeTransactionAndRelationCategoriesAsync(Relation.ID), OnRelationSynced);
        }
 public CategoriesViewmodel(MainViewmodel mainViewmodel)
     : base(RepositoryResolver.GetRepository <ICategoryRepository>())
 {
     _mainViewmodel            = mainViewmodel;
     _mainCategoriesRepository = RepositoryResolver.GetRepository <IMainCategoryRepository>();
     LoadMainCategories();
     _searchTerm = string.Empty;
     MaintainMainCategoriesCommand = new RelayCommand(async(obj) => await MaintainMainCategoriesAsync(), CanMaintainMainCategories);
 }
 private void DeleteTransaction(object obj)
 {
     EditTransactionNotifier = new NotifyTaskCompletion <bool>(RepositoryResolver.GetRepository <ITransactionRepository>().DeleteAsync(EditingItem),
                                                               (s, e) =>
     {
         Result = true;
         _view.Close();
     });
 }
Exemple #17
0
        public virtual void TearDown()
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", null);

            //reset the app context
            ApplicationContext.Current = null;

            RepositoryResolver.Reset();
        }
 public RelationsViewmodel(MainViewmodel mainViewmodel, IDialogCoordinator instance)
     : base(RepositoryResolver.GetRepository <IRelationRepository>())
 {
     dialogCoordinator            = instance;
     _mainViewmodel               = mainViewmodel;
     _categoryRepository          = RepositoryResolver.GetRepository <ICategoryRepository>();
     _transactionRepository       = RepositoryResolver.GetRepository <ITransactionRepository>();
     AddCategoryToRelationCommand = new RelayCommand(AddCategoryToRelation, CanAddCategoryToRelation);
     LoadCategories();
 }
        public override void TearDown()
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", null);

            //reset the app context
            ApplicationContext.Current = null;
            Resolution.IsFrozen        = false;

            RepositoryResolver.Reset();
        }
        private void AppendLookupList(ScaffoldViewData <T> viewData, PropertyInfo property)
        {
            var repository = RepositoryResolver.GetRepository(property.PropertyType);

            // get the items
            object items = repository.GetAll();

            // add the items to the viewData
            viewData.WithLookupList(property.PropertyType, items);
        }
 /// <summary>Configure a new daemon for the specified network address.</summary>
 /// <remarks>Configure a new daemon for the specified network address.</remarks>
 /// <param name="addr">
 /// address to listen for connections on. If null, any available
 /// port will be chosen on all network interfaces.
 /// </param>
 public Daemon(IPEndPoint addr)
 {
     myAddress          = addr;
     processors         = new ThreadGroup("Git-Daemon");
     repositoryResolver = RepositoryResolver <DaemonClient> .NONE;
     uploadPackFactory  = new _UploadPackFactory_112(this);
     receivePackFactory = new _ReceivePackFactory_123(this);
     services           = new DaemonService[] { new _DaemonService_143(this, "upload-pack", "uploadpack"
                                                                       ), new _DaemonService_158(this, "receive-pack", "receivepack") };
 }
Exemple #22
0
        public static void RegisterDatatabaseRepositories()
        {
            var container = RepositoryResolver.GetContainer();

            // 2. Configure the container (register)
            // See below for more configuration examples
            container.Register(typeof(IINGRepository), typeof(INGRepository), Lifestyle.Transient);
            container.Register(typeof(IASNRepository), typeof(ASNRepository), Lifestyle.Transient);
            container.Register(typeof(ICustomImportRepository), typeof(CustomImportRepository), Lifestyle.Transient);
            container.Register(typeof(ICategoriesStatisticsRepository), typeof(CategoriesStatisticsRepository), Lifestyle.Transient);
        }
 private void SaveTransaction(object obj)
 {
     EditTransactionNotifier = new NotifyTaskCompletion <Transaction>(RepositoryResolver.GetRepository <ITransactionRepository>().UpdateAsync(EditingItem.ID, EditingItem),
                                                                      (s, e) =>
     {
         NotifyTaskCompletion <Transaction> sender = (NotifyTaskCompletion <Transaction>)s;
         RepositoryResolver.GetRepository <ITransactionRepository>().UntrackItem(sender.Result);
         Result = true;
         _view.Close();
     });
 }
Exemple #24
0
        /// <summary>
        /// 调用发货接口
        /// 发货后自动确认收货
        /// </summary>
        public void SendGoods(
            IDatabaseContext context, PaymentTransaction transaction, string logisticsName, string invoiceNo)
        {
            var logManager = Application.Ioc.Resolve <LogManager>();

            logManager.LogTransaction(string.Format(
                                          "PaymentApi send goods: transaction {0} logisticsName {1} invoiceNo {2}",
                                          transaction.Serial, logisticsName, invoiceNo));
            var transactionRepository = RepositoryResolver.ResolveRepository <PaymentTransactionRepository>(context);

            transactionRepository.Process(transaction.Id, null, PaymentTransactionState.Success);
        }
        protected void TestGetButton_Click(object sender, EventArgs e)
        {
            IDynamicItemsRepositoryBase repo = RepositoryResolver.Resolve(FullItem.DYNAMIC_TYPE_NAME);

            //FullItemDataRepository dataRepository = new FullItemDataRepository();
            IList <DynamicTypeBase> publishedItems = repo.GetAll();
            int i = 0;

            foreach (var fullItem in publishedItems)
            {
                i++;
            }
        }
        public override void Start(Action initializeUserRepository)
        {
            base.Start(initializeUserRepository);
            // 1. Create a new Simple Injector container
            var container = RepositoryResolver.GetContainer();

            // 2. Configure the container (register)
            // See below for more configuration examples
            container.Register <ITransactionRepository, EFTransactionRepository>(UseLifestyle);
            container.Register <IRelationRepository, EFRelationRepository>(UseLifestyle);
            container.Register <ICategoryRepository, EFCategoryRepository>(UseLifestyle);
            container.Register <IMainCategoryRepository, EFMainCategoryRepository>(UseLifestyle);
        }
 public StatisticsViewmodel(MainViewmodel mainViewmodel, IStatisticsView statisticsView)
 {
     _mainViewmodel        = mainViewmodel;
     this._statisticsView  = statisticsView;
     CurrentExecutingTasks = new ObservableCollection <TaskExecutorWrapper>();
     _repository           = RepositoryResolver.GetRepository <ICategoriesStatisticsRepository>();
     FromDate = DateTime.Now.AddMonths(-1);
     ToDate   = DateTime.Now;
     RemoveActionIfFaultedCommand = new RelayCommand(RemoveActionIfFaulted);
     RefreshCommand = new RelayCommand(Refresh);
     Refresh(null);
     EditTransactionCommand = new RelayCommand(async(obj) => await EditTransactionAsync((Transaction)obj));
 }
 public TransActionsViewmodel(MainViewmodel mainViewmodel)
     : base(RepositoryResolver.GetRepository <ITransactionRepository>())
 {
     _mainViewmodel      = mainViewmodel;
     _relationRepository = RepositoryResolver.GetRepository <IRelationRepository>();
     _categoryRepository = RepositoryResolver.GetRepository <ICategoryRepository>();
     FromDate            = DateTime.Now.AddMonths(-1);
     ToDate = DateTime.Now;
     LoadRelations();
     LoadCategories();
     AddCategoryToTransactionCommand = new RelayCommand(AddCategoryToTransaction, CanAddCategoryToTransaction);
     ImportCommand = new RelayCommand(async(obj) => await ImportTransactionsAsync());
 }
Exemple #29
0
        public virtual void TearDown()
        {
            if (ApplicationContext != null)
            {
                if (DatabaseContext != null && DatabaseContext.Database != null)
                {
                    DatabaseContext.Database.Dispose();
                }
                //reset the app context
                ApplicationContext.ApplicationCache.ClearAllCache();
            }

            SqlSyntaxContext.SqlSyntaxProvider = null;

            //legacy API database connection close - because a unit test using PetaPoco db-layer can trigger the usage of SqlHelper we need to ensure that a possible connection is closed.
            SqlCeContextGuardian.CloseBackgroundConnection();

            ApplicationContext.Current = null;
            Resolution.IsFrozen        = false;
            RepositoryResolver.Reset();
            SqlSyntaxProvidersResolver.Reset();

            TestHelper.CleanContentDirectories();

            string path = TestHelper.CurrentAssemblyDirectory;

            AppDomain.CurrentDomain.SetData("DataDirectory", null);

            SettingsForTests.Reset();
            UmbracoSettings.ResetSetters();

            try
            {
                string filePath = string.Concat(path, "\\UmbracoPetaPocoTests.sdf");
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error <BaseDatabaseFactoryTest>("Could not remove the old database file", ex);

                //We will swallow this exception! That's because a sub class might require further teardown logic.
            }
        }
Exemple #30
0
 public SelectFilePageViewmodel(ImportWizardViewmodel wizardViewmodel) : base(wizardViewmodel)
 {
     Content = new SelectFilePage()
     {
         DataContext = this
     };
     OpenFileCommand    = new RelayCommand(OpenFile);
     StartImportCommand = new RelayCommand(StartImport, CanStartImport);
     Banks = new List <Bank>();
     Banks.Add(ING);
     Banks.Add(ASN);
     CustomBank.DescriptionControl.DataContext = CustomBank;
     Banks.Add(CustomBank);
     _ingRepository          = RepositoryResolver.GetRepository <IINGRepository>();
     _asnRepository          = RepositoryResolver.GetRepository <IASNRepository>();
     _customImportRepository = RepositoryResolver.GetRepository <ICustomImportRepository>();
 }