using Microsoft.EntityFrameworkCore; using WMS_GIRAF_Interface.Data; using WMS_GIRAF_Interface.Entities; using WMS_GIRAF_Interface.Repositories.Interface; namespace WMS_GIRAF_Interface.Repositories.Implement; public class ManageMainRepository: IManageMainRepository { private readonly MichelinDbContext _context; private readonly ILogger _logger; /// /// 构造函数 /// /// public ManageMainRepository(MichelinDbContext context, ILogger logger) { _context = context; _logger = logger; } /// /// 获取管理任务信息 /// /// 查询类型 /// 筛选信息 /// public MANAGE_MAIN? GetManageMain(string type, string filterInfo) { MANAGE_MAIN? manageMain = type switch { "barcode" => _context.Manage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo), "requestNumber" => _context.Manage_Main.FirstOrDefault(x => x.requestNumber == filterInfo), _ => _context.Manage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo) }; return manageMain; } /// /// 添加manageMain /// /// /// /// public bool AddManageMain(MANAGE_MAIN manageMain, out int manageId) { try { manageId = 0; if (manageMain == null) { return false; } _context.Manage_Main.Add(manageMain); _context.SaveChanges(); _logger.LogInformation($"Catch Manage main info({manageMain.STOCK_BARCODE});"); var managemain = _context.Manage_Main.Where(x => x.STOCK_BARCODE == manageMain.STOCK_BARCODE).AsNoTracking().FirstOrDefault(); if (managemain != null) { manageId = managemain.MANAGE_ID; } return true; } catch (Exception e) { if (manageMain != null) _logger.LogError($"插入main数据出现问题:桶信息:{manageMain.STOCK_BARCODE};错误信息:{e.Message}"); throw; } } public bool UpdateManageMain(MANAGE_MAIN manageMain) { if (manageMain == null || manageMain.MANAGE_ID == 0) { throw new ArgumentNullException(nameof(UpdateManageMain)); } _context.Manage_Main.Update(manageMain); _logger.LogInformation($"Update Manage main info({manageMain.STOCK_BARCODE});"); _context.SaveChanges(); return true; } /// /// 删除主任务 /// /// /// public void DeleteManageMain(MANAGE_MAIN manageMain) { if (manageMain == null) { throw new ArgumentNullException(nameof(manageMain)); } _context.Manage_Main.Remove(manageMain); _logger.LogInformation($"Deleted Manage main info({manageMain.STOCK_BARCODE});"); _context.SaveChanges(); } }