/// <summary> /// mssql /// </summary> /// <param name="models"></param> /// <param name="_repository"></param> public static async void BulkInsertAsync(IEnumerable <TEntity> models, IRepository <TEntity> _repository) { if (_repository == null) { throw new ArgumentNullException(nameof(_repository)); } try { await Task.Run(() => _repository.BulkInsert(models)); } catch (Exception e) //异步吞掉异常,不然进程奔溃 { var log = new SysErrorLog { ErrReferrer = "", ErrSource = e.Source, ErrTime = DateTime.Now }; log.ErrTimestr = log.ErrTime.ToString("yyyyMMdd"); log.ErrStack = e.StackTrace; log.ErrType = SysErrorType.bulkInsert.ToString(); log.ErrUrl = "/recordmanage/RecordManage/add_batch"; log.ErrIp = ""; log.ErrMessage = e.Message; using (SKContext context = new SKContext()) { context.SysErrorLogs.Add(log); context.SaveChanges(); } } }
public Resp_RightOperator_Index Index(Req_Index request) { var response = new Resp_RightOperator_Index(); var limits = _sysRightRepository.GetRightByUserWithModule(request.userId, request.moduleId).ConvertoDto <SysUserRightView, SysModuleOperateIndexDTO>().ToList(); if (!limits.IsNullOrEmpty() && limits.Find(s => s.IsValid == 1).IsNotNull()) { response.allowVisit = true; response.moduleOperaties = limits.OrderByDescending(t => t.IsValid).GroupBy(t => new { t.KeyCode, t.KeyName }).Select(s => new SysModuleOperateIndexDTO { KeyCode = s.Key.KeyCode, KeyName = s.Key.KeyName, IsValid = s.Sum(x => x.IsValid), }).ToList(); using (var context = new SKContext()) { response.sysRoles = context.SysRoles.ToList().ConvertoDto <SysRole, SysRoleDTO>().ToList(); response.sysModules = context.SysModules.Where(t => t.SuperSysModule == null).ToList().ConvertoDto <SysModule, SysModuleDTO>().ToList(); } } else { _sysRightRepository.UnitOfWork.Commite(); response.allowVisit = false; response.message = "无访问权限,请联系管理员"; } return(response); }
public void Insert(SysErrorLog log) { using (SKContext db = new SKContext()) { db.SysErrorLogs.Add(log); db.SaveChanges(); } }
public Resp_Login_Index Index(Req_Index request) { var response = new Resp_Login_Index(); response.sysmodules = _sysRightService.GetRightModuleByUser(request.userId); using (var context = new SKContext()) { var sysUser = context.SysUsers.SingleOrDefault(t => t.ID == request.userId); response.syschannels = sysUser.SysChannels.ConvertoDto <SysChannel, SysChannelDTO>().ToList(); } return(response); }
public static List <SysModule> GetSysModules() { var entities = CacheHelper.Get <List <SysModule> >(ContextKeys.CACHE_SYSMODULES); if (entities == null || entities.Count == 0) { using (SKContext context = new SKContext()) { entities = context.SysModules.ToList(); CacheHelper.Insert(ContextKeys.CACHE_SYSMODULES, entities, 30); } } return(entities); }
public async Task <int> CaptureHistoryHandler() { using (var context = new SKContext()) { try { ((IQueryableUnitOfWork)context).ExecuteCommand("Delete from capture where CreateTime< date_sub(now(),interval 180 day);"); } catch (Exception ex) { } } return(await Task.FromResult(1)); }
/// <summary> /// 记录对接日志 /// </summary> /// <param name="dock_url"></param> /// <param name="warnings"></param> /// <param name="message"></param> private void CreateLogError(string dock_url, string warnings, string message) { var log = new SysErrorLog { ErrReferrer = dock_url, ErrSource = warnings, ErrTime = DateTime.Now, ErrTimestr = DateTime.Now.ToString("yyyyMMdd"), ErrStack = "第三方对接", ErrType = SysErrorType.docking.ToString(), ErrUrl = dock_url, ErrIp = "", ErrMessage = message }; using (SKContext context = new SKContext()) { context.SysErrorLogs.Add(log); context.SaveChanges(); } }
public Resp_Binary Assign_Channel(SysUser_Assign_Channels request) { using (var context = new SKContext()) { var user = context.SysUsers.Where(t => t.ID == request.UserId).FirstOrDefault(); if (user.IsNull()) { return new Resp_Binary { message = "用户不存在" } } ; user.SysChannels.Clear(); if (request.ChannelIds.IsNotNull() && request.ChannelIds.Count > 0) { MemberInfo member1 = typeof(SysChannel).GetProperty("ID"); ParameterExpression param = Expression.Parameter(typeof(SysChannel), "o"); MemberExpression memberex1 = Expression.MakeMemberAccess(param, member1); var ss = Expression.Equal(Expression.Constant(1), Expression.Constant(2)); foreach (var temp in request.ChannelIds) { var right = Expression.Equal(memberex1, Expression.Constant(temp)); ss = Expression.OrElse(ss, right); } var sysChannels = context.SysChannels.Where(Expression.Lambda <Func <SysChannel, bool> >(ss, param)).ToList(); user.SysChannels = sysChannels; } if (context.SaveChanges() > 0) { return(Resp_Binary.Modify_Sucess); } } return(Resp_Binary.Modify_Failed); }
public SysChannelRepository(SKContext unitOfWork) : base(unitOfWork) { }
public Resp_Binary UpdateRight(SysRightOperate_Update request) { if (request.IsNull() && request.ModuleOperateIds.Count < 1) { return new Resp_Binary { message = "请选择要操作的记录" } } ; if (request.ModuleId < 1) { return new Resp_Binary { message = "请选择一个模块" } } ; if (request.RoleId < 1) { return new Resp_Binary { message = "请选择一个角色" } } ; var sysRight = _sysRightRepository.GetByWhere(r => r.SysRoleId == request.RoleId && r.SysModuleId == request.ModuleId).FirstOrDefault(); if (sysRight.IsNull()) { if (request.ModuleOperateIds.Exists(t => t.IsRightValid == 1)) { sysRight = new SysRight { SysModuleId = request.ModuleId, SysRoleId = request.RoleId, Rightflag = 1 } } ; else { sysRight = new SysRight { SysModuleId = request.ModuleId, SysRoleId = request.RoleId, Rightflag = 0 } }; _sysRightRepository.Insert(sysRight); } else { using (var context = new SKContext()) { var delsysRight = context.SysRights.Single(t => t.ID == sysRight.ID); delsysRight.SysRightOperates.Clear(); var temp = context.SysRightOperates.Local.Where(p => p.SysRight == null).ToList(); temp.ForEach(r => context.SysRightOperates.Remove(r)); var s = context.SaveChanges(); } } request.ModuleOperateIds.ForEach(t => { var sysRightOperate = new SysRightOperate { RightId = sysRight.ID, SysModuleOperateId = t.ID, IsValid = t.IsRightValid }; sysRight.SysRightOperates.Add(sysRightOperate); }); var count = _sysRightRepository.UnitOfWork.Commite(); if (count > 0) { var sysRightAfter = _sysRightRepository.GetByWhere(r => r.SysRoleId == request.RoleId && r.SysModuleId == request.ModuleId).FirstOrDefault(); if (sysRightAfter.SysRightOperates.FirstOrDefault(ss => ss.IsValid == 1).IsNull()) //更新用户权限 { sysRightAfter.Rightflag = 0; _sysRightRepository.Update(sysRightAfter); } else { sysRightAfter.Rightflag = 1; _sysRightRepository.Update(sysRightAfter); } var module = _sysModuleRepository.GetByWhere(r => r.ID == request.ModuleId).FirstOrDefault(); UpateParentModuleRight(module); void UpateParentModuleRight(SysModule source) { if (source.IsNotNull()) { var parent = source.SuperSysModule; if (parent.IsNotNull()) { var sysSuperRight = _sysRightRepository.GetByWhere(r => r.SysRoleId == request.RoleId && r.SysModuleId == parent.ID).FirstOrDefault(); var sysSourceRights = _sysRightRepository.GetByWhere(r => r.SysRoleId == request.RoleId && r.Rightflag == 1); var _Rightflag = 0; if (!sysSourceRights.IsNullOrEmpty()) { _Rightflag = 1; } if (sysSuperRight.IsNull()) { sysRight = new SysRight { SysModuleId = parent.ID, SysRoleId = request.RoleId, Rightflag = _Rightflag }; _sysRightRepository.Insert(sysRight); } else { sysSuperRight.Rightflag = _Rightflag; _sysRightRepository.Update(sysSuperRight); } UpateParentModuleRight(parent); } } } _sysRightRepository.UnitOfWork.Commite(); return(Resp_Binary.Modify_Sucess); } return(Resp_Binary.Modify_Failed); }
public CaptureBackupRepository(SKContext unitOfWork) : base(unitOfWork) { }
public SysUserRepository(SKContext context) : base(context) { }
public async Task <int> SetDataUnValidByValidTime() { int num = 0; try { logger.Info("定时设置数据无效运行" + DateTime.Now); using (var context = new SKContext()) { num += ((IQueryableUnitOfWork)context).ExecuteCommand($"update layout set IsValid=0 where IsValid=1 and ValideTime<now() and ValideTime>'1977-01-01 00:00:00';"); num += ((IQueryableUnitOfWork)context).ExecuteCommand($"update recordmanager set IsValid=0 where IsValid=1 and ValideTime<now() and ValideTime>'1977-01-01 00:00:00';"); foreach (var item in LayoutRandomSetLock.layoutRs.Values) { if (item.IsOpen && !string.IsNullOrEmpty(item.Channel)) { var flags = true; var i = 0; while (flags) { i++; var per = (int)Math.Ceiling(100 / item.RPercent); var caps = context.Captures.Where(t => t.Channel == item.Channel && t.CreateTime > DateTime.Today); if (item.Pass < 2) { caps = caps.Where(t => t.Pass == item.Pass); } caps = caps.OrderBy(t => t.ID).Skip((per - 1) * i).Take(1); var cap = caps.FirstOrDefault(); if (cap.IsNotNull()) { var layout = context.Layouts.FirstOrDefault(t => t.CarNumber == cap.CarNumber && t.IsValid == 1 && t.TriggerType == item.Pass); if (layout.IsNull()) { context.Layouts.Add(new Domain.Layout { CarNumber = cap.CarNumber, SysUserId = 1, Description = "随机取样", CreateTime = DateTime.Now, TriggerType = item.Pass, IsValid = 1, Degree = item.ValidCount, ValideTime = DateTime.Now.AddDays(item.ValidDays), Channel = cap.Channel }); } } else { flags = false; } } context.SaveChanges(); } } } } catch (Exception ex) { logger.Info(ex.Message.ToString()); num = -1; } return(await Task.FromResult(num)); }
public CarTypeRepository(SKContext unitOfWork) : base(unitOfWork) { }
public AccountRepository(SKContext context) => _unitOfWork = context;
public Resp_Binary_Member <AlarmDTO> Add_One(CaptureDTO model) { var alert = false; var capture = model.GetPrototype <CaptureDTO, Capture>(); if (capture.Pass == 1) //without代表该车出场 { capture.WithOut = 0; } if (capture.Pass == 0) { capture.WithOut = 1; } var result = false; var guid = Guid.NewGuid().ToString(); long layoutId = 0; using (var context = new SKContext()) { using (var tran = new TransactionScope()) { var layout = context.Layouts.Where(d => d.CarNumber == model.CarNumber && d.IsValid == 1 && d.Channel == model.Channel).FirstOrDefault(); if (layout.IsNotNull()) { if (layout.TriggerType == 2 || layout.TriggerType == model.Pass.ToInt()) //进出场控制 { alert = true; var lettercode = GetRandomNumberString(ConfigPara.LetterCount); var alarm = new Alarm { CarNumber = model.CarNumber, IsDeal = 0, GUID = guid, AlarmTime = DateTime.Now, Channel = model.Channel, LetterCode = AESEncryptHelper.Encrypt(lettercode) }; _messageRepository.SendMessage(capture.ToJson(), capture.Channel); capture.Alarms.Add(alarm); layoutId = layout.ID; //if (layout.Degree > 0) // --layout.Degree; //if (layout.Degree == 0) // layout.IsValid = 0; } } var captureback = model.GetPrototype <CaptureDTO, CaptureBackup>(); //当车出场时,将该车的进场记录的是否出场改为已出场 if (model.Pass.ToInt() == 0) { var in_captures = context.Captures.Where(t => t.CarNumber == model.CarNumber && t.Pass == 1 && t.WithOut == 0); foreach (var item in in_captures) { item.WithOut = 1; } } var recordM = context.RecordManagers.Where(t => t.CarNumber == model.CarNumber).OrderByDescending(t => t.ID).FirstOrDefault(); if (recordM.IsNotNull()) { capture.BeiAn = recordM.Type; captureback.BeiAn = recordM.Type; if (model.Pass.ToInt() == 1) //进场修改备案最后一次进场时间 { recordM.LastInTime = model.CreateTime.ToDateTime(); } else if (model.Pass.ToInt() == 0) //出场修改备案最近一次出场时间 { recordM.LastOutTime = model.CreateTime.ToDateTime(); } } else { capture.BeiAn = 2; captureback.BeiAn = 2; } context.Captures.Add(capture); context.CaptureBackups.Add(captureback); context.SaveChanges(); tran.Complete(); result = true; } } if (result) { if (alert) { // var req_dock = new Req_Warning // { // WARNINGDATE = DateTime.Now.ToString("yyyy-MM-dd hh: mm:ss"), // CARNO = model.CarNumber, // CARTYPE = model.CarType, // inout = model.Pass.Equals("1") ? "进" : "出", // bayonet = model.Channel, // Remark = model.Remark // }; // Docking(req_dock); //报警通知第三方 var alam = _alarmRepository.GetByWhere(t => t.GUID == guid).FirstOrDefault(); var dto = alam.ConvertoDto <Alarm, AlarmDTO>(); dto.LetterCode = alam.LetterCode; return(new Resp_Binary_Member <AlarmDTO> { message = "该车辆已中控报警!", flag = 2, LetterCode = dto.LetterCode, entity = dto, LayoutId = layoutId }); } return(new Resp_Binary_Member <AlarmDTO> { message = "添加成功", flag = 1 }); } return(new Resp_Binary_Member <AlarmDTO> { message = "添加失败", flag = 0 }); }