示例#1
0
        public TestsFixture()
        {
            genPassword = new PasswordHash();


            var options = new DbContextOptionsBuilder <BoorgerdbContext>()
                          .UseInMemoryDatabase(databaseName: "BoorgerTestingDb")
                          .Options;

            db = new BoorgerdbContext(options);

            db.Tiers.Add(new Tier {
                Value = 15, Description = "Fifteen"
            });
            db.SaveChanges();
            //appEnvironment.WebRootPath


            hostingEnvFake.Setup(m => m.WebRootPath).Returns(@"F:\CSharp\Boorger\Boorger\wwwroot");

            loggerFake.Setup(m => m.Setup(db));
            loggerFake.Setup(m => m.AddToLogAsync(It.IsAny <string>()));



            sessionMock = new ConcurrentDictionary <string, object>();
            sessionHelperMock.Setup(m => m.SetObjectAsJsonAsync(It.IsAny <string>(), It.IsAny <object>()))
            .Callback((string key, object value) => sessionMock.AddOrUpdate(key, value, (_key, oldValue) => value));
            sessionHelperMock.Setup(m => m.RemoveAsync(It.IsAny <string>())).Callback((string key) => sessionMock.TryRemove(key, out _));
            //setup of GetObjectFromJson<T> is completed through calling SetupSession(List<Type> types) with types to paste in T
        }
示例#2
0
        public AccountController(BoorgerdbContext context, [FromServices] ILogProvider _logger)
        {
            db     = context;
            logger = _logger;
            logger.Setup(db);

            maxTier = db.Tiers.Max(u => u.Value);
        }
示例#3
0
 public ProductsController(BoorgerdbContext context, IHostingEnvironment appEnvironment, [FromServices] ILogProvider logger, [FromServices] ISessionHelper sessionHelper)
 {
     db = context;
     this.appEnvironment = appEnvironment;
     this.sessionHelper  = sessionHelper;
     this.logger         = logger;
     logger.Setup(db);
 }
示例#4
0
        /// <summary>
        /// Wraper for access to basic items from selected category
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <param name="categoryId">Category is being found by this Id</param>
        /// <returns>List of items from selected category</returns>
        private List <Item> GetBasicItemList(BoorgerdbContext db, int categoryId)
        {
            var itemsIdsFromCategory = db.ItemsToCategories
                                       .Where(x => x.CategoryId == categoryId)
                                       .Select(x => x.ItemId)
                                       .ToHashSet();
            List <Item> basicItemsList = db.Items
                                         .Where(x => itemsIdsFromCategory.Contains(x.Id))
                                         .ToList();

            return(basicItemsList);
        }
示例#5
0
        /// <summary>
        /// Form display model from context and products
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <param name="basicItemsList">List of products</param>
        /// <param name="categoryId">Current category Id, <c>-1</c> if no category selected</param>
        /// <returns>Display model of selected items from selected category</returns>
        private async Task <DisplayModel> _GetDisplayModel(BoorgerdbContext db, List <Item> basicItemsList, int categoryId)
        {
            ItemModel[] items = await AgregateItemsIntoItemModel(db, basicItemsList);

            Category category = await db.Categories.SingleOrDefaultAsync(p => p.Id == categoryId);

            if (category == null)
            {
                category = new Category(-1, "Show all");
            }
            List <Category> categories = db.Categories.ToList();

            categories.Insert(0, new Category {
                Name = "Show all", Id = -1
            });

            return(new DisplayModel(items, categories, category));
        }
示例#6
0
        public async Task <bool> SetItemIfNull(BoorgerdbContext dbContext)
        {
            if (Item != null || Id == null)
            {
                return(false);
            }
            else
            {
                Item = await dbContext.Items.FindAsync(Id);

                if (Item == null)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
示例#7
0
        /// <summary>
        /// Found relations from Item to LocalItem and FoodItem - wraps it in ItemModel
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <param name="basicItemsList">List of Item's</param>
        /// <returns></returns>
        private async Task <ItemModel[]> AgregateItemsIntoItemModel(BoorgerdbContext db, List <Item> basicItemsList)
        {
            ItemModel[] items = new ItemModel[basicItemsList.Count];

            int counter = 0;

            foreach (Item basicItem in basicItemsList)
            {
                FoodItem foodItem = await db.FoodItems.FindAsync(basicItem.Id);

                LocalItem localItem = await db.LocalItems.FindAsync(basicItem.Id);

                ItemModel item = new ItemModel(basicItem, foodItem, localItem);

                items[counter] = item;

                counter++;
            }
            return(items);
        }
示例#8
0
 public AdminController(BoorgerdbContext context)
 {
     db = context;
 }
示例#9
0
 /// <summary>
 /// Setup DataBase context for log storage
 /// </summary>
 /// <param name="db">EF DataBase context</param>
 public void Setup(BoorgerdbContext db)
 {
     this.db   = db;
     userId    = Int32.Parse(httpContext.HttpContext.User.Claims.First(x => x.Type == "UserId").Value);
     adminUser = db.AdministratorUsers.FirstOrDefault(u => u.Id == userId);
 }
示例#10
0
 public CartController(BoorgerdbContext context, [FromServices] ISessionHelper sessionHelper)
 {
     db = context;
     this.sessionHelper = sessionHelper;
 }
示例#11
0
        /// <summary>
        /// Return grid display model of products in current category
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <param name="columns">Set number of columns in grid</param>
        /// /// <param name="currentCategory">Category that contains products</param>
        /// <returns>Grid display model of products in current category, preference to columns</returns>
        public async Task <GridDisplayModel> GetGridDisplayModelAsync(BoorgerdbContext db, int columns, Category currentCategory)
        {
            DisplayModel dModel = await GetDisplayModelAsync(db, currentCategory);

            return(new GridDisplayModel(dModel.items, columns, dModel.categories, dModel.currentCategory));
        }
示例#12
0
        /// <summary>
        /// Return display model of all products
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <returns>Display model of all products</returns>
        public async Task <DisplayModel> GetDisplayModelAsync(BoorgerdbContext db)
        {
            List <Item> basicItemsList = GetBasicItemList(db);

            return(await _GetDisplayModel(db, basicItemsList, -1));
        }
示例#13
0
 /// <summary>
 /// Wraper for access to all basic items
 /// </summary>
 /// <param name="db">EF DataBase context</param>
 /// <returns>List of all items</returns>
 private List <Item> GetBasicItemList(BoorgerdbContext db)
 {
     return(db.Items.ToList());
 }
示例#14
0
 public DisplayController(BoorgerdbContext context)
 {
     db = context;
 }
示例#15
0
 public AuthenticationController(BoorgerdbContext context)
 {
     db = context;
 }
示例#16
0
        /// <summary>
        /// Return display model of products in current category
        /// </summary>
        /// <param name="db">EF DataBase context</param>
        /// <param name="currentCategory">Category that contains products</param>
        /// <returns>Display model of products in current category</returns>
        public async Task <DisplayModel> GetDisplayModelAsync(BoorgerdbContext db, Category currentCategory)
        {
            List <Item> basicItemsList = GetBasicItemList(db, currentCategory.Id);

            return(await _GetDisplayModel(db, basicItemsList, currentCategory.Id));
        }
示例#17
0
 public CategoriesController(BoorgerdbContext context, [FromServices] ILogProvider _logger)
 {
     db     = context;
     logger = _logger;
     logger.Setup(db);
 }