protected override IEnumerable<TaskType> PerformGetByQuery(IQuery<TaskType> query) { var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator<TaskType>(sqlClause, query); var sql = translator.Translate(); var factory = new TaskTypeFactory(); var dtos = Database.Fetch<TaskTypeDto>(sql); return dtos.Select(factory.BuildEntity); }
protected override void PersistUpdatedItem(TaskType entity) { entity.UpdatingEntity(); var factory = new TaskTypeFactory(); var dto = factory.BuildDto(entity); Database.Update(dto); entity.ResetDirtyProperties(); }
protected override IEnumerable<TaskType> PerformGetAll(params int[] ids) { var sql = GetBaseQuery(false); if (ids.Any()) { sql.Where("cmsTaskType.id IN (@ids)", new { ids = ids }); } var factory = new TaskTypeFactory(); var dtos = Database.Fetch<TaskTypeDto>(sql); return dtos.Select(factory.BuildEntity); }
protected override TaskType PerformGet(int id) { var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); var taskDto = Database.Fetch<TaskTypeDto>(sql).FirstOrDefault(); if (taskDto == null) return null; var factory = new TaskTypeFactory(); var entity = factory.BuildEntity(taskDto); return entity; }
private void DoTasks(string[] tasks) { using (var scope = _serviceProvider.CreateScope()) { foreach (var task in tasks) { var type = TaskTypeFactory.Create(task); if (type == null) { _logger.LogWarning("任务不存在:{task}", task); } var appService = (IAppService)scope.ServiceProvider.GetRequiredService(type); appService?.DoTask(); } } }
protected override TaskType PerformGet(int id) { var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); var taskDto = Database.Fetch <TaskTypeDto>(SqlSyntax.SelectTop(sql, 1)).FirstOrDefault(); if (taskDto == null) { return(null); } var factory = new TaskTypeFactory(); var entity = factory.BuildEntity(taskDto); return(entity); }
protected override void PersistNewItem(TaskType entity) { entity.AddingEntity(); //TODO: Just remove the task type db table or add a unique index to the alias //ensure the task type exists var taskType = Database.SingleOrDefault<TaskTypeDto>("Where alias = @alias", new { alias = entity.Alias }); if (taskType != null) { throw new InvalidOperationException("A task type already exists with the given alias " + entity.Alias); } var factory = new TaskTypeFactory(); var dto = factory.BuildDto(entity); var id = Convert.ToInt32(Database.Insert(dto)); entity.Id = id; entity.ResetDirtyProperties(); }