/// <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 }); }
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); }
public void BeforeDelete(IDatabaseContext context, PaymentTransaction data) { var recordRepository = RepositoryResolver.Resolve <GenericRecord>(context); recordRepository.BatchDelete( r => r.Type == PaymentTransactionRepository.RecordType && r.ReleatedId == data.Id); }
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)); } } } }
/// <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 }); }
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(); }); }
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(); }); }
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") }; }
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(); }); }
/// <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()); }
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. } }
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>(); }