public DictItemEntity Load(string code) { try { DictItemEntity cateEntity = QueryForObject <DictItemEntity>("DictItemMap.Load", code); return(cateEntity); } catch (Exception) { throw; } }
public bool Save(DictItemEntity obj) { try { Insert("DictItemMap.Save", obj); return(true); } catch { return(false); } }
public void DeleteNotice(DictItemEntity entity) { var list = _sp.GetServices <IDictItemListener>() .Where(m => m.GroupCode.EqualsIgnoreCase(entity.GroupCode) && m.DictCode.EqualsIgnoreCase(entity.DictCode)).ToList(); if (list.Any()) { var tasks = new List <Task>(); foreach (var listener in list) { tasks.Add(listener.OnDelete(entity)); } Task.WaitAll(tasks.ToArray()); } }
public Task Sync(DictItemEntity entity, DictItemEntity oldEntity) { //如果名称或者值都未修改,则不需要同步 if (entity.Name == oldEntity.Name && entity.Value == oldEntity.Value) { return(Task.CompletedTask); } var descriptors = _descriptorCollection.Where(m => m.GroupCode == entity.GroupCode && m.DictCode == entity.DictCode).ToList(); if (descriptors.Any()) { var tasks = new List <Task>(); foreach (var descriptor in descriptors) { var sqlAdapter = descriptor.EntityDescriptor.SqlAdapter; //构造参数 var dynParams = new DynamicParameters(); //新名称 var name = sqlAdapter.AppendParameter("name"); dynParams.Add(name, entity.Name); //新值 var value = sqlAdapter.AppendParameter("val"); dynParams.Add(value, entity.Value); //旧值 var oldValue = sqlAdapter.AppendParameter("oldVal"); dynParams.Add(oldValue, oldEntity.Value); var tableName = sqlAdapter.AppendQuote(descriptor.EntityDescriptor.TableName); var valColName = sqlAdapter.AppendQuote(descriptor.ColumnDescriptor.Name); var nameColName = descriptor.DictNameColName.NotNull() ? descriptor.DictNameColName : descriptor.ColumnDescriptor.Name + "Name"; var sql = $"UPDATE {tableName} SET {sqlAdapter.AppendQuote(nameColName)}={name},{valColName}={value} WHERE {valColName}={oldValue};"; _logger.LogDebug(sql); tasks.Add(descriptor.EntityDescriptor.DbSet.ExecuteAsync(sql, dynParams)); } return(Task.WhenAll(tasks)); } return(Task.CompletedTask); }