PIbd-21_Medvedkov_Coursach/ComputerShopImplementerApp/Controllers/HomeController.cs
2024-05-02 00:46:54 +04:00

370 lines
9.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}