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.
iot/projects/IoT.Shared/Areas/Admin/Controlls/NodeController.cs

66 lines
2.8 KiB

using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Application;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
namespace IoT.Shared.Areas.Admin.Controlls
{
[Authorize]
[Area(nameof(Admin))]
public class NodeController : SharedController<Node, EditNodeModel>
{
public NodeController(IRepository<Node> repo, IServiceProvider sp) : base(repo, sp)
{
}
public override IQueryable<Node> Query(PagedListModel<EditNodeModel> model, IQueryable<Node> query)
{
return base.Query(model, query)
.WhereIf(!string.IsNullOrEmpty(model.Query.OrganName), o => o.OrganName.Contains(model.Query.OrganName, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.OrganNumber), o => o.OrganNumber.Contains(model.Query.OrganNumber, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.CategoryName), o => o.CategoryName.Contains(model.Query.CategoryName, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.CategoryNumber), o => o.CategoryNumber.Contains(model.Query.CategoryNumber, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.Name), o => o.Name.Contains(model.Query.Name, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.Number), o => o.Number.Contains(model.Query.Number, StringComparison.OrdinalIgnoreCase))
.WhereIf(!string.IsNullOrEmpty(model.Query.Version), o => o.Version.Contains(model.Query.Version, StringComparison.OrdinalIgnoreCase))
.WhereIf(model.Query.IsOnline.HasValue, o => o.IsOnline == model.Query.IsOnline.Value)
.WhereIf(model.Query.Hidden.HasValue, o => o.Hidden == model.Query.Hidden.Value);
}
public override string GetNodeNumber(EditNodeModel model)
{
return model.Number;
}
public override IActionResult Delete(List<Guid> list)
{
if (this.isIoTCenter)
{
foreach (var id in list)
{
try
{
this.Repo.Delete(this.Repo.Table().FirstOrDefault(o => o.Id == id));
this.Repo.SaveChanges();
}
catch (Exception ex)
{
ex.PrintStack();
return Error(ex.Message);
}
}
return Success();
}
else
{
return base.Delete(list);
}
}
}
}