public ItemOnSaleTests() { fixture = new Fixture().Customize(new AutoMoqCustomization { ConfigureMembers = true }); repo = new CurrencyTypeRepository(); }
public UnitOfWork(ApplicationDbContext context) { _context = context; FuelInvoices = new FuelInvoiceRepository(context); InvoiceTypes = new InvoiceTypeRepository(context); FuelTypes = new FuelTypeRepository(context); CurrencyTypes = new CurrencyTypeRepository(context); GasStations = new GasStationRepository(context); }
public void Selector_GetsTheMaybeItemWhenRequested() { CurrencyTypeRepository repo = new CurrencyTypeRepository(); var value1 = new Money(98.003m, repo.Get("USD")); var m = new Maybe <Money>(value1); var selected = m.Select(x => x); Assert.Equal(m, selected); }
public void Selector_GetsTheMaybeOfBoolWhenQueried() { CurrencyTypeRepository repo = new CurrencyTypeRepository(); var value1 = new Money(98.003m, repo.Get("USD")); var m = new Maybe <Money>(value1); var selected = m.Select(x => x.Amount >= 98m); var result = selected.GetValueOrFallback(false); Assert.True(result); }
public void AddCurrencyTest() { CurrencyTypeRepository.Register("QQQ", true, "QCurrency", "q"); var m1 = new Money(2.5m, "QQQ"); var m2 = new Money(2.5m, "QQQ"); Assert.Equal(new Money(5m, "QQQ"), m1 + m2); var cur1 = Currency.Get("QQQ"); var cur2 = Currency.Get("USD"); Assert.NotEqual(cur1, cur2); }
public void Equals_WhenComparedWithAnotherMaybe_ThenReturnsFalseWhenDifferent() { const int value = 14; var m1 = new Maybe <int>(value); var m2 = new Maybe <int>(value + 1); Assert.False(m1.Equals(m2)); var m3 = new Maybe <string>("hola"); var m4 = new Maybe <string>("chau"); Assert.False(m3.Equals(m4)); CurrencyTypeRepository repo = new CurrencyTypeRepository(); var value1 = new Money(98.003m, repo.Get("USD")); var value2 = new Money(98.002m, repo.Get("USD")); var m5 = new Maybe <Money>(value1); var m6 = new Maybe <Money>(value2); Assert.False(m5.Equals(m6)); }
public void Equals_WhenComparedWithAnotherMaybe_ThenReturnsTrueWhenSame() { const int value = 14; var m1 = new Maybe <int>(value); var m2 = new Maybe <int>(value); Assert.True(m1.Equals(m2)); const string value2 = "hola"; var m3 = new Maybe <string>(value2); var m4 = new Maybe <string>(value2); Assert.True(m3.Equals(m4)); CurrencyTypeRepository repo = new CurrencyTypeRepository(); var value3 = new Money(98.003m, repo.Get("USD")); var m5 = new Maybe <Money>(value3); var m6 = new Maybe <Money>(value3); Assert.True(m5.Equals(m6)); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_appDbConnectionFactory); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {new BasicAuthProvider(), new CredentialsAuthProvider(),}) {HtmlRedirect = null}); //No use a custom one //Plugins.Add(new RegistrationFeature()); var userRepo = new OrmLiteAuthRepository(_authDbConnectionFactory); container.Register<IUserAuthRepository>(userRepo); //wire-up a validator for the UserRegistrationService var userRegistrationValidator = new UserRegistrationRequestValidator {UserAuthRepo = userRepo}; container.Register<IValidator<UserRegistrationRequest>>(userRegistrationValidator); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _appDbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic {Repository = transactionRepository}; container.Register<IRest<CurrencyType, GetCurrencyTypes>>(currencyTypeLogic); container.Register<IRest<TransactionType, GetTransactionTypes>>(transactionTypeLogic); container.Register<IRest<TransactionStatusType, GetTransactionStatusTypes>>(transactionStatusTypeLogic); container.Register<IRest<TransactionNotificationStatusType, GetTransactionNotificationStatusTypes>>(transactionNotificationStatusTypeLogic); container.Register<IRest<Transaction, GetTransactions>>(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); }
public MoneyTests() { repo = new CurrencyTypeRepository(); }
public StorageTests() { storage = new Storage(); storage.LoadAllProducts(); repo = new CurrencyTypeRepository(); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_appDbConnectionFactory); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), new CredentialsAuthProvider(), }) { HtmlRedirect = null }); //No use a custom one //Plugins.Add(new RegistrationFeature()); var userRepo = new OrmLiteAuthRepository(_authDbConnectionFactory); container.Register <IUserAuthRepository>(userRepo); //wire-up a validator for the UserRegistrationService var userRegistrationValidator = new UserRegistrationRequestValidator { UserAuthRepo = userRepo }; container.Register <IValidator <UserRegistrationRequest> >(userRegistrationValidator); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _appDbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic { Repository = transactionRepository }; container.Register <IRest <CurrencyType, GetCurrencyTypes> >(currencyTypeLogic); container.Register <IRest <TransactionType, GetTransactionTypes> >(transactionTypeLogic); container.Register <IRest <TransactionStatusType, GetTransactionStatusTypes> >(transactionStatusTypeLogic); container.Register <IRest <TransactionNotificationStatusType, GetTransactionNotificationStatusTypes> >(transactionNotificationStatusTypeLogic); container.Register <IRest <Transaction, GetTransactions> >(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_dbConnectionFactory); var basicAuthProvider = new BasicAuthProvider(); container.Register(basicAuthProvider); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { basicAuthProvider, }, SystemConstants.LoginUrl)); var userRepo = new OrmLiteAuthRepository(_dbConnectionFactory); container.Register <IAuthRepository>(userRepo); var cacheClient = new MemoryCacheClient(); container.Register(cacheClient); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _dbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic { Repository = transactionRepository }; container.Register <IRest <CurrencyType, GetCurrencyTypes> >(currencyTypeLogic); container.Register <IRest <TransactionType, GetTransactionTypes> >(transactionTypeLogic); container.Register <IRest <TransactionStatusType, GetTransactionStatusTypes> >(transactionStatusTypeLogic); container.Register <IRest <TransactionNotificationStatusType, GetTransactionNotificationStatusTypes> >(transactionNotificationStatusTypeLogic); container.Register <IRest <Transaction, GetTransactions> >(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); var redisLocation = ConfigurationManager.AppSettings["ReddisService"]; Container.Register <IRedisClientsManager>(new PooledRedisClientManager(redisLocation)); var mqService = new RedisMqServer(container.Resolve <IRedisClientsManager>()); var messagingHandlers = new MessageService { Log = new Logger(typeof(MessageService).Name) }; Func <IMessage, IMessage> filterSecureRequests = (message) => { /* * var tag = message.Tag; * * if (string.IsNullOrWhiteSpace(tag)) * return message; * * if (tag.StartsWith("basic ", StringComparison.InvariantCultureIgnoreCase)) * { * var creds = Encoding.UTF8.GetString(Convert.FromBase64String(tag.Substring(5))); * * var i = creds.IndexOf(':'); * var userName = creds.Substring(0, i); * var userPass = creds.Substring(i + 1); * * * if (userName != SystemConstants.AllowedUser || userPass != SystemConstants.AllowedPass) * { * message.Tag = null; * return message; * } * * _currentSessionGuid = Guid.NewGuid(); * var sessionKey = userName + "/" + _currentSessionGuid.ToString("N"); * * SessionContext = new SessionContext { SessionKey = sessionKey, Username = userName }; * container.Register(SessionContext); * message.Tag = sessionKey; * return message; * } * * message.Tag = null;*/ return(message); }; mqService.RequestFilter = filterSecureRequests; Func <IMessage <Transaction>, PostResponse <Transaction> > handlePostTransactions = (message) => { var service = new TransactionWebService { Logic = transactionLogic }; var request = new BasicRequest { Message = message, Dto = message.GetBody() }; var response = new BasicResponse(request); //userRepo.TryAuthenticate() service.SessionFactory.GetOrCreateSession(request, response); var session = service.GetSession(); session.UserName = "******"; var results = new PostResponse <Transaction> { Result = (Transaction)service.Post(message.GetBody()) }; return(results); }; // Dto Get Operations mqService.RegisterHandler <GetCurrencyTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler <GetTransactions>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler <GetTransactionStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler <GetTransactionNotificationStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler <GetTransactionTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionTypeLogic)); // Dto Post Operations mqService.RegisterHandler <CurrencyType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), currencyTypeLogic.Post)); mqService.RegisterHandler <Transaction>(handlePostTransactions); mqService.RegisterHandler <TransactionStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionStatusTypeLogic.Post)); mqService.RegisterHandler <TransactionNotificationStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionNotificationStatusTypeLogic.Post)); mqService.RegisterHandler <TransactionType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionTypeLogic.Post)); // Dto Put Opertations mqService.RegisterHandler <DeleteCurrencyType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler <DeleteTransaction>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler <DeleteTransactionStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler <DeleteTransactionNotificationStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler <DeleteTransactionType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionTypeLogic)); mqService.Start(); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_dbConnectionFactory); var basicAuthProvider = new BasicAuthProvider(); container.Register(basicAuthProvider); Plugins.Add(new AuthFeature( () => new AuthUserSession(), new IAuthProvider[] {basicAuthProvider, }, SystemConstants.LoginUrl )); var userRepo = new OrmLiteAuthRepository(_dbConnectionFactory); container.Register<IAuthRepository>(userRepo); var cacheClient = new MemoryCacheClient(); container.Register(cacheClient); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _dbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic {Repository = transactionRepository}; container.Register<IRest<CurrencyType, GetCurrencyTypes>>(currencyTypeLogic); container.Register<IRest<TransactionType, GetTransactionTypes>>(transactionTypeLogic); container.Register<IRest<TransactionStatusType, GetTransactionStatusTypes>>(transactionStatusTypeLogic); container.Register<IRest<TransactionNotificationStatusType, GetTransactionNotificationStatusTypes>>(transactionNotificationStatusTypeLogic); container.Register<IRest<Transaction, GetTransactions>>(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); var redisLocation = ConfigurationManager.AppSettings["ReddisService"]; Container.Register<IRedisClientsManager>(new PooledRedisClientManager(redisLocation)); var mqService = new RedisMqServer(container.Resolve<IRedisClientsManager>()); var messagingHandlers = new MessageService { Log = new Logger(typeof(MessageService).Name) }; Func<IMessage, IMessage> filterSecureRequests = (message) => { /* var tag = message.Tag; if (string.IsNullOrWhiteSpace(tag)) return message; if (tag.StartsWith("basic ", StringComparison.InvariantCultureIgnoreCase)) { var creds = Encoding.UTF8.GetString(Convert.FromBase64String(tag.Substring(5))); var i = creds.IndexOf(':'); var userName = creds.Substring(0, i); var userPass = creds.Substring(i + 1); if (userName != SystemConstants.AllowedUser || userPass != SystemConstants.AllowedPass) { message.Tag = null; return message; } _currentSessionGuid = Guid.NewGuid(); var sessionKey = userName + "/" + _currentSessionGuid.ToString("N"); SessionContext = new SessionContext { SessionKey = sessionKey, Username = userName }; container.Register(SessionContext); message.Tag = sessionKey; return message; } message.Tag = null;*/ return message; }; mqService.RequestFilter = filterSecureRequests; Func<IMessage<Transaction>, PostResponse<Transaction>> handlePostTransactions = (message) => { var service = new TransactionWebService { Logic = transactionLogic }; var request = new BasicRequest {Message = message, Dto = message.GetBody()}; var response = new BasicResponse(request); //userRepo.TryAuthenticate() service.SessionFactory.GetOrCreateSession(request, response); var session = service.GetSession(); session.UserName = "******"; var results = new PostResponse<Transaction> {Result = (Transaction) service.Post(message.GetBody())}; return results; }; // Dto Get Operations mqService.RegisterHandler<GetCurrencyTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler<GetTransactions>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler<GetTransactionStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler<GetTransactionNotificationStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler<GetTransactionTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionTypeLogic)); // Dto Post Operations mqService.RegisterHandler<CurrencyType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), currencyTypeLogic.Post)); mqService.RegisterHandler<Transaction>(handlePostTransactions); mqService.RegisterHandler<TransactionStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionStatusTypeLogic.Post)); mqService.RegisterHandler<TransactionNotificationStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionNotificationStatusTypeLogic.Post)); mqService.RegisterHandler<TransactionType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionTypeLogic.Post)); // Dto Put Opertations mqService.RegisterHandler<DeleteCurrencyType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler<DeleteTransaction>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler<DeleteTransactionStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler<DeleteTransactionNotificationStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler<DeleteTransactionType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionTypeLogic)); mqService.Start(); }