1
0
mirror of https://github.com/rudollee/LearningMVC.git synced 2025-06-07 16:06:21 +00:00
2017-04-03 02:51:19 +09:00

142 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LanguageFeatures.Models;
namespace LanguageFeatures.Controllers
{
public class HomeController : Controller
{
// GET: Home
public string Index()
{
return "Navigate to a URL to show an example";
}
public ViewResult AutoProperty()
{
Product myProduct = new Product();
myProduct.Name = "Kayak";
string productName = myProduct.Name;
return View("Result", (object)string.Format("Product name: {0}", productName));
}
public ViewResult CreateProduct()
{
Product myProduct = new Product
{
ProductID = 100,
Name = "Kayak",
Description = "A boat for one person",
Price = 275M,
Category = "Watersports"
};
return View("Result", (object)string.Format("Category: {0}", myProduct.Category));
}
public ViewResult CreateCollection()
{
string[] stringArray = { "apple", "oragne", "plum" };
List<int> intList = new List<int> { 10, 20, 30, 40 };
Dictionary<string, int> myDict = new Dictionary<string, int> { { "apple", 10 }, { "orange", 20 }, { "Plum", 30 } };
return View("Result", (object)stringArray[1]);
}
public ViewResult UseExtension()
{
ShoppingCart cart = new ShoppingCart
{
Products = new List<Product>
{
new Product {Name = "Kayak", Price = 275M},
new Product {Name = "Lifejacket", Price = 48.95M },
new Product {Name = "Soccer ball", Price = 19.50M },
new Product {Name = "Corner flag", Price = 34.95M }
}
};
decimal cartTotal = cart.TotalPrices();
return View("Result", (object)string.Format("Total: {0:c}", cartTotal));
}
public ViewResult UseFilterExtensionMethon()
{
IEnumerable<Product> products = new ShoppingCart
{
Products = new List<Product>
{
new Product {Name = "Kayak", Category = "Watersports", Price = 275M },
new Product {Name = "Lifejacket", Category = "Watersports", Price = 48.95M},
new Product {Name = "Soccer ball", Category = "Soccer", Price = 19.50M },
new Product {Name = "Coner flag", Category = "Soccer", Price = 34.95M }
}
};
//Func<Product, bool> categoryFileter = prod => prod.Category == "Soccer";
decimal total = 0;
foreach (Product prod in products.Filter(prod => prod.Category == "Soccer" || prod.Price > 20))
{
total += prod.Price;
}
return View("Result", (object)String.Format("Total: {0}", total));
}
public ViewResult CreateAnonArray()
{
var oddsAndEnds = new[]
{
new {Name = "MVC", Category = "Pattern" },
new {Name = "Hat", Category = "Clothing" },
new {Name = "Apple", Category = "Frit" }
};
StringBuilder result = new StringBuilder();
foreach (var item in oddsAndEnds)
{
result.Append(item.Name).Append(" ");
}
return View("Result", (object)result.ToString());
}
public ViewResult FindProduct()
{
Product[] products =
{
new Product {Name = "Kayak", Category = "Watersports", Price = 275M },
new Product {Name = "Lifejacket", Category = "Watersports", Price = 48.95M},
new Product {Name = "Soccer ball", Category = "Soccer", Price = 19.50M },
new Product {Name = "Coner flag", Category = "Soccer", Price = 34.95M }
};
var FoundProducts = from match in products
orderby match.Price descending
select new { match.Name, match.Price };
int count = 0;
StringBuilder result = new StringBuilder();
foreach (var p in FoundProducts)
{
result.AppendFormat("Price: {0} ", p.Price);
if (++count == 3)
{
break;
}
}
return View("Result", (object)result.ToString());
}
}
}