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);
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 6
0
        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();
        }