Ejemplo n.º 1
0
        /// <summary> 添加任务 </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task <int> InsertAsync(JobDto dto)
        {
            var job = dto.MapTo <TJob>();

            return(Transaction(async(conn, trans) =>
            {
                var count = await conn.InsertAsync(job, trans: trans);
                switch (dto.Type)
                {
                case JobType.Http:
                    var detail = new TJobHttp
                    {
                        Id = dto.Detail.Id,
                        Method = dto.Detail.Method,
                        Url = dto.Detail.Url,
                        BodyType = dto.Detail.BodyType,
                        Data = dto.Detail.Data
                    };
                    if (dto.Detail.Header != null && dto.Detail.Header.Any())
                    {
                        detail.Header = JsonConvert.SerializeObject(dto.Detail.Header);
                    }

                    count += await conn.InsertAsync(detail, trans: trans);
                    break;
                }
                return count;
            }));
        }
Ejemplo n.º 2
0
        /// <summary> 更新任务 </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task <int> UpdateAsync(JobDto dto)
        {
            var job = dto.MapTo <TJob>();

            return(Transaction(async(conn, trans) =>
            {
                var count = await conn.UpdateAsync(job,
                                                   new[]
                {
                    nameof(TJob.Group), nameof(TJob.Name), nameof(TJob.Desc),
                    nameof(TJob.Type)
                }, trans);
                switch (dto.Type)
                {
                case JobType.Http:
                    var detail = new TJobHttp
                    {
                        Id = dto.Detail.Id,
                        Method = dto.Detail.Method,
                        Url = dto.Detail.Url,
                        BodyType = dto.Detail.BodyType,
                        Data = dto.Detail.Data
                    };
                    if (dto.Detail.Header != null && dto.Detail.Header.Any())
                    {
                        detail.Header = JsonConvert.SerializeObject(dto.Detail.Header);
                    }
                    count += await conn.UpdateAsync(detail,
                                                    new[]
                    {
                        nameof(TJobHttp.Url), nameof(TJobHttp.Method), nameof(TJobHttp.Data),
                        nameof(TJobHttp.Header), nameof(TJobHttp.BodyType)
                    }, trans);
                    break;
                }
                return count;
            }));
        }