PIbd-21_Medvedkov_Coursach/ComputerShopImplementerApp/Controllers/HomeController.cs

370 lines
9.5 KiB
C#
Raw Normal View History

2024-05-02 00:46:54 +04:00
using ComputerShopImplementerApp.Models;
using ComputerShopContracts.BindingModels;
using ComputerShopContracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using ComputerShopDataModels.Models;
using Microsoft.Extensions.Hosting;
namespace ComputerShopImplementerApp.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
return View(/*APIUser.GetRequest<List<OrderViewModel>>($"api/main/getorders?userId={APIUser.User.Id}")*/);
}
[HttpGet]
public IActionResult Privacy()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
return View(APIUser.User);
}
[HttpGet]
public IActionResult CreateComponent()
{
return View();
}
[HttpGet]
public IActionResult CreateProduct()
{
return View();
}
[HttpGet]
public IActionResult CreateRequest()
{
List<AssemblyViewModel> products = new List<AssemblyViewModel>
{
new AssemblyViewModel
{
Id = 1,
AssemblyName = "Сборка 1",
Cost = 105,
UserId = 1
},
new AssemblyViewModel
{
Id = 2,
AssemblyName = "Сборка 2",
Cost = 205,
UserId = 1
}
};
return View(products);
}
[HttpGet]
public IActionResult CreateAssembly()
{
var components = new List<ComponentViewModel>();
components.Add(new ComponentViewModel
{
Id = 1,
ComponentName = "Комплектующее 1",
Cost = 55.5,
Description = "Описание",
UserId = 1
});
components.Add(new ComponentViewModel
{
Id = 2,
ComponentName = "Комплектующее 2",
Cost = 15,
Description = "Описание",
UserId = 1
});
return View(components);
}
[HttpGet]
public IActionResult CreateBatch()
{
List<ProductViewModel> products = new List<ProductViewModel>
{
new ProductViewModel
{
Id = 1,
ProductName = "Товар 1",
Cost = 10.99,
UserId = 1,
Description = "Описание",
BatchId = 1
},
new ProductViewModel
{
Id = 1,
ProductName = "Товар 1",
Cost = 18,
UserId = 1,
Description = "Описание",
BatchId = 2
}
};
return View(products);
}
public IActionResult IndexComponent()
{
var components = new List<ComponentViewModel>();
components.Add(new ComponentViewModel
{
Id = 1,
ComponentName = "Комплектующее 1",
Cost = 55.5,
Description = "Описание",
UserId = 1
});
components.Add(new ComponentViewModel
{
Id = 2,
ComponentName = "Комплектующее 2",
Cost = 15,
Description = "Описание",
UserId = 1
});
return View(components);
}
public IActionResult IndexProduct()
{
List<ProductViewModel> products = new List<ProductViewModel>
{
new ProductViewModel
{
Id = 1,
ProductName = "Товар 1",
Cost = 10.99,
UserId = 1,
Description = "Описание",
BatchId = 1
},
new ProductViewModel
{
Id = 1,
ProductName = "Товар 1",
Cost = 18,
UserId = 1,
Description = "Описание",
BatchId = 2
}
};
return View(products);
}
[HttpGet]
public IActionResult IndexRequest()
{
List<RequestViewModel> products = new List<RequestViewModel>
{
new RequestViewModel
{
Id = 1,
AssemblyId = 1
},
new RequestViewModel
{
Id = 2,
AssemblyId = 2
},
};
return View(products);
}
[HttpGet]
public IActionResult IndexAssembly()
{
List<AssemblyViewModel> products = new List<AssemblyViewModel>
{
new AssemblyViewModel
{
Id = 1,
AssemblyName = "Сборка 1",
Cost = 105,
UserId = 1
},
new AssemblyViewModel
{
Id = 2,
AssemblyName = "Сборка 2",
Cost = 205,
UserId = 1
}
};
return View(products);
}
[HttpGet]
public IActionResult IndexBatch()
{
List<BatchViewModel> products = new List<BatchViewModel>
{
new BatchViewModel
{
Id = 1,
ProductId = 1
},
new BatchViewModel
{
Id = 2,
ProductId = 2
},
};
return View(products);
}
[HttpGet]
public IActionResult ComponentRequestAssemblyReport()
{
List<ComponentRequestAssemblyReportViewModel> detailTimeReports = new List<ComponentRequestAssemblyReportViewModel>
{
new ComponentRequestAssemblyReportViewModel
{
ComponentName = "Комплектующее 1",
DateRequests = new List<DateTime> { DateTime.Today, DateTime.Now },
Assemblies = new List<string> {"Сборка 1", "Сборка 2"}
},
new ComponentRequestAssemblyReportViewModel
{
ComponentName = "Комплектующее 2",
DateRequests = new List<DateTime> { DateTime.Today, DateTime.Now },
Assemblies = new List<string> {"Сборка 3", "Сборка 4"}
},
};
return View(detailTimeReports);
}
[HttpGet]
public IActionResult ComponentBatchReport()
{
List<ComponentBatchReportViewModel> detailTimeReports = new List<ComponentBatchReportViewModel>
{
new ComponentBatchReportViewModel
{
ComponentName = "Комплектующее 1",
DateBatch = new List<DateTime> { DateTime.Today, DateTime.Now },
},
new ComponentBatchReportViewModel
{
ComponentName = "Комплектующее 1",
DateBatch = new List<DateTime> { DateTime.Today, DateTime.Now },
}
};
return View(detailTimeReports);
}
[HttpGet]
public IActionResult ReportsMenu()
{
return View();
}
[HttpPost]
public void Privacy(string fio, string phonenumber, string login, string password, string email)
{
if (APIUser.User == null)
{
throw new Exception("Требуется авторизация");
}
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(email))
{
throw new Exception("Требуется логин, пароль и email");
}
APIUser.PostRequest("api/user/updatedata", new UserBindingModel
{
Id = APIUser.User.Id,
Fio = fio,
PhoneNumber = phonenumber,
Login = login,
Password = password,
Email = email
});
APIUser.User.Fio = fio;
APIUser.User.PhoneNumber = phonenumber;
APIUser.User.Password = password;
APIUser.User.Email = email;
Response.Redirect("Index");
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
[HttpGet]
public IActionResult Enter()
{
return View();
}
[HttpPost]
public void Enter(string login, string password)
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
{
throw new Exception("Введите логин и пароль");
}
APIUser.User = APIUser.GetRequest<UserViewModel>($"api/user/loginimplementer?login={login}&password={password}");
if (APIUser.User == null)
{
throw new Exception("Не верный логин или пароль");
}
Response.Redirect("Index");
}
[HttpGet]
public IActionResult Register()
{
return View();
}
[HttpPost]
public void Register(string fio, string phonenumber, string login, string password, string email)
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(email))
{
throw new Exception("Введите логин, пароль, почту");
}
APIUser.PostRequest("api/user/registerimplementer", new UserBindingModel
{
Fio = fio,
PhoneNumber = phonenumber,
Login = login,
Password = password,
Email = email
});
Response.Redirect("Enter");
return;
}
}
}