Example #1
0
        int GetAmount(StoreOption item)
        {
            int index = MenuStore.current_selection;

            switch (item)
            {
            case StoreOption.StoreOptionPurchase: return(default_price[index]);

            case StoreOption.StoreOptionUpgrade: return((int)(Mathf.Pow(upgrade_price_multiplier, DataStorage.GunPower[index] - 1) * base_upgrade_price));

            case StoreOption.StoreOptionRefund: return((int)(Mathf.Pow(upgrade_price_multiplier, DataStorage.GunPower[index] - 2) * base_upgrade_price));

            case StoreOption.StoreOptionAddHeart: return((int)(Mathf.Pow(heart_price_multiplier, DataStorage.Hearts - 1) * base_heart_price));

            case StoreOption.StoreOptionAddHeadling: return((int)(Mathf.Pow(healing_price_multiplier, DataStorage.Healing)) * base_healing_price);

            case StoreOption.StoreOptionArmor: return((int)(Mathf.Pow(armor_price_multiplier, DataStorage.Armor) * base_armor_price));

            case StoreOption.StoreOptionRefundHeart: return((int)(Mathf.Pow(heart_price_multiplier, DataStorage.Hearts - 2) * base_heart_price));

            case StoreOption.StoreOptionRefundHealing: return((int)(Mathf.Pow(healing_price_multiplier, DataStorage.Healing - 1)) * base_healing_price);

            case StoreOption.StoreOptionRefundArmor: return((int)(Mathf.Pow(armor_price_multiplier, DataStorage.Armor - 1) * base_armor_price));
            }

            return(0);
        }
Example #2
0
        public static IServiceCollection AddDataAccess(this IServiceCollection services)
        {
            services.AddSingleton <IStore>(sp =>
            {
                var tenant = sp.GetService <IApplicationContext>().TenantContext.Tenant;

                // get tentant's store config.
                var dataConfig = ConfigContext.GetConfig <DataConfig>(tenant.Name);

                // init store configuration.
                var option = new StoreOption();

                // Disabling query gating as it's failing to improve performance right now
                option.UseDatabase(tenant.Name).UseConfig(dataConfig);

                // create schemas.
                var store = new Store(option);
                if (option.AutoCreateSchema)
                {
                    var storeCreator = sp.GetService <ISchemaCreator>();
                    if (storeCreator != null)
                    {
                        using (var session = store.OpenSession())
                        {
                            storeCreator.CreateSchema(session);
                        }
                    }
                }

                return(store);
            });

            services.AddScoped(sp =>
            {
                var store = sp.GetRequiredService <IStore>();
                return(store.OpenSession());
            });

            return(services);
        }
Example #3
0
        /// <summary>
        /// Global singleton constructor required because MS Test does not support test fixtures
        /// </summary>
        public static ModelFixture GetModelFixture()
        {
            lock (_lock)
            {
                if (_current != null)
                {
                    return(_current);
                }

                using Stream configStream = typeof(ModelFixture).GetResourceStream(_resourceId);

                IConfiguration config = new ConfigurationBuilder()
                                        .AddJsonStream(configStream)
                                        .AddUserSecrets(_secretId)
                                        .AddEnvironmentVariables("mlhostcli")
                                        .Build();

                var blobStoreOption = new StoreOption();
                config.Bind(blobStoreOption, x => x.BindNonPublicProperties = true);
                blobStoreOption.Verify();

                return(_current = new ModelFixture(new DatalakeModelStore(new DatalakeStore(blobStoreOption, new NullLogger <DatalakeStore>()))));
            }
        }
Example #4
0
        public void SetButton(int index, StoreOption item)
        {
            buttons[index].gameObject.SetActive(true);
            buttons[index].item = item;
            builder.Length      = 0;

            buttons[index].Money = GetAmount(item);

            switch (item)
            {
            case StoreOption.StoreOptionSwap:
            case StoreOption.StoreOptionEquip: { builder.Append(GText.equip); } break;

            case StoreOption.StoreOptionPurchase: { builder.AppendFormat("{0} ${1}", GText.purchase, buttons[index].Money); } break;

            case StoreOption.StoreOptionUpgrade: { builder.AppendFormat("{0} ${1}", GText.upgrade, buttons[index].Money); } break;

            case StoreOption.StoreOptionRefund: { builder.AppendFormat("{0} ${1}", GText.refund, buttons[index].Money); } break;

            case StoreOption.StoreOptionAddHeart: { builder.AppendFormat("{0} ${1}", GText.add_heart, buttons[index].Money); } break;

            case StoreOption.StoreOptionAddHeadling: { builder.AppendFormat("{0} ${1}", GText.add_healing, buttons[index].Money); } break;

            case StoreOption.StoreOptionArmor: { builder.AppendFormat("{0} ${1}", GText.add_armor, buttons[index].Money); } break;

            case StoreOption.StoreOptionRefundHeart: { builder.AppendFormat("{0} ${1}", GText.refund_heart, buttons[index].Money); } break;

            case StoreOption.StoreOptionRefundHealing: { builder.AppendFormat("{0} ${1}", GText.refund_healing, buttons[index].Money); } break;

            case StoreOption.StoreOptionRefundArmor: { builder.AppendFormat("{0} ${1}", GText.refund_armor, buttons[index].Money); } break;

            case StoreOption.StoreOptionSlot: { builder.AppendFormat("{0} {1}", GText.slot, index + 1); } break;
            }

            buttons[index].Text = builder.ToString();
        }
Example #5
0
        public void SelectOption(OptionButton button)
        {
            switch (button.item)
            {
            case StoreOption.StoreOptionEquip:
            case StoreOption.StoreOptionSwap:
            case StoreOption.StoreOptionPurchase:
            case StoreOption.StoreOptionUpgrade:
            case StoreOption.StoreOptionAddHeart:
            case StoreOption.StoreOptionAddHeadling:
            case StoreOption.StoreOptionArmor: { Necrosoft.Choom.PlayEffect(SoundAssets.UISelect); } break;

            case StoreOption.StoreOptionRefund:
            case StoreOption.StoreOptionRefundHeart:
            case StoreOption.StoreOptionRefundHealing:
            case StoreOption.StoreOptionRefundArmor: { Necrosoft.Choom.PlayEffect(SoundAssets.UIConfirm); } break;
            }

            switch (button.item)
            {
            case StoreOption.StoreOptionPurchase:
            case StoreOption.StoreOptionUpgrade:
            case StoreOption.StoreOptionAddHeart:
            case StoreOption.StoreOptionArmor:
            case StoreOption.StoreOptionAddHeadling: {
                if (button.Money > DataStorage.Money)
                {
                    if (moneyBoardMoving)
                    {
                        return;
                    }
                    moneyBoardMoving = true;
                    LeanTween.moveY(moneyBoard, 50f, 0.5f)
                    .setLoopPingPong(1).setEase(LeanTweenType.easeInOutQuad)
                    .setOnComplete(() => { moneyBoardMoving = false; });
                    moneyBoardMoving = true;
                    LeanTween.value(moneyText.gameObject, moneyText.color, Color.red, 0.2f)
                    .setOnUpdate((Color col) => { moneyText.color = col; })
                    .setLoopPingPong(2).setEase(LeanTweenType.easeInOutQuad);
                    return;
                }
            } break;
            }

            GameObject  selectedButton = button.gameObject;
            StoreOption buttonOption   = button.item;

            switch (buttonOption)
            {
            case StoreOption.StoreOptionEquip: {
                optionsBoard.SetButton(0, StoreOption.StoreOptionSlot);
                optionsBoard.SetButton(1, StoreOption.StoreOptionSlot);
                optionsBoard.SetButton(2, StoreOption.StoreOptionSlot);
            } break;

            case StoreOption.StoreOptionSlot:
            case StoreOption.StoreOptionSwap: {
                menu.ignore_input = true;
                CloseItemOptions();

                int equip_index = button.index;
                int item_index  = (int)currentItem;
                if (buttonOption == StoreOption.StoreOptionSwap)
                {
                    int swap_index = item_index >= DataStorage.NumberOfGuns / 2 ?
                                     item_index - DataStorage.NumberOfGuns / 2 :
                                     item_index + DataStorage.NumberOfGuns / 2;
                    for (int n = 0; n < equipIndex.Length; ++n)
                    {
                        if (equipIndex[n] != swap_index)
                        {
                            continue;
                        }
                        equipIndex[n] = item_index;
                        equip_index   = n;
                        break;
                    }
                }
                else
                {
                    equipIndex[equip_index] = item_index;
                }

                StartCoroutine(IconToEquip(item_index,
                                           buttonImages[item_index].transform.GetXY(),
                                           equips[equip_index].transform.GetXY()));
            } break;

            case StoreOption.StoreOptionPurchase: {
                DataStorage.GunOwned[(int)currentItem] = true;
                DataStorage.Money -= button.Money;
                SetItemStatus();
                CloseItemOptions();
            } break;

            case StoreOption.StoreOptionUpgrade: {
                DataStorage.GunPower[(int)currentItem]++;
                DataStorage.Money -= button.Money;
                Tracker.ShopItemUpgrade(GText.item_title[(int)currentItem], DataStorage.GunPower[(int)currentItem]);
            } break;

            case StoreOption.StoreOptionRefund: {
                DataStorage.GunPower[(int)currentItem]--;
                if (DataStorage.GunPower[(int)currentItem] == 1)
                {
                    selectedButton = optionsBoard.Button();
                }
                DataStorage.Money += button.Money;
                Tracker.ShopItemDowngrade(GText.item_title[(int)currentItem], DataStorage.GunPower[(int)currentItem]);
            } break;

            case StoreOption.StoreOptionAddHeart: {
                DataStorage.Hearts++;
                DataStorage.Money -= button.Money;
                SetItemStatus();
            } break;

            case StoreOption.StoreOptionAddHeadling: {
                DataStorage.Healing++;
                DataStorage.Money -= button.Money;
            } break;

            case StoreOption.StoreOptionArmor: {
                DataStorage.Armor++;
                DataStorage.Money -= button.Money;
            } break;

            case StoreOption.StoreOptionRefundHeart: {
                DataStorage.Hearts--;
                if (DataStorage.Hearts == 5)
                {
                    selectedButton = optionsBoard.Button(optionsBoard.ButtonIndex(selectedButton) + 1);
                }
                else if (DataStorage.Hearts == 2)
                {
                    selectedButton = optionsBoard.Button();
                }
                DataStorage.Money += button.Money;
                SetItemStatus();
            } break;

            case StoreOption.StoreOptionRefundHealing: {
                DataStorage.Healing--;
                if (DataStorage.Healing == 1)
                {
                    selectedButton = optionsBoard.Button();
                }
                DataStorage.Money += button.Money;
            } break;

            case StoreOption.StoreOptionRefundArmor: {
                DataStorage.Armor--;
                if (DataStorage.Armor == 0)
                {
                    selectedButton = optionsBoard.Button();
                }
                DataStorage.Money += button.Money;
            } break;
            }

            if (optionsBoard.gameObject.activeInHierarchy &&
                buttonOption != StoreOption.StoreOptionEquip)
            {
                ShowItemButtonOptions((int)currentItem);
                menu.SetFocus(selectedButton);
            }

            SetItemInfo(currentItem);
            SetMoneyCounter();
        }
Example #6
0
        public static async Task InitializeAsync(IServiceProvider services)
        {
            var databaseDbContext = services.GetRequiredService <StoreOrderDbContext>();
            var logger            = services.GetRequiredService <ILogger <StoreOrderDbContext> >();

            // migration db
            databaseDbContext.Database.EnsureCreated();

            if (!databaseDbContext.Roles.Any())
            {
                string password = "******";
                var    hashPass = Helpers.SercurityHelper.GenerateSaltedHash(password);

                //// I will add 1 user to one Role
                //var book1 = new Book();
                //var book2 = new Book();
                var roleAdmin = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleAdmin, Desc = "Admin of Store"
                };
                var roleOrderUser = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleOrderUser, Desc = "NV Order of Store"
                };
                var roleCookieUser = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleCookieUser, Desc = "NV phụ bếp of Store"
                };
                var rolePayUser = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RolePayUser, Desc = "Nv Thanh toán of Store"
                };
                var roleCustomerUser = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleCustomerUser, Desc = "Role Account of Customer"
                };

                //// I create the User
                //var lib = new Library();
                var user1 = new User {
                    Id = Guid.NewGuid().ToString(), Age = 29, BirthDay = new DateTime(1991, 1, 1).ToUniversalTime(), CountLoginFailed = 0, FirstName = "admin", LastName = "admin", IsActived = 1, Email = "*****@*****.**", UserName = "******", HashPassword = hashPass.Hash, SaltPassword = hashPass.Salt, Gender = 1, OldPassword = hashPass.Hash + ";" + hashPass.Salt, PhoneNumber = "1234567"
                };
                var nv1 = new User {
                    Id = Guid.NewGuid().ToString(), Age = 29, BirthDay = new DateTime(1991, 1, 1).ToUniversalTime(), CountLoginFailed = 0, FirstName = "nv1", LastName = "nv1", IsActived = 1, Email = "*****@*****.**", UserName = "******", HashPassword = hashPass.Hash, SaltPassword = hashPass.Salt, Gender = 1, OldPassword = hashPass.Hash + ";" + hashPass.Salt, PhoneNumber = "1234567"
                };
                var nv2 = new User {
                    Id = Guid.NewGuid().ToString(), Age = 29, BirthDay = new DateTime(1991, 1, 1).ToUniversalTime(), CountLoginFailed = 0, FirstName = "nv2", LastName = "nv2", IsActived = 1, Email = "*****@*****.**", UserName = "******", HashPassword = hashPass.Hash, SaltPassword = hashPass.Salt, Gender = 1, OldPassword = hashPass.Hash + ";" + hashPass.Salt, PhoneNumber = "1234567"
                };
                var nv3 = new User {
                    Id = Guid.NewGuid().ToString(), Age = 29, BirthDay = new DateTime(1991, 1, 1).ToUniversalTime(), CountLoginFailed = 0, FirstName = "nv3", LastName = "nv3", IsActived = 1, Email = "*****@*****.**", UserName = "******", HashPassword = hashPass.Hash, SaltPassword = hashPass.Salt, Gender = 1, OldPassword = hashPass.Hash + ";" + hashPass.Salt, PhoneNumber = "1234567"
                };

                //// I create two UserToRole which I need them
                //// To map between the users and the role
                //var b2lib1 = new Library2Book();
                //var b2lib2 = new Library2Book();
                var userToRole1 = new UserToRole();
                var userToRole2 = new UserToRole();
                var userToRole3 = new UserToRole();
                var userToRole4 = new UserToRole();
                //// Mapping the first book to the library.
                //// Changed userToRole1.Role to userToRole2.Role
                //// Changed b2lib2.Library to b2lib1.Library
                //b2lib1.Book = book1;
                //b2lib1.Library = lib;
                userToRole1.Role = roleAdmin;
                userToRole1.User = user1;

                //// I map the second book to the library.
                //b2lib2.Book = book2;
                //b2lib2.Library = lib;
                userToRole2.Role = roleOrderUser;
                userToRole2.User = nv1;

                userToRole3.Role = roleCookieUser;
                userToRole3.User = nv2;

                userToRole4.Role = rolePayUser;
                userToRole4.User = nv3;

                //// Linking the books (Library2Book table) to the library
                //lib.Library2Books.Add(b2lib1);
                //lib.Library2Books.Add(b2lib2);
                roleAdmin.UserToRoles.Add(userToRole1);
                roleOrderUser.UserToRoles.Add(userToRole2);
                roleCookieUser.UserToRoles.Add(userToRole3);
                rolePayUser.UserToRoles.Add(userToRole4);

                //// Adding the data to the DbContext.
                //myDb.Libraries.Add(lib);
                databaseDbContext.Roles.Add(roleAdmin);
                databaseDbContext.Users.Add(user1);
                databaseDbContext.SaveChanges();

                databaseDbContext.Roles.Add(roleOrderUser);
                databaseDbContext.Users.Add(nv1);
                databaseDbContext.SaveChanges();

                databaseDbContext.Roles.Add(roleCookieUser);
                databaseDbContext.Users.Add(nv2);
                databaseDbContext.SaveChanges();

                databaseDbContext.Roles.Add(rolePayUser);
                databaseDbContext.Users.Add(nv3);
                databaseDbContext.SaveChanges();

                //myDb.Books.Add(book1);
                //myDb.Books.Add(book2);

                //// Save the changes and everything should be working!
                //myDb.SaveChanges();

                //await databaseDbContext.SaveChangesAsync();

                logger.LogInformation("DatabaseDbContext", "---initial data of Surveys success---");
            }

            if (databaseDbContext.Roles.Count() == 4)
            {
                var roleCustomerUser = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleCustomerUser, Desc = "Role Account of Customer"
                };
                await databaseDbContext.Roles.AddAsync(roleCustomerUser);

                await databaseDbContext.SaveChangesAsync();
            }

            if (databaseDbContext.Roles.Count() == 5)
            {
                var roleSysAdmin = new Role {
                    Id = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), RoleName = RoleTypeHelper.RoleSysAdmin, Desc = "Role SysAdmin"
                };
                await databaseDbContext.Roles.AddAsync(roleSysAdmin);

                await databaseDbContext.SaveChangesAsync();
            }

            if (!databaseDbContext.CategoryStores.Any())
            {
                var catStore = new CategoryStore {
                    Id = Guid.NewGuid().ToString(), Name = "Nhà hàng"
                };
                await databaseDbContext.CategoryStores.AddAsync(catStore);

                await databaseDbContext.SaveChangesAsync();

                var useradmin    = databaseDbContext.Users.FirstOrDefault(x => x.UserName.ToLower().Equals("admin01"));
                var store1       = new Store();
                var optionSize   = new StoreOption();
                var optionToping = new StoreOption();
                if (useradmin != null)
                {
                    if (!databaseDbContext.Stores.Any())
                    {
                        store1 = new Store
                        {
                            Id = Guid.NewGuid().ToString(),
                            CategoryStoreId = catStore.Id,
                            StatusStore     = 1,
                            StoreAddress    = "Số 1, Xuân thủy, Cầu Giấy, Việt Nam",
                            StoreName       = "Store 1",
                            CreateByUserId  = useradmin.Id,
                        };

                        var lstStoreTable = new List <StoreTable>()
                        {
                            new StoreTable
                            {
                                Id           = Guid.NewGuid().ToString(),
                                Location     = 1,
                                LocationUnit = 1,
                                StoreId      = store1.Id,
                                TableCode    = Guid.NewGuid().ToString(),
                                TableName    = "Bàn 1",
                                TableStatus  = 1
                            },
                            new StoreTable
                            {
                                Id           = Guid.NewGuid().ToString(),
                                Location     = 1,
                                LocationUnit = 1,
                                StoreId      = store1.Id,
                                TableCode    = Guid.NewGuid().ToString(),
                                TableName    = "Bàn 2",
                                TableStatus  = 1
                            },
                            new StoreTable
                            {
                                Id           = Guid.NewGuid().ToString(),
                                Location     = 1,
                                LocationUnit = 1,
                                StoreId      = store1.Id,
                                TableCode    = Guid.NewGuid().ToString(),
                                TableName    = "Bàn 3",
                                TableStatus  = 1
                            },
                            new StoreTable
                            {
                                Id           = Guid.NewGuid().ToString(),
                                Location     = 1,
                                LocationUnit = 1,
                                StoreId      = store1.Id,
                                TableCode    = Guid.NewGuid().ToString(),
                                TableName    = "Bàn 4",
                                TableStatus  = 1
                            },
                            new StoreTable
                            {
                                Id           = Guid.NewGuid().ToString(),
                                Location     = 1,
                                LocationUnit = 1,
                                StoreId      = store1.Id,
                                TableCode    = Guid.NewGuid().ToString(),
                                TableName    = "Bàn 5",
                                TableStatus  = 1
                            }
                        };

                        optionSize = new StoreOption {
                            OptionId = Guid.NewGuid().ToString(), StoreId = store1.Id, StoreOptionName = "size", StoreOptionDescription = "Kích thước"
                        };
                        optionToping = new StoreOption {
                            OptionId = Guid.NewGuid().ToString(), StoreId = store1.Id, StoreOptionName = "toping", StoreOptionDescription = "Toping"
                        };

                        var lstStoreOption = new List <StoreOption>()
                        {
                            optionSize,
                            optionToping,
                            new StoreOption {
                                OptionId = Guid.NewGuid().ToString(), StoreId = store1.Id, StoreOptionName = "color", StoreOptionDescription = "Màu sắc"
                            },
                            new StoreOption {
                                OptionId = Guid.NewGuid().ToString(), StoreId = store1.Id, StoreOptionName = "class", StoreOptionDescription = "Lớp"
                            },
                            new StoreOption {
                                OptionId = Guid.NewGuid().ToString(), StoreId = store1.Id, StoreOptionName = "devo", StoreOptionDescription = "Dễ vỡ"
                            },
                        };


                        store1.StoreTables  = lstStoreTable;
                        store1.StoreOptions = lstStoreOption;

                        await databaseDbContext.Stores.AddAsync(store1);

                        await databaseDbContext.SaveChangesAsync();
                    }

                    if (!databaseDbContext.CategoryProducts.Any())
                    {
                        var catProduct = new CategoryProduct
                        {
                            Id           = Guid.NewGuid().ToString(),
                            CategoryName = "Danh mục 1",
                            Slug         = "danh-muc-1",
                            Code         = "danhmuc1code",
                            ParentId     = null,
                        };

                        var lstProducts = new List <Product>()
                        {
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 1", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 02", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 03", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 04", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 05", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 06", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 07", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 08", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 09", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 10", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 11", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 12", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 13", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                            new Product {
                                Id = Guid.NewGuid().ToString(), CategoryId = catProduct.Id, ProductName = "Sản phẩm 14", CreateByUserId = useradmin.Id, StoreId = store1.Id
                            },
                        };
                        catProduct.Products = lstProducts;

                        await databaseDbContext.AddAsync(catProduct);

                        await databaseDbContext.SaveChangesAsync();
                    }
                }
            }

            if (!databaseDbContext.Permissions.Any())
            {
                await databaseDbContext.Permissions.AddRangeAsync(new List <Permission>() {
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.SysAdmin.ImportLocation
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.SysAdmin.ViewLogs
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.SysAdmin.DeleteLogs
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Account.Create
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Account.Delete
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Account.Edit
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Account.View
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Users.View
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Users.Create
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Users.Edit
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Users.Delete
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.SysAdmin.GetListCategoryStore
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.GetListStoreOption
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.GetMenuProduct
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.CreateProduct
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.DeleteProduct
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.UpdateProduct
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.AdminStore.GetListProduct
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.ConfirmOrder
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.ConfirmPayOrder
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.CreateOrder
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetCategoryProductsForEmployee
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListOrderWithTableOrProductName
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListProductsOfStoreForEmployee
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListProductsOfStoreForEmployeeV2
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListProductsOfStoreWithCategoryForEmployee
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListProductsOfStoreWithCategoryForEmployeeV2
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetListTables
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetOrderProductsWithTable
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.GetOrderWithTableViewProductsWithTableId
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Employee.UpdateOrder
                    },
                    new Permission {
                        Id = Guid.NewGuid().ToString(), PermissionName = Permissions.Upload.UploadFile
                    },
                });

                await databaseDbContext.SaveChangesAsync();
            }

            if (!databaseDbContext.RoleToPermissions.Any())
            {
                // get role
                var roleSysadmin = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RoleSysAdmin);

                var roleAdminStore = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RoleAdmin);

                var roleOrderUser = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RoleOrderUser);

                var roleCookieUser = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RoleCookieUser);

                var rolePayUser = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RolePayUser);

                #region update roleSysAdmin
                var permissionsSysAdmin = databaseDbContext.Permissions
                                          .Where(x => x.PermissionName == Permissions.SysAdmin.ImportLocation ||
                                                 x.PermissionName == Permissions.SysAdmin.ViewLogs ||
                                                 x.PermissionName == Permissions.SysAdmin.DeleteLogs ||
                                                 x.PermissionName == Permissions.Account.Create ||
                                                 x.PermissionName == Permissions.Account.Delete ||
                                                 x.PermissionName == Permissions.Account.Edit ||
                                                 x.PermissionName == Permissions.Account.View ||
                                                 x.PermissionName == Permissions.SysAdmin.GetListStores ||
                                                 x.PermissionName == Permissions.SysAdmin.GetListCategoryStore
                                                 ).Select(x => x).ToList();

                foreach (var permission in permissionsSysAdmin)
                {
                    // add Permissions To Role
                    roleSysadmin.RoleToPermissions.Add(new RoleToPermission
                    {
                        Permission = permission,
                        Role       = roleSysadmin,
                    });
                }
                // save to db
                await databaseDbContext.SaveChangesAsync();

                #endregion

                #region Update RoleAdminStore
                var permissionsAdminStore = databaseDbContext.Permissions
                                            .Where(x => x.PermissionName == Permissions.AdminStore.GetMenuProduct ||
                                                   x.PermissionName == Permissions.AdminStore.GetListStoreOption ||
                                                   x.PermissionName == Permissions.AdminStore.GetListProduct ||
                                                   x.PermissionName == Permissions.AdminStore.CreateProduct ||
                                                   x.PermissionName == Permissions.AdminStore.UpdateProduct ||
                                                   x.PermissionName == Permissions.AdminStore.DeleteProduct ||
                                                   x.PermissionName == Permissions.Upload.UploadFile ||
                                                   x.PermissionName == Permissions.AdminStore.CreateCatProduct ||
                                                   x.PermissionName == Permissions.AdminStore.UpdateCatProduct ||
                                                   x.PermissionName == Permissions.AdminStore.DeleteCatProduct ||
                                                   x.PermissionName == Permissions.AdminStore.GetListCatProduct

                                                   ).Select(x => x).ToList();

                foreach (var permission in permissionsAdminStore)
                {
                    // add Permissions To Role
                    roleAdminStore.RoleToPermissions.Add(new RoleToPermission
                    {
                        Permission = permission,
                        Role       = roleAdminStore,
                    });
                }
                // save to db
                await databaseDbContext.SaveChangesAsync();

                #endregion

                #region Update RoleOrderUser
                var permissionsOrderUsers = databaseDbContext.Permissions
                                            .Where(x => x.PermissionName == Permissions.Employee.GetListTables ||
                                                   x.PermissionName == Permissions.Employee.GetCategoryProductsForEmployee ||
                                                   x.PermissionName == Permissions.Employee.GetListProductsOfStoreForEmployee ||
                                                   x.PermissionName == Permissions.Employee.GetListProductsOfStoreWithCategoryForEmployee ||
                                                   x.PermissionName == Permissions.Employee.GetListProductsOfStoreForEmployeeV2 ||
                                                   x.PermissionName == Permissions.Employee.GetListProductsOfStoreWithCategoryForEmployeeV2 ||
                                                   x.PermissionName == Permissions.Employee.CreateOrder ||
                                                   x.PermissionName == Permissions.Employee.UpdateOrder ||
                                                   x.PermissionName == Permissions.Employee.GetOrderProductsWithTable

                                                   ).Select(x => x).ToList();

                foreach (var permission in permissionsOrderUsers)
                {
                    // add Permissions To Role
                    roleOrderUser.RoleToPermissions.Add(new RoleToPermission
                    {
                        Permission = permission,
                        Role       = roleOrderUser,
                    });
                }
                // save to db
                await databaseDbContext.SaveChangesAsync();

                #endregion

                #region Update RoleCookieUser
                var permissionsOrderCookies = databaseDbContext.Permissions
                                              .Where(x => x.PermissionName == Permissions.Employee.GetOrderProductsWithTable ||
                                                     x.PermissionName == Permissions.Employee.GetListOrderWithTableOrProductName ||
                                                     x.PermissionName == Permissions.Employee.GetOrderWithTableViewProductsWithTableId ||
                                                     x.PermissionName == Permissions.Employee.ConfirmOrder ||
                                                     x.PermissionName == Permissions.Employee.UpdateOrderProductStatus
                                                     ).Select(x => x).ToList();

                foreach (var permission in permissionsOrderCookies)
                {
                    // add Permissions To Role
                    roleCookieUser.RoleToPermissions.Add(new RoleToPermission
                    {
                        Permission = permission,
                        Role       = roleCookieUser,
                    });
                }
                // save to db
                await databaseDbContext.SaveChangesAsync();

                #endregion

                #region Update rolePayUser
                var permissionsPayUsers = databaseDbContext.Permissions
                                          .Where(x => x.PermissionName == Permissions.Employee.ConfirmOrder ||
                                                 x.PermissionName == Permissions.Employee.ConfirmPayOrder
                                                 ).Select(x => x).ToList();

                foreach (var permission in permissionsPayUsers)
                {
                    // add Permissions To Role
                    rolePayUser.RoleToPermissions.Add(new RoleToPermission
                    {
                        Permission = permission,
                        Role       = rolePayUser,
                    });
                }
                // save to db
                await databaseDbContext.SaveChangesAsync();

                #endregion
            }

            if (!databaseDbContext.Users.Include(x => x.UserToRoles).ThenInclude(x => x.Role).Any(x => x.UserToRoles.Any(r => r.Role.RoleName == RoleTypeHelper.RoleSysAdmin)))
            {
                var roleSysAdmin = await databaseDbContext.Roles.FirstOrDefaultAsync(x => x.RoleName == RoleTypeHelper.RoleSysAdmin);

                string password     = "******";
                var    hashPass     = Helpers.SercurityHelper.GenerateSaltedHash(password);
                var    userSysAdmin = new User {
                    Id = Guid.NewGuid().ToString(), Age = 29, BirthDay = new DateTime(1991, 1, 1).ToUniversalTime(), CountLoginFailed = 0, FirstName = "sysadmin", LastName = "sysadmin", IsActived = 1, Email = "*****@*****.**", UserName = "******", HashPassword = hashPass.Hash, SaltPassword = hashPass.Salt, Gender = 1, OldPassword = hashPass.Hash + ";" + hashPass.Salt, PhoneNumber = "0349801673"
                };

                roleSysAdmin.UserToRoles.Add(new UserToRole
                {
                    Role = roleSysAdmin,
                    User = userSysAdmin,
                });

                // save to db
                await databaseDbContext.SaveChangesAsync();
            }
        }
        protected bool StoreFile(FtpContext context, string filename, Stream stream, StoreOption option)
        {
            int bufLen = 1024 * 10;

            byte[] buffer    = new byte[bufLen];
            int    read      = 0;
            long   totalRead = 0;

            int speed = context.User.MaxUploadSpeed;

            FileStream fs = null;

            try
            {
                string filePath = GetStoragePath(context, filename);

                if (context.Offset > 0 && option.AppendOriginalFile) //Append
                {
                    FileInfo file = new FileInfo(filePath);

                    if (context.Offset != file.Length)
                    {
                        context.Status  = FtpStatus.Error;
                        context.Message = "Invalid offset";
                        return(false);
                    }

                    fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Write, bufLen);
                }
                else
                {
                    if (File.Exists(filePath))
                    {
                        FileInfo file       = new FileInfo(filePath);
                        var      fileLength = file.Length;
                        File.Delete(filePath);
                        context.ChangeSpace(0 - fileLength);
                    }

                    fs = new FileStream(filePath, FileMode.CreateNew, FileAccess.Write, FileShare.Write, bufLen);
                }


                DateTime dtStart;
                TimeSpan ts;
                int      usedMs = 0, predictMs = 0;

                dtStart = DateTime.Now;

                while ((read = stream.Read(buffer, 0, bufLen)) > 0)
                {
                    fs.Write(buffer, 0, read);
                    totalRead += read;
                    context.ChangeSpace(read);

                    if (speed > 0) // if speed <=0, then no speed limitation
                    {
                        ts        = DateTime.Now.Subtract(dtStart);
                        usedMs    = (int)ts.TotalMilliseconds;
                        predictMs = read / speed;

                        if (predictMs > usedMs) //Speed control
                        {
                            Thread.Sleep(predictMs - usedMs);
                        }

                        dtStart = DateTime.Now;
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                AppServer.Logger.Error(e);
                context.Status  = FtpStatus.Error;
                context.Message = "Store file error";
                return(false);
            }
            finally
            {
                option.TotalRead = totalRead;

                if (fs != null)
                {
                    fs.Close();
                    fs.Dispose();
                    fs = null;
                }
            }
        }
Example #8
0
 public ProfileController(UserManager <User> userManager, TableStore tableStore, IOptions <StoreOption> storageOptions) : base(userManager, tableStore)
 {
     this.storageOptions = storageOptions.Value;
 }