//===========================================================
        //===========================================================

        #region -- Create Product --

        public SingleRsp CreateProduct(ProductsReq pro)
        {
            var      res     = new SingleRsp();
            Products product = new Products();

            product.CategoryId  = pro.CategoryId;
            product.ProductName = pro.ProductName;
            product.Photo       = pro.Photo;
            product.Description = pro.Description;
            product.ProductSlug = pro.ProductSlug;
            product.IsActive    = pro.IsActive;

            // we must to save a new product before.
            // if we don't, we will not have productID to do anything.
            res = _rep.CreateProduct(product);

            // ProductsReq pro have Options is a list.
            // so we get those options and store it into database.
            foreach (var po in pro.Options)
            {
                using (var context = new EatWellDBContext())
                {
                    using (var tran = context.Database.BeginTransaction())
                    {
                        try
                        {
                            ProductOptions product_option = new ProductOptions();
                            product_option.ProductId = product.ProductId;
                            product_option.OptionId  = po.OptionId;
                            product_option.Price     = po.Price;

                            // add a new record in to ProductOptions table
                            var t = context.ProductOptions.Add(product_option);

                            context.SaveChanges();
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            res.SetError(ex.StackTrace);
                        }
                    }
                }
            }

            return(res);
        }