| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.Filters;
- using Microsoft.AspNetCore.WebUtilities;
- using economy.Helpers;
- using economy.Models;
- using economy.Models.Oil;
- namespace economy.Controllers
- {
- public class OilController : Controller
- {
- private readonly DataGoKR _dataGoKR;
- private Dictionary<string, string> _queryString;
- public OilController(DataGoKR dataGoKR)
- {
- _dataGoKR = dataGoKR;
- }
- public override void OnActionExecuting(ActionExecutingContext context)
- {
- _queryString = QueryHelpers.ParseQuery(HttpContext.Request.QueryString.Value).ToDictionary(k => k.Key, v => string.Join(",", v.Value));
- ViewBag.QueryString = _queryString;
- base.OnActionExecuting(context);
- }
- public async Task<IActionResult> Index(Request request)
- {
- if (!ModelState.IsValid)
- {
- return BadRequest(ModelState);
- }
- OilModel oil = new OilModel(_dataGoKR);
- Response itemList = await oil.GetOilPriceInfo(request);
- if (itemList is not null)
- {
- int listNum = Common.CalcListNumber(itemList.Body.TotalCount, request.PageNo, request.NumOfRows);
- itemList.Body.Items.ItemList = itemList.Body.Items.ItemList.Select((row, index) =>
- {
- row.Num = (listNum - index);
- row.OilCtg = Common.NumberFormat(row.OilCtg);
- row.WtAvgPrcCptn = Common.NumberFormat(row.WtAvgPrcCptn, "0.##");
- row.WtAvgPrcDisc = Common.NumberFormat(row.WtAvgPrcDisc);
- row.Trqu = Common.NumberFormat(row.Trqu);
- row.TrPrc = Common.NumberFormat(row.TrPrc);
- return row;
- }).ToList();
- }
- var viewModel = new View<Request, Response>();
- viewModel.SelectedListPerPage = request.NumOfRows;
- viewModel.Request = request;
- viewModel.Response = itemList;
- var queryString = new
- {
- sDate = request.StartDate,
- eDate = request.EndDate
- };
- var pagination = new Pagination(itemList.Body?.TotalCount, request.PageNo, request.NumOfRows, queryString);
- viewModel.Pagination = pagination;
- return View(viewModel);
- }
- }
- }
|