using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using detect.gui.Models; using detect.gui.Models.Entities; namespace detect.gui.Services.Detect; public class DetectDeviceService : ServiceBase { public ApiResponse ListByDeviceIp(string ip) { var item = Find(x => x.DeviceIp == ip); return new ApiResponse(0, "success", item); } public ApiResponse ListById(long id) { var item = Find(x => x.Id == id); return new ApiResponse(0, "success", item); } public ApiResponse ListBySn(string deviceSn) { var item = Find(x => x.DeviceSn == deviceSn); return new ApiResponse(0, "success", item); } public ApiResponse?> ListAll() { var items = FindList(x => true, "Id", true) .ToList(); return new ApiResponse?>(0, "success", items); } public ApiResponse> Search(string? name = "", string? ip = "", int pageNum = 1, int pageSize = 10) { Expression> filter = x => (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(x.Name) || x.Name.Contains(name)) && (string.IsNullOrEmpty(ip) || string.IsNullOrEmpty(x.DeviceIp) || x.DeviceIp.Contains(ip)); var total = Count(filter); var items = FindList(filter, "CreateTime", false) .Skip((pageNum - 1) * pageSize).Take(pageSize).ToList(); var pagedResult = new PagedResult(pageNum, pageSize, total, items); return new ApiResponse>(0, "success", pagedResult); } public ApiResponse AddData(DeviceEntity entity) { var data = Add(entity); return new ApiResponse(0, "success", data); } public ApiResponse UpdateData(DeviceEntity entity) { return new ApiResponse(Update(entity) ? 0 : -1, "success", null); } public ApiResponse DeleteById(long id) { Delete(x => x.Id == id); return new ApiResponse(0, "success", null); } public ApiResponse DeleteData(DeviceEntity entity) { Delete(entity); return new ApiResponse(0, "success", null); } }