Beispiel #1
0
        public async Task Can_parseAllProductUrlsInsideCompanyPageAsync_productData()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var logger = Mock.Of <ILogger <ProductController> >();

            Seed();

            var productServiceMock = new Mock <IProductService>();

            productServiceMock.Setup(service => service.InsertProductPageIntoDb("Url1"))
            .ReturnsAsync(() => context.Products.FirstOrDefault(p => p.Url == "Url1"));
            productServiceMock.Setup(service => service.InsertProductPageIntoDb("Url2"))
            .ReturnsAsync(() => context.Products.FirstOrDefault(p => p.Url == "Url2"));
            productServiceMock.Setup(service => service.InsertProductPageIntoDb("Url3"))
            .ReturnsAsync(() => context.Products.FirstOrDefault(p => p.Url == "Url3"));

            var controller = new ProductController(context, null, productServiceMock.Object, logger);

            //Act
            var result = await controller.ParseAllProductUrlsInsideCompanyPageAsync("One");

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as ProductData[];

            Assert.NotNull(okResultValue);

            Assert.Equal("One", okResultValue[0].Title);
            Assert.Equal(1, okResultValue[0].Id);
        }
        public async Task Can_insertProductPageIntoDbViaUrl_productData()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            Seed();
            var browsingContextServiceMock = new Mock <IBrowsingContextService>();

            browsingContextServiceMock.Setup(service =>
                                             service.OpenPageAsync("https://prom.ua/p1367019485-rozumni-smart-godinnik.html?"))
            .ReturnsAsync(await MockOpenPageAsync());

            var controller    = new ProductService(context, browsingContextServiceMock.Object);
            var targetProduct = context.Products.FirstOrDefault();

            if (targetProduct != null)
            {
                targetProduct.Url = @"https://prom.ua/p1367019485-rozumni-smart-godinnik.html?";
            }
            await context.SaveChangesAsync();

            //Act
            var result = await controller.InsertProductPageIntoDb(targetProduct?.Url);

            //Assert
            Assert.NotNull(result);

            Assert.Equal("Розумні смарт годинник Smart watch DM08", result.Title);
        }
        public string Get(string origin, string destination)
        {
            var originRow      = ApplicationDb.RunQueryAndReturnFirstRow($"Select * from airports.csv where [IATA 3] = \"{origin}\"");
            var destinationRow = ApplicationDb.RunQueryAndReturnFirstRow($"Select * from airports.csv where [IATA 3] = \"{destination}\"");

            if (originRow == null)
            {
                return("Invalid Origin");
            }

            if (destinationRow == null)
            {
                return("Invalid Destination");
            }

            var    logic = new Logic();
            string path  = logic.GetShortestPath(origin, destination);

            if (string.IsNullOrEmpty(path))
            {
                return("No Route");
            }
            else
            {
                return(path);
            }
        }
 public HomeController(ApplicationDb _db)
 {
     this.db      = _db;
     uRepository  = new UserRepository(db);
     rRepository  = new RoleRepository(db);
     urRepository = new UserRoleRepository(db);
 }
Beispiel #5
0
 public AccountController(ApplicationDb db, UserManager <ApplicationUser> manager, SignInManager <ApplicationUser> signInManager, RoleManager <ApplicationRole> roleManager)
 {
     _db            = db;
     _manager       = manager;
     _signInManager = signInManager;
     _roleManager   = roleManager;
 }
 public SysSignalROnline GetById(Guid id)
 {
     using (var db = new ApplicationDb())
     {
         return(db.SysSignalROnlines.Find(id));
     }
 }
Beispiel #7
0
 /// <summary>
 /// get a list of activities which don't have a TSS value but which do have a power meter so we can calculate TSS/IF
 /// </summary>
 private void GetActivities()
 {
     using (ApplicationDb db = new ApplicationDb())
     {
         _activity = db.Activity.Where(a => a.TSS == null && a.HasPowerMeter).Select(a => a.Id).ToList();
     }
 }
        public async Task Can_addByUrlAsync_responseCompany()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var browsingContextServiceMock = new Mock <IBrowsingContextService>();
            var logger = Mock.Of <ILogger <CompanyController> >();
            var backgroundTaskQueueMock = new BackgroundCompaniesQueue(10);

            browsingContextServiceMock
            .Setup(service => service.OpenPageAsync("https://prom.ua/c3502019-toppoint-tvoj-internet.html"))
            .ReturnsAsync(await MockOpenPageAsync());

            var controller = new CompanyController(context, null, new BrowsingContextService(), logger,
                                                   backgroundTaskQueueMock, null);

            //Act
            var result = await controller.AddByUrlAsync("https://prom.ua/c3502019-toppoint-tvoj-internet.html");

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as ResponseCompany;

            Assert.NotNull(okResultValue);

            Assert.Equal("3502019", okResultValue.ExternalId);
        }
Beispiel #9
0
        public async Task Can_getPagedProductsByCategoryIdAsync_responseProductList()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var logger = Mock.Of <ILogger <ProductController> >();

            Seed();

            var controller = new ProductController(context, null, null, logger);

            //Act
            var result = await controller.GetPagedProductsByCategoryIdAsync(1, 0, 1);

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as IEnumerable <ResponseProduct>;

            Assert.NotNull(okResultValue);

            var responseProducts = okResultValue as ResponseProduct[] ?? okResultValue.ToArray();

            Assert.Single(responseProducts);
            Assert.Equal("One", responseProducts.First().Title);
        }
Beispiel #10
0
        public async Task Can_getPaged_categories()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var logger = Mock.Of <ILogger <CategoryController> >();

            Seed();

            var controller = new CategoryController(logger, null, null);

            //Act
            var result = await controller.GetPagedAsync(1, 1);

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as IEnumerable <ResponseCategory>;

            Assert.NotNull(okResultValue);

            var responseCategories = okResultValue as ResponseCategory[] ?? okResultValue.ToArray();

            Assert.Single(responseCategories);
            Assert.Equal("Two", responseCategories[0].Name);
        }
Beispiel #11
0
        public async Task Can_getAllNested_categories()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var logger = Mock.Of <ILogger <CategoryController> >();

            Seed();

            var controller = new CategoryController(logger, null, null);

            //Act
            var result = await controller.GetAllNestedAsync();

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as ResponseNestedCategory;

            Assert.NotNull(okResultValue);

            var responseCategories = okResultValue;

            Assert.Equal("One", responseCategories.Name);
            Assert.Single(responseCategories.SubCategories);
        }
Beispiel #12
0
 public IEnumerable <Patient> Get()
 {
     using (var db = new ApplicationDb())
     {
         return(db.Patients.Include("Ailments").Include("Medications").ToList());
     }
 }
Beispiel #13
0
        public ApplicationDb Get()
        {
            _dataContext = _dataContext ?? (_dataContext = new ApplicationDb());
            //_dataContext.Database.Log = log => Trace.Write(log);

            return _dataContext;
        }
Beispiel #14
0
        public ApplicationDb Get()
        {
            _dataContext = _dataContext ?? (_dataContext = new ApplicationDb());
            _dataContext.Database.Log = log => Trace.Write(log);

            return(_dataContext);
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var db    = new ApplicationDb();
                    var login = new UserAcount {
                        Name = model.Name, Email = model.Email, Age = model.Age, Phone = model.Phone, ApplicationUserId = user.Id
                    };
                    db.UserAcounts.Add(login);
                    db.SaveChanges();

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
 public SysSignalROnline GetById(Guid id)
 {
     using (var db = new ApplicationDb())
     {
         return db.SysSignalROnlines.Find(id);
     }
 }
        public void SaveTransaction(TransactionData transactionData, ApplicationDb context, int ownerID)
        {
            TransactionDescription transDesc = new TransactionDescription();

            transDesc.Type        = transactionData.Type;
            transDesc.Description = transactionData.Description;
            transDesc.Date        = DateTime.Now;
            transDesc.ownerID     = ownerID;

            context.Add(transDesc);
            context.SaveChanges();

            var id = transDesc.ID;

            foreach (ProductsViewModel product in transactionData.Products)
            {
                Transaction trans = new Transaction();

                trans.TransactionDescriptionID = id;
                trans.ProductID      = product.ID;
                trans.UnitNetPrice   = product.NetPrice;
                trans.UnitGrossPrice = product.GrossPrice;
                trans.ProductUnits   = product.Units;
                trans.GrossPrice     = product.GrossPrice * product.Units;
                trans.NetPrice       = product.NetPrice * product.Units;

                context.Add(trans);
                context.SaveChanges();
            }

            UpdateProductUnits(transactionData, context);
        }
Beispiel #18
0
 public AdminRepo(ApplicationDb db, UserManager <ApplicationUser> userManager,
                  RoleManager <ApplicationRole> roleManager)
 {
     _db          = db;
     _userManager = userManager;
     _roleManager = roleManager;
 }
Beispiel #19
0
        private Athlete CreateAthlete(ApplicationDb context, Athlete athlete)
        {
            context.Athletes.Add(athlete);
            context.SaveChanges();

            return(athlete);
        }
        public async Task Can_getAll_responseCompanyList()
        {
            //Arrange
            await using var context = new ApplicationDb(ContextOptions);
            var logger = Mock.Of <ILogger <CompanyController> >();

            var controller = new CompanyController(context, null, null, logger, null, null);

            //Act
            var result = await controller.GetAllAsync();

            var okResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(okResult);
            Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

            var okResultValue = okResult.Value as IEnumerable <ResponseCompany>;

            Assert.NotNull(okResultValue);


            var responseCompanies = okResultValue as ResponseCompany[] ?? okResultValue.ToArray();

            Assert.Single(responseCompanies);
            Assert.Equal("One", responseCompanies.First().Name);
        }
Beispiel #21
0
        private void SetupContainer()
        {
            AutoMapperConfig.RegisterMappings();
            var container = new Container();

            container.RegisterSingle(() => new ApplicationDb());
            container.RegisterSingle <IUserStore <ApplicationUser>, ApplicationUserStore>();
            container.RegisterSingle <UserManager <ApplicationUser> >();

            //Register all of our Command and Query handlers in the application
            IEnumerable <Type> commandHandlerTypes =
                typeof(CreateNewTeamCommandHandler).Assembly.GetTypes()
                .Where(x => typeof(ICommandHandler).IsAssignableFrom(x));
            IEnumerable <Type> queryHandlerTypes =
                typeof(GetAllTeamsQueryHandler).Assembly.GetTypes()
                .Where(x => typeof(IQueryHandler).IsAssignableFrom(x));

            container.RegisterAll <ICommandHandler>(commandHandlerTypes);
            container.RegisterAll <IQueryHandler>(queryHandlerTypes);

            //Register the command and query dispatcher
            container.Register <ICommandAndQueryDispatcher, CommandAndQueryDispatcher>();

            container.Verify();

            dispatcher             = container.GetInstance <ICommandAndQueryDispatcher>();
            db                     = container.GetInstance <ApplicationDb>();
            userManager            = container.GetInstance <UserManager <ApplicationUser> >();
            context.TeamController = new TeamController(dispatcher);
            context.HomeController = new HomeController(dispatcher);
            context.Dispatcher     = dispatcher;
            context.UserManager    = userManager;
            context.Db             = db;
        }
Beispiel #22
0
 public AdminRepo(ApplicationDb db, UserManager <ApplicationUser> userManager, RoleManager <ApplicationRole> roleManager, IHostingEnvironment host)
 {
     _db          = db;
     _userManager = userManager;
     _roleManager = roleManager;
     _host        = host;
 }
        public AuthController(IConfiguration configuration, ApplicationDb db)
        {
            _configuration = configuration;
            var d = User;

            _db = db;
        }
Beispiel #24
0
        public IActionResult DeleteCategory(int key)
        {
            Category category = GetCategories().FirstOrDefault(x => x.CategoryId == key);

            ApplicationDb.Categories.Remove(category);
            ApplicationDb.SaveChanges();
            return(Ok());
        }
 public void Add(SysSignalROnline item)
 {
     using (var db = new ApplicationDb())
     {
         db.SysSignalROnlines.Add(item);
         db.SaveChanges();
     }
 }
Beispiel #26
0
 public void Add(SysLog item)
 {
     using (var db = new ApplicationDb())
     {
         db.SysLogs.Add(item);
         db.SaveChangesAsync().Wait();
     }
 }
Beispiel #27
0
        public IActionResult DeleteRecurringTransfer(int key)
        {
            RecurringTransfer recurringTransfer = GetRecurringTransfers().FirstOrDefault(x => x.RecurringTransferId == key);

            ApplicationDb.RecurringTransfers.Remove(recurringTransfer);
            ApplicationDb.SaveChanges();
            return(Ok());
        }
Beispiel #28
0
 public void Add(SysLog item)
 {
     using (var db = new ApplicationDb())
     {
         db.SysLogs.Add(item);
         db.SaveChangesAsync().Wait();
     }
 }
Beispiel #29
0
 public void Add(SysSignalR item)
 {
     using (var db = new ApplicationDb())
     {
         db.SysSignalRs.Add(item);
         db.SaveChanges();
     }
 }
Beispiel #30
0
 private void CreateActivities(ApplicationDb context, List <Activity> activities)
 {
     foreach (var activity in activities)
     {
         context.Activities.Add(activity);
     }
     context.SaveChanges();
 }
Beispiel #31
0
        public IActionResult DeleteTransfer(int key)
        {
            Transfer transfer = GetTransfers().FirstOrDefault(x => x.TransferId == key);

            ApplicationDb.Transfers.Remove(transfer);
            ApplicationDb.SaveChanges();
            return(Ok());
        }
Beispiel #32
0
 public AdminController(UserManager <ApplicationUser> secMgr, SignInManager <ApplicationUser> loginManager, ApplicationDb db, IHostingEnvironment environment, IHttpContextAccessor contextAccessor)
 {
     _contextAccessor = contextAccessor;
     _environment     = environment;
     _securityManager = secMgr;
     _loginManager    = loginManager;
     _db = db;
 }
Beispiel #33
0
 public IActionResult RemoveData()
 {
     ApplicationDb.BalanceReports.RemoveRange(GetBalanceReports());
     ApplicationDb.Transfers.RemoveRange(GetTransfers());
     ApplicationDb.RecurringTransfers.RemoveRange(GetRecurringTransfers());
     ApplicationDb.Categories.RemoveRange(GetCategories());
     ApplicationDb.SaveChanges();
     return(Ok());
 }
        private async Task BackgroundProcessing(CancellationToken stoppingToken, IProductService productService,
                                                ApplicationDb context)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                var dequeuedProduct = await TaskQueue.DequeueAsync(stoppingToken);

                await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);

                try
                {
                    while (dequeuedProduct != null)
                    {
                        if (context.Products.Count(p => p.ProductState == ProductState.Idle) == 0)
                        {
                            continue;
                        }
                        if (context.Companies.Count(s =>
                                                    s.CompanyState == CompanyState.Processing || s.CompanyState == CompanyState.Idle) != 0)
                        {
                            continue;
                        }


                        if (dequeuedProduct == null)
                        {
                            _logger.LogError("Something went wrong with background product parser");
                            throw new NullReferenceException();
                        }

                        try
                        {
                            await productService.InsertProductPageIntoDb(dequeuedProduct);
                        }
                        catch (TooManyRequestsException)
                        {
                            dequeuedProduct.ProductState = ProductState.Failed;
                            _logger.LogError(
                                $"Product with id \"{dequeuedProduct.Id}\" couldn't be updated. Blocked by service provider.");
                        }

                        await _productsHub.Clients.All.ReceiveMessage(
                            $"Product with name id: {dequeuedProduct.ExternalId} was updated successfully");

                        _logger.LogInformation(
                            $"Product with name id: {dequeuedProduct.ExternalId} was updated successfully");

                        dequeuedProduct = null;
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex,
                                     "Error occurred in BackgroundProductControllerWorker.");
                }
            }
        }
 public void Remove(Expression<Func<SysSignalROnline, bool>> where)
 {
     using (var db = new ApplicationDb())
     {
         foreach (var item in db.SysSignalROnlines.Where(where))
         {
             db.SysSignalROnlines.Remove(item);
         }
         db.SaveChanges();
     }
 }
Beispiel #36
0
 public void DeleteExpiredData()
 {
     using (var db = new ApplicationDb())
     {
         //只保留一定数量的日志,根据web.config中的设置值,默认单位:天。
         if (ConfigurationManager.AppSettings["LogValidity"] != null)
         {
             double logValidity = Convert.ToDouble(ConfigurationManager.AppSettings["LogValidity"]);
             DateTime createddatetime = DateTime.Now.AddDays(-logValidity);
             foreach (SysLog item in db.SysLogs.Where(a => a.CreatedDate < createddatetime))
             {
                 db.SysLogs.Remove(item);
             }
         }
         db.SaveChangesAsync().Wait();
     }
 }
Beispiel #37
0
 public ApplicationDb GetDbSession()
 {
     return _dataContext ?? (_dataContext = new ApplicationDb());
 }
 public IQueryable<SysSignalROnline> GetAll()
 {
     var db = new ApplicationDb();
     return db.SysSignalROnlines;
 }
Beispiel #39
0
 public IQueryable<SysLog> GetAll()
 {
     var db = new ApplicationDb();
     return db.SysLogs.OrderByDescending(a => a.CreatedDate);
 }
Beispiel #40
0
 public IQueryable<SysSignalR> GetAll(string groupId)
 {
     var db = new ApplicationDb();
     return db.SysSignalRs.Where(a => a.EnterpriseId == _IUserInfo.EnterpriseId && a.GroupId.Equals(groupId) && (a.UserId == _IUserInfo.UserId || !a.UserId1.HasValue || a.UserId1 == _IUserInfo.UserId)).OrderByDescending(a => a.CreatedDate);
 }
Beispiel #41
0
 public UnitOfWork(IDatabaseFactory databaseFactory)
 {
     _dataContext = databaseFactory.Get();
 }