public async Task <ActionResult <ResponseModel> > Edit(WorkflowListCreateViewModel model) { var response = ResponseModelFactory.CreateInstance; if (ConfigurationManager.AppSettings.IsTrialVersion) { response.SetIsTrial(); return(Ok(response)); } await using (_dbContext) { if (model.Status != "0") { response.SetFailed("改工作不在【新工作】不能修改"); return(Ok(response)); } var entity = _mapper.Map <WorkflowListCreateViewModel, WorkflowList>(model); //进行下一步审批 if (!string.IsNullOrEmpty(model.NextStepCode) && !string.IsNullOrEmpty(model.Approver)) { //进行中 entity.Status = "1"; //进行中 entity.Status = "1"; entity.CurrentStepCode = model.NextStepCode; var step = await _dbContext.WorkflowStep.FindAsync(model.NextStepCode); if (step != null) { var steps = await _dbContext.WorkflowStep. Where(s => s.TemplateCode == step.TemplateCode).OrderBy(o => o.SortID).ToListAsync(); if (steps.Count > int.Parse(step.SortID)) { entity.NextStepCode = steps[int.Parse(step.SortID)]?.Code; } } var receivers = new List <WorkflowReceiver>(); foreach (var user in model.Approver.Split(',')) { var u = Guid.Parse(user); //发送审批到下一个人 var receiver = WorkflowReceiverFactory.CreateInstance; receiver.Type = entity.Type; receiver.User = u; receiver.Description = entity.Description; receiver.WorkflowCode = entity.Code; receiver.CreateUser = entity.User; receiver.StepCode = entity.CurrentStepCode; receiver.TemplateCode = step?.TemplateCode; receivers.Add(receiver); //发送纸飞机通知 var toDoUser = await _dbContext.DncUser.FindAsync(entity.User); var rUser = await _dbContext.DncUser.FindAsync(u); await _telegramService.SendTextMessageAsync(rUser.TelegramChatId, $"请审核用户【{toDoUser.DisplayName}】{entity.Title}", rUser.TelegramBotToken); } await _dbContext.WorkflowReceiver.AddRangeAsync(receivers); } _dbContext.Entry(entity).State = EntityState.Modified; await _dbContext.SaveChangesAsync(); return(Ok(response)); } }
public async Task <ActionResult <ResponseModel> > Create(WorkflowListCreateViewModel model) { var response = ResponseModelFactory.CreateInstance; if (model.Title.Trim().Length <= 0) { response.SetFailed("请输入审批工作名称"); return(Ok(response)); } await using (_dbContext) { if (_dbContext.DncRole.Count(x => x.Name == model.Title) > 0) { response.SetFailed("审批工作已存在"); return(Ok(response)); } var entity = _mapper.Map <WorkflowListCreateViewModel, WorkflowList>(model); entity.User = AuthContextService.CurrentUser.Guid; entity.StartDate = DateTime.Now; entity.Status = "0"; entity.Code = RandomHelper.GetRandomizer(8, true, false, true, true); //进行下一步审批 if (!string.IsNullOrEmpty(model.NextStepCode) && !string.IsNullOrEmpty(model.Approver)) { //进行中 entity.Status = "1"; entity.CurrentStepCode = model.NextStepCode; var step = await _dbContext.WorkflowStep.FindAsync(model.NextStepCode); if (step != null) { var steps = await _dbContext.WorkflowStep. Where(s => s.TemplateCode == step.TemplateCode).OrderBy(o => o.SortID).ToListAsync(); if (steps.Count > int.Parse(step.SortID)) { entity.NextStepCode = steps[int.Parse(step.SortID)]?.Code; } } var receivers = new List <WorkflowReceiver>(); foreach (var user in model.Approver.Split(',')) { var u = Guid.Parse(user); //发送审批到下一个人 var receiver = WorkflowReceiverFactory.CreateInstance; receiver.Type = entity.Type; receiver.User = u; receiver.WorkflowCode = entity.Code; receiver.CreateUser = entity.User; receiver.Description = entity.Description; receiver.StepCode = entity.CurrentStepCode; receiver.TemplateCode = step?.TemplateCode; receivers.Add(receiver); //发送纸飞机通知 var toDoUser = await _dbContext.DncUser.FindAsync(entity.User); var rUser = await _dbContext.DncUser.FindAsync(u); await _telegramService.SendTextMessageAsync(rUser.TelegramChatId, $"请审核用户【{toDoUser.DisplayName}】{entity.Title}", rUser.TelegramBotToken); } await _dbContext.WorkflowReceiver.AddRangeAsync(receivers); } await _dbContext.WorkflowList.AddAsync(entity); await _dbContext.SaveChangesAsync(); return(Ok(response)); } }