예제 #1
0
        public ActionResult PlaceOrder()
        {
            List <OrderDetailsModel> objitemlist;
            TableInformationModel    omodel = new TableInformationModel();
            ItemController           ic     = new ItemController();
            int Ordermainid = 0;

            if (Session["CartData"] != null)
            {
                objitemlist = (List <OrderDetailsModel>)Session["CartData"];
                omodel      = (TableInformationModel)Session["TableInfo"];
                var data = ic.AddItemMain(omodel.TableNumber, objitemlist.Sum(x => x.Amount));
                if (data.Count() > 0)
                {
                    Ordermainid = data.ToList().FirstOrDefault().OrderMainId;

                    foreach (var item in objitemlist)
                    {
                        item.OrderMainId = Ordermainid;
                        ic.AddItemDetails(item);
                    }
                }
            }
            return(RedirectToAction("OrderPlaced", new { OrderId = Ordermainid }));
        }
예제 #2
0
        public static List <TableInformationModel> GetTablesFromRepository(DatabaseInfo dbInfo, bool includeViews = false)
        {
            if (dbInfo.DataConnection != null)
            {
                dbInfo.DataConnection.Open();
                dbInfo.ConnectionString = DataProtection.DecryptString(dbInfo.DataConnection.EncryptedConnectionString);
            }

            if (dbInfo.DatabaseType == DatabaseType.Npgsql)
            {
                return(EnvDteHelper.GetNpgsqlTableNames(dbInfo.ConnectionString, includeViews));
            }

            if (dbInfo.DatabaseType == DatabaseType.Mysql)
            {
                return(EnvDteHelper.GetMysqlTableNames(dbInfo.ConnectionString, includeViews));
            }

            if (dbInfo.DatabaseType == DatabaseType.Oracle)
            {
                return(EnvDteHelper.GetOracleTableNames(dbInfo.ConnectionString, includeViews));
            }

            using (var repository = RepositoryHelper.CreateRepository(dbInfo))
            {
                var allPks    = repository.GetAllPrimaryKeys();
                var tableList = repository.GetTableNamesForExclusion();
                var tables    = new List <TableInformationModel>();

                foreach (var table in tableList)
                {
                    var hasPrimaryKey = allPks.Any(m => m.TableName == table.TableName);
                    var name          = string.IsNullOrEmpty(table.Schema)
                        ? table.TableName
                        : $"[{table.Schema}].[{table.Name}]";

                    var info = new TableInformationModel(name, includeViews ? true : hasPrimaryKey, includeViews ? !hasPrimaryKey : false);
                    tables.Add(info);
                }

                if (includeViews)
                {
                    var views = repository.GetAllViews();
                    foreach (var view in views)
                    {
                        var info = new TableInformationModel(view.ViewName, true, true);
                        tables.Add(info);
                    }
                }

                return(tables.OrderBy(l => l.Name).ToList());
            }
        }
        public void Constructor_CorrectCreation()
        {
            // Arrange
            var table         = "dbo.Album";
            var hasPrimaryKey = true;

            // Act
            var ti = new TableInformationModel(table, hasPrimaryKey);

            // Assert
            Assert.AreEqual("dbo.Album", ti.Name);
            Assert.IsTrue(ti.HasPrimaryKey);
        }
        public void PropertyChanged_HasPrimaryKey_SameValue()
        {
            // Arrange
            var propertyChangedInvoked = false;
            var name          = "dbo.Album";
            var hasPrimaryKey = true;
            var ti            = new TableInformationModel(name, hasPrimaryKey);

            ti.PropertyChanged += (sender, args) => propertyChangedInvoked = true;

            // Act
            ti.HasPrimaryKey = hasPrimaryKey;

            // Assert
            Assert.IsFalse(propertyChangedInvoked);
        }
        public void PropertyChanged_HasPrimaryKey_DifferentValue()
        {
            // Arrange
            var changedProperties = new List <string>();
            var name          = "Album";
            var hasPrimaryKey = true;
            var ti            = new TableInformationModel(name, hasPrimaryKey);

            ti.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName);

            // Act
            ti.HasPrimaryKey = false;

            // Assert
            Assert.AreEqual(1, changedProperties.Count);
            Assert.AreEqual(nameof(TableInformationModel.HasPrimaryKey), changedProperties[0]);
            Assert.IsFalse(ti.HasPrimaryKey);
        }
        public void PropertyChanged_Name_DifferentValue()
        {
            // Arrange
            var changedProperties = new List <string>();
            var name          = "Album";
            var hasPrimaryKey = true;
            var ti            = new TableInformationModel(name, hasPrimaryKey);

            ti.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName);

            // Act
            ti.Name = "bar";

            // Assert
            Assert.AreEqual(1, changedProperties.Count);
            Assert.IsTrue(changedProperties.Contains(nameof(TableInformationModel.Name)));
            Assert.AreEqual("bar", ti.Name);
        }
예제 #7
0
        public ActionResult AddItemToCart(int itemId, int Quantity)
        {
            List <OrderDetailsModel> objitemlist;
            TableInformationModel    omodel = new TableInformationModel();
            ItemController           ic     = new ItemController();
            ItemModel objItemModel          = new ItemModel();
            var       itemdata = ic.GetItems(itemId);

            if (itemdata.Count() > 0)
            {
                objItemModel = itemdata.ToList().FirstOrDefault();
            }
            int intAmount = 0;

            intAmount = Quantity * objItemModel.ItemRate;
            omodel    = (TableInformationModel)Session["TableInfo"];
            if (Session["CartData"] != null)
            {
                objitemlist = (List <OrderDetailsModel>)Session["CartData"];
                if (objitemlist.Where(x => x.ItemId == itemId).Count() > 0)
                {
                    var objitemalreadyexists = objitemlist.Where(x => x.ItemId == itemId).FirstOrDefault();
                    objitemalreadyexists.Quantity = objitemalreadyexists.Quantity + Quantity;
                    objitemalreadyexists.Amount   = objitemalreadyexists.Quantity * objItemModel.ItemRate;
                    //objitemlist.Add(new OrderDetailsModel { ItemId = itemId, Quantity = Quantity, ItemRate = objItemModel.ItemRate, TableNumber = omodel.TableNumber, Amount = intAmount, ItemModel = objItemModel });
                }
                else
                {
                    objitemlist.Add(new OrderDetailsModel {
                        ItemId = itemId, Quantity = Quantity, ItemRate = objItemModel.ItemRate, TableNumber = omodel.TableNumber, Amount = intAmount, ItemModel = objItemModel
                    });
                }
            }
            else
            {
                objitemlist = new List <OrderDetailsModel>();
                objitemlist.Add(new OrderDetailsModel {
                    ItemId = itemId, Quantity = Quantity, ItemRate = objItemModel.ItemRate, TableNumber = omodel.TableNumber, Amount = intAmount, ItemModel = objItemModel
                });
            }
            Session["CartData"] = objitemlist;
            return(Json("Item Added to cart", JsonRequestBehavior.DenyGet));
        }
예제 #8
0
        public void PropertyChanged_IsSelected_SaveValue()
        {
            // Arrange
            var propertyChangedInvoked = false;
            var tim = new TableInformationModel("dbo.Album", true);
            var vm  = new TableInformationViewModel
            {
                Model      = tim,
                IsSelected = true
            };

            vm.PropertyChanged += (sender, args) => propertyChangedInvoked = true;

            // Act
            vm.IsSelected = true;

            // Assert
            Assert.IsFalse(propertyChangedInvoked);
        }
        public void SelectTables_EmptyCollection([Values(true, false)] bool hasTables)
        {
            // Arrange
            var osa = Mock.Of <IOperatingSystemAccess>();
            var fsa = Mock.Of <IFileSystemAccess>();

            ITableInformationViewModel CreateTableInformationViewModelMockObject()
            {
                var mock = new Mock <ITableInformationViewModel>();

                mock.SetupAllProperties();
                return(mock.Object);
            }

            IPickTablesViewModel vm = new PickTablesViewModel(osa, fsa, CreateTableInformationViewModelMockObject);
            var c = new TableInformationModel[0];

            ITableInformationViewModel[] tt = null;
            if (hasTables)
            {
                tt = GetTestViewModels();
                foreach (var table in tt)
                {
                    table.IsSelected = false;
                    vm.Tables.Add(table);
                }
            }

            // Act
            vm.SelectTables(c);

            // Assert
            if (hasTables)
            {
                CollectionAssert.AreEqual(tt, vm.Tables);
                Assert.IsTrue(vm.Tables.All(m => m.IsSelected == false));
            }
            else
            {
                Assert.IsEmpty(vm.Tables);
            }
        }
예제 #10
0
        public void PropertyChanged_IsSelected_DifferentValue()
        {
            // Arrange
            var changedProperties = new List <string>();
            var tim = new TableInformationModel("dbo.Album", true);
            var vm  = new TableInformationViewModel
            {
                Model      = tim,
                IsSelected = true
            };

            vm.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName);

            // Act
            vm.IsSelected = false;

            // Assert
            Assert.AreEqual(1, changedProperties.Count);
            Assert.AreEqual(nameof(TableInformationViewModel.IsSelected), changedProperties[0]);
        }
예제 #11
0
        internal static List <TableInformationModel> GetMysqlTableNames(string connectionString, bool includeViews)
        {
            var result = new List <TableInformationModel>();

            using (var mysqlConn = new MySqlConnection(connectionString))
            {
                mysqlConn.Open();

                var    tables = GetMysqlTables(mysqlConn, mysqlConn.Database);
                string schema = mysqlConn.Database;
                if (schema != "information_schema")
                {
                    foreach (string table in tables)
                    {
                        bool hasPrimaryKey = HasMysqlPrimaryKey(schema, table, mysqlConn);
                        var  info          = new TableInformationModel(table, includeViews ? true : hasPrimaryKey, includeViews ? !hasPrimaryKey : false);
                        result.Add(info);
                    }
                }
            }

            return(result.OrderBy(l => l.Name).ToList());
        }
        public void AddTables_EmptyCollection()
        {
            // Arrange
            var osa = Mock.Of <IOperatingSystemAccess>();
            var fsa = Mock.Of <IFileSystemAccess>();

            ITableInformationViewModel CreateTableInformationViewModelMockObject()
            {
                var mock = new Mock <ITableInformationViewModel>();

                mock.SetupAllProperties();
                return(mock.Object);
            }

            IPickTablesViewModel vm = new PickTablesViewModel(osa, fsa, CreateTableInformationViewModelMockObject);
            var c = new TableInformationModel[0];

            // Act
            vm.AddTables(c);

            // Assert
            Assert.IsEmpty(vm.Tables);
        }
예제 #13
0
        internal static List <TableInformationModel> GetNpgsqlTableNames(string connectionString, bool includeViews)
        {
            var result = new List <TableInformationModel>();

            using (var npgsqlConn = new NpgsqlConnection(connectionString))
            {
                npgsqlConn.Open();

                var tablesDataTable = npgsqlConn.GetSchema("Tables");
                var constraints     = npgsqlConn.GetSchema("Constraints");
                foreach (DataRow row in tablesDataTable.Rows)
                {
                    var primaryKey = constraints
                                     .AsEnumerable()
                                     .Where(myRow => myRow.Field <string>("table_name") == row["table_name"].ToString() &&
                                            myRow.Field <string>("table_schema") == row["table_schema"].ToString() &&
                                            myRow.Field <string>("constraint_type") == "PRIMARY KEY")
                                     .FirstOrDefault();

                    var info = new TableInformationModel(row["table_schema"].ToString() + "." + row["table_name"].ToString(), includeViews ? true : primaryKey != null, includeViews ? primaryKey == null : false);
                    result.Add(info);
                }

                if (includeViews)
                {
                    var viewsDataTable = npgsqlConn.GetSchema("Views");
                    foreach (DataRow row in viewsDataTable.Rows)
                    {
                        var info = new TableInformationModel(row["table_schema"].ToString() + "." + row["table_name"].ToString(), true, true);
                        result.Add(info);
                    }
                }
            }

            return(result.OrderBy(l => l.Name).ToList());
        }