コード例 #1
0
        public void AddLoaf(Loaf loaf)
        {
            //using var db = new SqlConnection(ConnectionString);

            //var sql = @"INSERT INTO [dbo].[Loaves]([Size],[Type],[WeightInOunces],[Price],[Sliced])
            //                        OUTPUT inserted.Id
            //                        VALUES(@Size,@Type,@WeightInOunces,@Price,@Sliced,)";

            //var id = db.ExecuteScalar<int>(sql, loaf);



            ////ADO.Net way
            ////connection.Open();

            ////var command = connection.CreateCommand();

            ////command.CommandText = @;

            ////command.Parameters.AddWithValue("Size", loaf.Size);
            ////command.Parameters.AddWithValue("Type", loaf.Type);
            ////command.Parameters.AddWithValue("WeightInOunces", loaf.WeightInOunces);
            ////command.Parameters.AddWithValue("Price", loaf.Price);
            ////command.Parameters.AddWithValue("Sliced", loaf.Sliced);

            ////var id = (int)command.ExecuteScalar();

            //loaf.Id = id;


            _db.Loaves.Add(loaf);
            _db.SaveChanges();
        }
コード例 #2
0
        public void CategorysMarginCoefficient_Test()
        {
            // arrange
            double bun_margin_coefficient_expected   = 1.1;
            double bread_margin_coefficient_expected = 1.2;
            double loaf_margin_coefficient_expected  = 1.3;
            double bagel_margin_coefficient_expected = 1.4;
            double pita_margin_coefficient_expected  = 1.5;

            double delta = 0.1;

            // act
            Products bread = new Bread();
            Products bagel = new Bagel();
            Products bun   = new Bun();
            Products pita  = new Pita();
            Products loaf  = new Loaf();

            // assert
            Assert.AreEqual(bun_margin_coefficient_expected, bun.MarginCoefficient, delta);
            Assert.AreEqual(bread_margin_coefficient_expected, bread.MarginCoefficient, delta);
            Assert.AreEqual(loaf_margin_coefficient_expected, loaf.MarginCoefficient, delta);
            Assert.AreEqual(bagel_margin_coefficient_expected, bagel.MarginCoefficient, delta);
            Assert.AreEqual(pita_margin_coefficient_expected, pita.MarginCoefficient, delta);
        }
コード例 #3
0
        public void Add(Loaf loaf)
        {
            var sql = @"INSERT INTO [Loaves] ([Size],[Type],[WeightInOunces],[Price],[Sliced])
                        OUTPUT inserted.Id
                        VALUES(@Size, @type, @weightInOunces, @Price, @Sliced)";

            using var db = new SqlConnection(ConnectionString);

            var id = db.ExecuteScalar <int>(sql, loaf);

            loaf.Id = id;

            /*var cmd = connection.CreateCommand();
             * cmd.CommandText = @"INSERT INTO [Loaves] ([Size],[Type],[WeightInOunces],[Price],[Sliced])
             *                  OUTPUT inserted.Id
             *                  VALUES(@Size, @type, @weightInOunces, @Price, @Sliced)";
             *
             * cmd.Parameters.AddWithValue("Size", loaf.Size);
             * cmd.Parameters.AddWithValue("type", loaf.Type);
             * cmd.Parameters.AddWithValue("weightInOunces", loaf.WeightInOunces);
             * cmd.Parameters.AddWithValue("Price", loaf.Price);
             * cmd.Parameters.AddWithValue("Sliced", loaf.Sliced);
             *
             * var id = (int)cmd.ExecuteScalar();
             *
             * loaf.Id = id;
             */
            //var biggestExistingId = _loaves.Max(l => l.Id); -- This functionality is handled by SQL now
            //loaf.Id = biggestExistingId + 1;
            //_loaves.Add(loaf);
        }
コード例 #4
0
        public void Add(Loaf loaf)
        {
            var sql = @"INSERT INTO [dbo].[Loaves] ([Size] ,[Type] ,[WeightInOunces] ,[Price] ,[Sliced])
            OUTPUT inserted.Id
            VALUES (@Size,@Type,@weightInOunces,@Price,@Sliced)";

            using var db = new SqlConnection("Server=localhost;Database=LoafAndStranger;Trusted_Connection=True;");

            var id = db.ExecuteScalar <int>(sql, loaf);

            loaf.Id = id;
        }
コード例 #5
0
        public void Add(Loaf loaf)
        {
            var sql = @"INSERT INTO [Loaves] ([Size],[Type],[WeightInOunces],[Price],[Sliced])
                        OUTPUT inserted.Id
                        VALUES(@Size, @type, @weightInOunces, @Price, @Sliced)";

            using var db = new SqlConnection(ConnectionString);

            var id = db.ExecuteScalar <int>(sql, loaf);

            loaf.Id = id;
        }
コード例 #6
0
        public void Add(Loaf loaf)
        {
            var sql = @"INSERT INTO [dbo].[Loaves] ([Size], [Type], [WeightInOunces], [Price], [Sliced])
                                    OUTPUT inserted.Id
                                    VALUES(@Size, @Type, @WeightInOunces, @Price, @Sliced)";

            using var db = new SqlConnection(ConnectionString);

            //passing the whole loaf class(with all it's properties) as the substitution values for the query
            var id = db.ExecuteScalar <int>(sql, loaf);

            loaf.Id = id;
        }
コード例 #7
0
        public void Update(Loaf loaf)
        {
            using var db = new SqlConnection(ConnectionString);

            var sql = @"UPDATE Loaves
                        SET Price = @price,
                            Size = @size,
	                        WeightInOunces = @weightInOunces,
	                        Sliced = @Sliced,
	                        [Type] = @Type
                        WHERE Id = @id";

            db.Execute(sql, loaf);
        }
コード例 #8
0
        public void Update(Loaf loaf)
        {
            var sql = @"update Loaves
                        Set Price = @price,
                            Size = @size,
                            WeightInOunces = @weightinounces,
                            Sliced = @sliced,
                            Type = @type
                        where Id = @id";

            using var db = new SqlConnection(ConnectionString);

            db.Execute(sql, loaf);
        }
コード例 #9
0
        public void Add(Loaf loaf)
        {
            using var connection = new SqlConnection(ConnectionString);
            connection.Open();
            var cmd = connection.CreateCommand();

            cmd.CommandText = @"INSERT INTO [Loaves] ([Size],[Type],[WeightInOunces],[Price],[Sliced])
                                OUTPUT inserted.Id
                                VALUES(@Size, @type, @weightInOunces, @Price, @Sliced)";
            cmd.Parameters.AddWithValue("Size", loaf.Size);
            cmd.Parameters.AddWithValue("type", loaf.Type);
            cmd.Parameters.AddWithValue("weightInOunces", loaf.WeightInOunces);
            cmd.Parameters.AddWithValue("Price", loaf.Price);
            cmd.Parameters.AddWithValue("Sliced", loaf.Sliced);

            var id = (int)cmd.ExecuteScalar();

            loaf.Id = id;
        }
コード例 #10
0
        public void Update(Loaf loaf)
        {
            //var sql = @"update Loaves
            //            Set Price = @price,
            //                Size = @size,
            //                WeightInOunces = @weightinounces,
            //                Type = @type,
            //                Sliced = @sliced,
            //            Where Id = @id";

            //using var db = new SqlConnection(ConnectionString);

            //db.Execute(sql, loaf);

            var existingLoaf = Get(loaf.Id);

            existingLoaf.Sliced = loaf.Sliced;

            _db.SaveChanges();

            // _db.Loaves.Attach(loaf).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            // _db.SaveChanges();
        }
コード例 #11
0
        Loaf MapLoaf(SqlDataReader reader)
        {
            // get each column value from the reader
            var id             = (int)reader["Id"];        //explicit cast (throws exception)
            var size           = (LoafSize)reader["Size"];
            var type           = reader["Type"] as string; // implicit cast (returns null)
            var price          = (decimal)reader["price"];
            var weightInOunces = (int)reader["weightInOunces"];
            var sliced         = (bool)reader["sliced"];
            var createdDate    = (DateTime)reader["createdDate"];

            var loaf = new Loaf
            {
                Id             = id,
                Price          = price,
                Size           = size,
                Sliced         = sliced,
                Type           = type,
                WeightInOunces = weightInOunces
            };

            return(loaf);
        }
コード例 #12
0
 public IActionResult AddALoaf(Loaf loaf)
 {
     _repo.Add(loaf);
     return(Created($"api/Loaves/{loaf.Id}", loaf));
 }
コード例 #13
0
ファイル: ParseString.cs プロジェクト: Anreldion/Task-01
        /// <summary>
        /// Разобрать строку содержащую информацию о категории
        /// </summary>
        /// <param name="input_string">Строка с информацией о категории</param>
        /// <param name="is_ok">Ссылка на переменную, указывающую на успешный разбор строки</param>
        /// <returns>Возвращает Products</returns>
        static Products ParseCategory(string input_string, ref bool is_ok)
        {
            //Формат
            //"category : CategoryName = Bread, ProductName = Волотовской, Quantity = 10;"

            Products product     = new Bread();
            int      positions   = input_string.LastIndexOf(':');//Определяем позицию после двоеточия
            string   edit_string = input_string.Substring(positions + 1);

            //Разбиваем строку на массив строк
            string[] string_array = edit_string.Split(',', StringSplitOptions.RemoveEmptyEntries);

            //Определяем категорию к которой относится продукция
            foreach (var item in string_array)
            {
                //ищем
                if (item.IndexOf("CategoryName") == -1) //не существует, ищем дальше
                {
                    continue;
                }
                //Нашли, получаем параметры
                string[] parameter;

                parameter = item.Split(new char[] { '=' }); //Разбиваем параметр на 2 части
                if (parameter.Length < 2)                   //Проверяем длину
                {
                    is_ok = false;
                    return(product);
                }
                string type     = parameter[0];
                string category = parameter[1];

                //Проверяем, определена ли данная категория
                if (Products.CategoryIsExcist(category) == false)
                {
                    is_ok = false;
                    return(product);
                }
                else
                {
                    switch (category)
                    {
                    case Products.CATEGORY_BREAD:
                        product = new Bread();
                        break;

                    case Products.CATEGORY_LOAF:
                        product = new Loaf();
                        break;

                    case Products.CATEGORY_BAGEL:
                        product = new Bagel();
                        break;

                    case Products.CATEGORY_BUN:
                        product = new Bun();
                        break;

                    case Products.CATEGORY_PITA:
                        product = new Pita();
                        break;
                    }

                    break;//Выходим из цикла foreach
                }
            }


            //Получаем остальные параметры
            foreach (var item in string_array)
            {
                string[] parameter;

                parameter = item.Split(new char[] { '=' }); //Разбиваем параметр на 2 части
                if (parameter.Length < 2)                   //Проверяем длину
                {
                    continue;
                }
                string type      = parameter[0];
                string str_value = parameter[1];
                double value;

                switch (type)
                {
                case "ProductName":     //Наименование продукции
                    try
                    {
                        product.ProductName = str_value;
                    }
                    catch
                    {
                        product.ProductName = "";
                    }
                    break;

                case "Quantity":     //Количество
                    double.TryParse(string.Join("", str_value.Where(c => char.IsDigit(c))), out value);
                    try
                    {
                        str_value = str_value.Replace('.', ',');
                        double.TryParse(str_value, out value);
                        product.Quantity = value;
                    }
                    catch
                    {
                        product.Quantity = 0;
                    }
                    break;


                case "CategoryName":    //Наименование категории
                    try
                    {
                        product.CategoryName = str_value;
                    }
                    catch
                    {
                        product.CategoryName = "";
                    }
                    break;
                }
            }
            is_ok = true;
            return(product);
        }