You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.6 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Formatting;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Syncfusion.EJ2;
using BWPMModels;
using System.Collections;
using Syncfusion.EJ2.Base;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using System.Reflection;
using App.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Authorization;
namespace App.Controllers
{
public partial class UserController : Controller
{
private readonly UserManager<AppUser> _userManager;
private readonly SignInManager<AppUser> _signInManager;
public UserController(UserManager<AppUser> userManager, SignInManager<AppUser> signInManager)
{
this._userManager = userManager;
this._signInManager = signInManager;
}
[Authorize]
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult UrlDatasource([FromBody] DataManagerRequest dm)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
httpcli.CallService("user", "", "GET", null);
if (httpcli.Results.resultstatus != true)
{
return View();
}
List<BWPMModels.User> users = JsonConvert.DeserializeObject<List<BWPMModels.User>>(httpcli.Results.daten);
ViewBag.DataSource = users;
IEnumerable DataSource = users;
DataOperations operation = new DataOperations();
if (dm.Search != null && dm.Search.Count > 0)
{
DataSource = operation.PerformSearching(DataSource, dm.Search); //Search
}
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
{
DataSource = operation.PerformSorting(DataSource, dm.Sorted);
}
if (dm.Where != null && dm.Where.Count > 0)
{
DataSource = operation.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator); //Filtering
}
int count = DataSource.Cast<User>().Count();
if (dm.Skip != 0)
{
DataSource = operation.PerformSkip(DataSource, dm.Skip); //Paging
}
if (dm.Take != 0)
{
DataSource = operation.PerformTake(DataSource, dm.Take);
}
return dm.RequiresCounts ? Json(new { result = DataSource, count = count }) : Json(DataSource);
}
public ActionResult Update([FromBody] ICRUDModel<BWPMModels.User> value)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
BWPMModels.User u = new BWPMModels.User();
u = value.value;
httpcli.CallService("user", u.ID.ToString(), "PUT", value.value);
if (httpcli.Results.resultstatuscode != "OK")
{
return View();
}
return Json(value.value);
}
public ActionResult Insert([FromBody] ICRUDModel<BWPMModels.User> value)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
BWPMModels.User u = new BWPMModels.User();
u = value.value;
u.mutiert_am = DateTime.Now;
try
{
u.mutierer = Convert.ToInt32(_userManager.GetUserId(HttpContext.User));
}
catch
{
u.mutierer = 1;
}
u.erstellt_am = DateTime.Now;
httpcli.CallService("user", "", "POST", u);
if (httpcli.Results.resultstatuscode != "OK")
{
return View();
}
return Json(value.value);
}
public ActionResult Remove([FromBody] CRUDModel<BWPMModels.User> value)
{
Helper.HttpClientHelper httpcli = new Helper.HttpClientHelper();
BWPMModels.User u = new BWPMModels.User();
u.mutiert_am = DateTime.Now;
try
{
u.mutierer = Convert.ToInt32(_userManager.GetUserId(HttpContext.User));
}
catch
{
u.mutierer = 1;
}
u.erstellt_am = DateTime.Now;
httpcli.CallService("user", value.Key.ToString(), "DELETE", u);
if (httpcli.Results.resultstatuscode != "OK")
{
return View();
}
return Json(value);
}
}
}