/// <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; })); }
/// <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; })); }