public async Task <IActionResult> CompleteTask(int id, SubmitActionViewModel model) { var requests = await _context.Requests.Include(r => r.Process) .ThenInclude(p => p.Actions).Include(r => r.Process) .ThenInclude(p => p.States).Include(r => r.Process) .ThenInclude(p => p.Activities).Include(r => r.Process) .ThenInclude(p => p.Rules) .Include(r => r.Process).ThenInclude(p => p.Rules).Include(r => r.Process) .ThenInclude(p => p.Roles).Include(r => r.Process) .ThenInclude(p => p.Nodes).ThenInclude(n => n.Childs) .Include(r => r.Process).ThenInclude(p => p.Nodes).ThenInclude(n => n.Actions) .Include(r => r.CurrentState).Include(r => r.CurrentNode) .Include(r => r.Data).Include(r => r.Tasks) .ToListAsync(); if (id <= 0) { return(NotFound()); } var request = requests.FirstOrDefault(r => r.Id == id); if (request is null) { return(NotFound()); } if (model.data != null) { foreach (var data in model.data) { request.InsertData(data, model.activity); } _context.Update(request); await _context.SaveChangesAsync(); } if (id <= 0) { return(NotFound()); } request.Data = await _context.Data.Where(d => d.RequestId == request.Id).ToListAsync(); request.CurrentState = request.Transit(model.action, model.source, model.role, model.activity, model.approver, model.data, model.doactivity); try { _context.Update(request); await _context.SaveChangesAsync(); } catch (System.Exception) { return(NotFound()); } return(Ok(_mapper.Map <RequestViewModel>(request))); }
public async Task <IActionResult> doSomething(int id, bool istree, bool trigger, SubmitActionViewModel model) { if (model is null) { return(Json("Lỗi: sai cấu trúc dữ liệu")); } var client = new HttpClient(); try { if (istree) { var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); var result = await client.PutAsync("http://" + Configuration["url"] + ":88/api/v1/requests/submitnodeaction/" + id.ToString(), content); if (result.IsSuccessStatusCode) { return(Json("Thao tác thành công, click \"Ok\" để load lại quy trình")); } return(Json("Lỗi: không tìm thấy máy chủ")); } else { if (trigger) { model.data = new List <DataCreateModel> { new DataCreateModel { CampaignName = "Campaign ", IsRunning = false, DataType = DataType.Campaign } }; var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); var result = await client.PutAsync("http://" + Configuration["url"] + ":88/api/v1/requests/submitaction/" + id.ToString() + "?trigger=true", content); if (result.IsSuccessStatusCode) { return(Json("Thao tác thành công, click \"Ok\" để load lại quy trình")); } return(Json(model)); } else { var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); var result = await client.PutAsync("http://" + Configuration["url"] + ":88/api/v1/requests/submitaction/" + id.ToString() + "?trigger=false", content); if (result.IsSuccessStatusCode) { return(Json("Thao tác thành công, click \"Ok\" để load lại quy trình")); } return(Json("Lỗi: không tìm thấy máy chủ")); } } } catch (System.Exception) { return(Json("Lỗi: không tìm thấy máy chủ")); throw; } }