Skip to content

Commit f27b196

Browse files
sample
1 parent 3cc3047 commit f27b196

37 files changed

+2741
-0
lines changed

WebAPI/App.razor

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<Router AppAssembly="@typeof(Program).Assembly">
2+
<Found Context="routeData">
3+
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
4+
</Found>
5+
<NotFound>
6+
<LayoutView Layout="@typeof(MainLayout)">
7+
<p>Sorry, there's nothing at this address.</p>
8+
</LayoutView>
9+
</NotFound>
10+
</Router>
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using Microsoft.AspNetCore.Http;
6+
using Microsoft.AspNetCore.Mvc;
7+
using Microsoft.Extensions.Primitives;
8+
using WebAPI.Data;
9+
10+
namespace WebAPI.Controllers
11+
{
12+
[Route("api/[controller]")]
13+
[ApiController]
14+
public class DefaultController : ControllerBase
15+
{
16+
// GET: api/Default1
17+
public static List<Orders> order = new List<Orders>();
18+
// GET: api/Default
19+
20+
[HttpGet]
21+
public object Get()
22+
{
23+
24+
//IQueryable<Order> data = db.GetAllOrders().AsQueryable();
25+
if (order.Count == 0)
26+
{
27+
BindDataSource();
28+
}
29+
var data = order.AsQueryable();
30+
var count = data.Count();
31+
var queryString = Request.Query;
32+
string sort = queryString["$orderby"]; //sorting
33+
string filter = queryString["$filter"];
34+
string auto = queryString["$inlineCount"];
35+
if (sort != null) //Sorting
36+
{
37+
var sortfield = sort.Split(',');
38+
for (var i = sortfield.Length; i > 0; i--)
39+
{
40+
var sortColumn = sortfield[i - 1].Split(" ");
41+
var sorttype = sortColumn[0];
42+
if (sortColumn.Length == 2)
43+
{
44+
switch (sorttype)
45+
{
46+
case "OrderID":
47+
data = data.OrderByDescending(x => x.OrderID);
48+
break;
49+
case "CustomerID":
50+
data = data.OrderByDescending(x => x.CustomerID);
51+
break;
52+
case "Freight":
53+
data = data.OrderByDescending(x => x.Freight);
54+
break;
55+
case "EmployeeID":
56+
data = data.OrderByDescending(x => x.EmployeeID);
57+
break;
58+
case "OrderDate":
59+
data = data.OrderByDescending(x => x.OrderDate);
60+
break;
61+
62+
}
63+
}
64+
else
65+
{
66+
switch (sorttype)
67+
{
68+
case "OrderID":
69+
data = data.OrderBy(x => x.OrderID);
70+
break;
71+
case "CustomerID":
72+
data = data.OrderBy(x => x.CustomerID);
73+
break;
74+
case "Freight":
75+
data = data.OrderBy(x => x.Freight);
76+
break;
77+
case "EmployeeID":
78+
data = data.OrderBy(x => x.EmployeeID);
79+
break;
80+
case "OrderDate":
81+
data = data.OrderBy(x => x.OrderDate);
82+
break;
83+
}
84+
}
85+
}
86+
}
87+
if (queryString.Keys.Contains("$inlinecount"))
88+
{
89+
StringValues Skip;
90+
StringValues Take;
91+
int skip = (queryString.TryGetValue("$skip", out Skip)) ? Convert.ToInt32(Skip[0]) : 0;
92+
int top = (queryString.TryGetValue("$top", out Take)) ? Convert.ToInt32(Take[0]) : data.Count();
93+
return new { Items = data.Skip(skip).Take(top), Count = count };
94+
}
95+
else
96+
{
97+
return data;
98+
}
99+
}
100+
private void BindDataSource()
101+
{
102+
int i = 1, code = 10247;
103+
order.Add(new Orders(code + 1, "VINET", i + 1, 2.3 * i, DateTime.Now.AddMilliseconds(12345), "Berlin"));
104+
order.Add(new Orders(code + 2, "ALFKI", i + 2, 3.3 * i, new DateTime(1990, 04, 04), "Madrid"));
105+
order.Add(new Orders(code + 3, "ANTON", i + 1, 4.3 * i, new DateTime(1957, 11, 30), "Cholchester"));
106+
order.Add(new Orders(code + 4, "BLONP", i + 3, 5.3 * i, new DateTime(1930, 10, 22), "Marseille"));
107+
order.Add(new Orders(code + 5, "BOLID", i + 4, 6.3 * i, new DateTime(1953, 02, 18), "Tsawassen"));
108+
109+
}
110+
//// GET: api/Default1/5
111+
//[HttpGet("{id}", Name = "Get")]
112+
//public string Get(int id)
113+
//{
114+
// return "value";
115+
//}
116+
117+
// POST: api/Default1
118+
[HttpPost]
119+
public object Post([FromBody]Orders value)
120+
{
121+
order.Insert(0, value);
122+
return value;
123+
}
124+
125+
// PUT: api/Default1/5
126+
[HttpPut("{id}")]
127+
public object Put(int id, [FromBody]Orders value)
128+
{
129+
var data = order.Where(or => or.OrderID == value.OrderID).FirstOrDefault();
130+
if (data != null)
131+
{
132+
data.OrderID = value.OrderID;
133+
data.CustomerID = value.CustomerID;
134+
data.Freight = value.Freight;
135+
data.CustomerID = value.CustomerID;
136+
data.OrderDate = value.OrderDate;
137+
}
138+
return value;
139+
}
140+
141+
// DELETE: api/ApiWithActions/5
142+
[HttpDelete("{id}")]
143+
public void Delete(string id)
144+
{
145+
order.Remove(order.Where(or => or.OrderID.ToString() == id).FirstOrDefault());
146+
}
147+
}
148+
}

WebAPI/Data/OrderService.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Net.Http;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
using WebAPI.Data;
9+
10+
namespace WebAPI.Data
11+
{
12+
public class OrderService
13+
{
14+
string baseUrl = "http://localhost:50838/";
15+
public async Task<List<Orders>> GetOrdersAsync()
16+
{
17+
HttpClient http = new HttpClient();
18+
var json = await http.GetStringAsync($"{baseUrl}api/Default");
19+
return JsonConvert.DeserializeObject<List<Orders>>(json);
20+
}
21+
public async Task<HttpResponseMessage> InsertOrderAsync(Orders value)
22+
{
23+
var client = new HttpClient();
24+
return await client.PostAsync($"{baseUrl}api/Default", getStringContentFromObject(value));
25+
}
26+
public async Task<HttpResponseMessage> UpdateOrderAsync(string id,Orders value)
27+
{
28+
var client = new HttpClient();
29+
return await client.PutAsync($"{baseUrl}api/Default/{id}", getStringContentFromObject(value));
30+
}
31+
32+
public async Task<HttpResponseMessage> DeleteOrderAsync(string id)
33+
{
34+
var client = new HttpClient();
35+
return await client.DeleteAsync($"{baseUrl}api/Default/{id}");
36+
}
37+
private StringContent getStringContentFromObject(object obj)
38+
{
39+
var serialized = JsonConvert.SerializeObject(obj);
40+
var stringContent = new StringContent(serialized, Encoding.UTF8, "application/json");
41+
return stringContent;
42+
}
43+
}
44+
}

WebAPI/Data/Orders.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
6+
namespace WebAPI.Data
7+
{
8+
public class Orders
9+
{
10+
public Orders()
11+
{
12+
13+
}
14+
public Orders(long OrderId, string CustomerId, Nullable<int> EmployeeId, double Freight, DateTime OrderDate, string ShipCity)
15+
{
16+
this.OrderID = OrderId;
17+
this.CustomerID = CustomerId;
18+
this.EmployeeID = EmployeeId;
19+
this.Freight = Freight;
20+
//this.Time = Time;
21+
this.OrderDate = OrderDate;
22+
//this.HireDate = HireDate;
23+
// this.HireDate1 = HireDate1;
24+
this.ShipCity = ShipCity;
25+
}
26+
public long OrderID { get; set; }
27+
public string CustomerID { get; set; }
28+
public Nullable<int> EmployeeID { get; set; }
29+
30+
// public TimeSpan? Time { get; set; }
31+
public double Freight { get; set; }
32+
public DateTime OrderDate { get; set; }
33+
//public DateTimeOffset? HireDate { get; set; }
34+
//public DateTimeKind? HireDate1 { get; set; }
35+
public string ShipCity { get; set; }
36+
}
37+
}

WebAPI/Data/WeatherForecast.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
3+
namespace WebAPI.Data
4+
{
5+
public class WeatherForecast
6+
{
7+
public DateTime Date { get; set; }
8+
9+
public int TemperatureC { get; set; }
10+
11+
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
12+
13+
public string Summary { get; set; }
14+
}
15+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System;
2+
using System.Linq;
3+
using System.Threading.Tasks;
4+
5+
namespace WebAPI.Data
6+
{
7+
public class WeatherForecastService
8+
{
9+
private static readonly string[] Summaries = new[]
10+
{
11+
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
12+
};
13+
14+
public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
15+
{
16+
var rng = new Random();
17+
return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
18+
{
19+
Date = startDate.AddDays(index),
20+
TemperatureC = rng.Next(-20, 55),
21+
Summary = Summaries[rng.Next(Summaries.Length)]
22+
}).ToArray());
23+
}
24+
}
25+
}

WebAPI/Pages/Counter.razor

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@page "/counter"
2+
3+
<h1>Counter</h1>
4+
5+
<p>Current count: @currentCount</p>
6+
7+
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
8+
9+
@code {
10+
int currentCount = 0;
11+
12+
void IncrementCount()
13+
{
14+
currentCount++;
15+
}
16+
}

WebAPI/Pages/Error.razor

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@page "/error"
2+
3+
4+
<h1 class="text-danger">Error.</h1>
5+
<h2 class="text-danger">An error occurred while processing your request.</h2>
6+
7+
<h3>Development Mode</h3>
8+
<p>
9+
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
10+
</p>
11+
<p>
12+
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
13+
It can result in displaying sensitive information from exceptions to end users.
14+
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
15+
and restarting the app.
16+
</p>

WebAPI/Pages/FetchData.razor

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
@page "/fetchdata"
2+
3+
@using WebAPI.Data
4+
@inject WeatherForecastService ForecastService
5+
6+
<h1>Weather forecast</h1>
7+
8+
<p>This component demonstrates fetching data from a service.</p>
9+
10+
@if (forecasts == null)
11+
{
12+
<p><em>Loading...</em></p>
13+
}
14+
else
15+
{
16+
<table class="table">
17+
<thead>
18+
<tr>
19+
<th>Date</th>
20+
<th>Temp. (C)</th>
21+
<th>Temp. (F)</th>
22+
<th>Summary</th>
23+
</tr>
24+
</thead>
25+
<tbody>
26+
@foreach (var forecast in forecasts)
27+
{
28+
<tr>
29+
<td>@forecast.Date.ToShortDateString()</td>
30+
<td>@forecast.TemperatureC</td>
31+
<td>@forecast.TemperatureF</td>
32+
<td>@forecast.Summary</td>
33+
</tr>
34+
}
35+
</tbody>
36+
</table>
37+
}
38+
39+
@code {
40+
WeatherForecast[] forecasts;
41+
42+
protected override async Task OnInitializedAsync()
43+
{
44+
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
45+
}
46+
}

0 commit comments

Comments
 (0)