public async Task <List <WorkflowStep_WorkflowDefinitionDTO> > SingleListWorkflowDefinition([FromBody] WorkflowStep_WorkflowDefinitionFilterDTO WorkflowStep_WorkflowDefinitionFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } WorkflowDefinitionFilter WorkflowDefinitionFilter = new WorkflowDefinitionFilter(); WorkflowDefinitionFilter.Skip = 0; WorkflowDefinitionFilter.Take = 20; WorkflowDefinitionFilter.OrderBy = WorkflowDefinitionOrder.Id; WorkflowDefinitionFilter.OrderType = OrderType.ASC; WorkflowDefinitionFilter.Selects = WorkflowDefinitionSelect.ALL; WorkflowDefinitionFilter.Id = WorkflowStep_WorkflowDefinitionFilterDTO.Id; WorkflowDefinitionFilter.Code = WorkflowStep_WorkflowDefinitionFilterDTO.Code; WorkflowDefinitionFilter.Name = WorkflowStep_WorkflowDefinitionFilterDTO.Name; WorkflowDefinitionFilter.WorkflowTypeId = WorkflowStep_WorkflowDefinitionFilterDTO.WorkflowTypeId; WorkflowDefinitionFilter.StartDate = WorkflowStep_WorkflowDefinitionFilterDTO.StartDate; WorkflowDefinitionFilter.EndDate = WorkflowStep_WorkflowDefinitionFilterDTO.EndDate; WorkflowDefinitionFilter.StatusId = WorkflowStep_WorkflowDefinitionFilterDTO.StatusId; WorkflowDefinitionFilter.UpdatedAt = WorkflowStep_WorkflowDefinitionFilterDTO.UpdatedAt; List <WorkflowDefinition> WorkflowDefinitions = await WorkflowDefinitionService.List(WorkflowDefinitionFilter); List <WorkflowStep_WorkflowDefinitionDTO> WorkflowStep_WorkflowDefinitionDTOs = WorkflowDefinitions .Select(x => new WorkflowStep_WorkflowDefinitionDTO(x)).ToList(); return(WorkflowStep_WorkflowDefinitionDTOs); }
public async Task <int> Count(WorkflowDefinitionFilter filter) { IQueryable <WorkflowDefinitionDAO> WorkflowDefinitions = DataContext.WorkflowDefinition; WorkflowDefinitions = DynamicFilter(WorkflowDefinitions, filter); return(await WorkflowDefinitions.CountAsync()); }
public async Task <List <WorkflowDefinition> > List(WorkflowDefinitionFilter filter) { if (filter == null) { return(new List <WorkflowDefinition>()); } IQueryable <WorkflowDefinitionDAO> WorkflowDefinitionDAOs = DataContext.WorkflowDefinition; WorkflowDefinitionDAOs = DynamicFilter(WorkflowDefinitionDAOs, filter); WorkflowDefinitionDAOs = DynamicOrder(WorkflowDefinitionDAOs, filter); List <WorkflowDefinition> WorkflowDefinitions = await DynamicSelect(WorkflowDefinitionDAOs, filter); return(WorkflowDefinitions); }
public async Task <bool> ValidateId(WorkflowDefinition WorkflowDefinition) { WorkflowDefinitionFilter WorkflowDefinitionFilter = new WorkflowDefinitionFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = WorkflowDefinition.Id }, Selects = WorkflowDefinitionSelect.Id }; int count = await UOW.WorkflowDefinitionRepository.Count(WorkflowDefinitionFilter); if (count == 0) { WorkflowDefinition.AddError(nameof(WorkflowDefinitionValidator), nameof(WorkflowDefinition.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public WorkflowDefinitionFilter ToFilter(WorkflowDefinitionFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <WorkflowDefinitionFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { WorkflowDefinitionFilter subFilter = new WorkflowDefinitionFilter(); filter.OrFilter.Add(subFilter); List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value; foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions) { } } return(filter); }
public async Task <List <WorkflowDefinition> > List(WorkflowDefinitionFilter WorkflowDefinitionFilter) { try { List <WorkflowDefinition> WorkflowDefinitions = await UOW.WorkflowDefinitionRepository.List(WorkflowDefinitionFilter); return(WorkflowDefinitions); } catch (Exception ex) { await Logging.CreateSystemLog(ex.InnerException, nameof(WorkflowDefinitionService)); if (ex.InnerException == null) { throw new MessageException(ex); } else { throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(WorkflowDefinitionFilter WorkflowDefinitionFilter) { try { int result = await UOW.WorkflowDefinitionRepository.Count(WorkflowDefinitionFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex.InnerException, nameof(WorkflowDefinitionService)); if (ex.InnerException == null) { throw new MessageException(ex); } else { throw new MessageException(ex.InnerException); } } }
private async Task <bool> ValidateCode(WorkflowDefinition WorkflowDefinition) { if (string.IsNullOrWhiteSpace(WorkflowDefinition.Code)) { WorkflowDefinition.AddError(nameof(WorkflowDefinitionValidator), nameof(WorkflowDefinition.Code), ErrorCode.CodeEmpty); } else { var Code = WorkflowDefinition.Code; if (WorkflowDefinition.Code.Contains(" ") || !FilterExtension.ChangeToEnglishChar(Code).Equals(WorkflowDefinition.Code)) { WorkflowDefinition.AddError(nameof(WorkflowDefinitionValidator), nameof(WorkflowDefinition.Code), ErrorCode.CodeHasSpecialCharacter); } WorkflowDefinitionFilter WorkflowDefinitionFilter = new WorkflowDefinitionFilter { Skip = 0, Take = 10, Id = new IdFilter { NotEqual = WorkflowDefinition.Id }, Code = new StringFilter { Equal = WorkflowDefinition.Code }, Selects = WorkflowDefinitionSelect.Code }; int count = await UOW.WorkflowDefinitionRepository.Count(WorkflowDefinitionFilter); if (count != 0) { WorkflowDefinition.AddError(nameof(WorkflowDefinitionValidator), nameof(WorkflowDefinition.Code), ErrorCode.CodeExisted); } } return(WorkflowDefinition.IsValidated); }
private async Task <bool> ValidateWorkflowDirection(WorkflowDirection WorkflowDirection) { if (WorkflowDirection.WorkflowDefinitionId == 0) { WorkflowDirection.AddError(nameof(WorkflowDirectionValidator), nameof(WorkflowDirection.WorkflowDefinition), ErrorCode.WorkflowDefinitionEmpty); } else { WorkflowDefinitionFilter WorkflowDefinitionFilter = new WorkflowDefinitionFilter { Id = new IdFilter { Equal = WorkflowDirection.WorkflowDefinitionId } }; int count = await UOW.WorkflowDefinitionRepository.Count(WorkflowDefinitionFilter); if (count == 0) { WorkflowDirection.AddError(nameof(WorkflowDirectionValidator), nameof(WorkflowDirection.WorkflowDefinition), ErrorCode.WorkflowDefinitionNotExisted); } } return(WorkflowDirection.IsValidated); }
public async Task <FileResult> ExportTemplate([FromBody] WorkflowStep_WorkflowStepFilterDTO WorkflowStep_WorkflowStepFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } MemoryStream memoryStream = new MemoryStream(); using (ExcelPackage excel = new ExcelPackage(memoryStream)) { #region WorkflowStep var WorkflowStepHeaders = new List <string[]>() { new string[] { "Id", "WorkflowDefinitionId", "Name", "RoleId", "SubjectMailForReject", "BodyMailForReject", } }; List <object[]> WorkflowStepData = new List <object[]>(); excel.GenerateWorksheet("WorkflowStep", WorkflowStepHeaders, WorkflowStepData); #endregion #region Role var RoleFilter = new RoleFilter(); RoleFilter.Selects = RoleSelect.ALL; RoleFilter.OrderBy = RoleOrder.Id; RoleFilter.OrderType = OrderType.ASC; RoleFilter.Skip = 0; RoleFilter.Take = int.MaxValue; List <Role> Roles = await RoleService.List(RoleFilter); var RoleHeaders = new List <string[]>() { new string[] { "Id", "Code", "Name", "StatusId", } }; List <object[]> RoleData = new List <object[]>(); for (int i = 0; i < Roles.Count; i++) { var Role = Roles[i]; RoleData.Add(new Object[] { Role.Id, Role.Code, Role.Name, Role.StatusId, }); } excel.GenerateWorksheet("Role", RoleHeaders, RoleData); #endregion #region WorkflowDefinition var WorkflowDefinitionFilter = new WorkflowDefinitionFilter(); WorkflowDefinitionFilter.Selects = WorkflowDefinitionSelect.ALL; WorkflowDefinitionFilter.OrderBy = WorkflowDefinitionOrder.Id; WorkflowDefinitionFilter.OrderType = OrderType.ASC; WorkflowDefinitionFilter.Skip = 0; WorkflowDefinitionFilter.Take = int.MaxValue; List <WorkflowDefinition> WorkflowDefinitions = await WorkflowDefinitionService.List(WorkflowDefinitionFilter); var WorkflowDefinitionHeaders = new List <string[]>() { new string[] { "Id", "Name", "WorkflowTypeId", "StartDate", "EndDate", "StatusId", } }; List <object[]> WorkflowDefinitionData = new List <object[]>(); for (int i = 0; i < WorkflowDefinitions.Count; i++) { var WorkflowDefinition = WorkflowDefinitions[i]; WorkflowDefinitionData.Add(new Object[] { WorkflowDefinition.Id, WorkflowDefinition.Name, WorkflowDefinition.WorkflowTypeId, WorkflowDefinition.StartDate, WorkflowDefinition.EndDate, WorkflowDefinition.StatusId, }); } excel.GenerateWorksheet("WorkflowDefinition", WorkflowDefinitionHeaders, WorkflowDefinitionData); #endregion excel.Save(); } return(File(memoryStream.ToArray(), "application/octet-stream", "WorkflowStep.xlsx")); }
public async Task <ActionResult> Import(IFormFile file) { if (!ModelState.IsValid) { throw new BindException(ModelState); } RoleFilter RoleFilter = new RoleFilter { Skip = 0, Take = int.MaxValue, Selects = RoleSelect.ALL }; List <Role> Roles = await RoleService.List(RoleFilter); WorkflowDefinitionFilter WorkflowDefinitionFilter = new WorkflowDefinitionFilter { Skip = 0, Take = int.MaxValue, Selects = WorkflowDefinitionSelect.ALL }; List <WorkflowDefinition> WorkflowDefinitions = await WorkflowDefinitionService.List(WorkflowDefinitionFilter); List <WorkflowStep> WorkflowSteps = new List <WorkflowStep>(); using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream())) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) { return(Ok(WorkflowSteps)); } int StartColumn = 1; int StartRow = 1; int IdColumn = 0 + StartColumn; int WorkflowDefinitionIdColumn = 1 + StartColumn; int NameColumn = 2 + StartColumn; int RoleIdColumn = 3 + StartColumn; int SubjectMailForRejectColumn = 4 + StartColumn; int BodyMailForRejectColumn = 5 + StartColumn; for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++) { if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString())) { break; } string IdValue = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString(); string WorkflowDefinitionIdValue = worksheet.Cells[i + StartRow, WorkflowDefinitionIdColumn].Value?.ToString(); string NameValue = worksheet.Cells[i + StartRow, NameColumn].Value?.ToString(); string RoleIdValue = worksheet.Cells[i + StartRow, RoleIdColumn].Value?.ToString(); string SubjectMailForRejectValue = worksheet.Cells[i + StartRow, SubjectMailForRejectColumn].Value?.ToString(); string BodyMailForRejectValue = worksheet.Cells[i + StartRow, BodyMailForRejectColumn].Value?.ToString(); WorkflowStep WorkflowStep = new WorkflowStep(); WorkflowStep.Name = NameValue; WorkflowStep.SubjectMailForReject = SubjectMailForRejectValue; WorkflowStep.BodyMailForReject = BodyMailForRejectValue; Role Role = Roles.Where(x => x.Id.ToString() == RoleIdValue).FirstOrDefault(); WorkflowStep.RoleId = Role == null ? 0 : Role.Id; WorkflowStep.Role = Role; WorkflowDefinition WorkflowDefinition = WorkflowDefinitions.Where(x => x.Id.ToString() == WorkflowDefinitionIdValue).FirstOrDefault(); WorkflowStep.WorkflowDefinitionId = WorkflowDefinition == null ? 0 : WorkflowDefinition.Id; WorkflowStep.WorkflowDefinition = WorkflowDefinition; WorkflowSteps.Add(WorkflowStep); } } WorkflowSteps = await WorkflowStepService.Import(WorkflowSteps); if (WorkflowSteps.All(x => x.IsValidated)) { return(Ok(true)); } else { List <string> Errors = new List <string>(); for (int i = 0; i < WorkflowSteps.Count; i++) { WorkflowStep WorkflowStep = WorkflowSteps[i]; if (!WorkflowStep.IsValidated) { string Error = $"Dòng {i + 2} có lỗi:"; if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.Id))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.Id)]; } if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.WorkflowDefinitionId))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.WorkflowDefinitionId)]; } if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.Name))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.Name)]; } if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.RoleId))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.RoleId)]; } if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.SubjectMailForReject))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.SubjectMailForReject)]; } if (WorkflowStep.Errors.ContainsKey(nameof(WorkflowStep.BodyMailForReject))) { Error += WorkflowStep.Errors[nameof(WorkflowStep.BodyMailForReject)]; } Errors.Add(Error); } } return(BadRequest(Errors)); } }
private IQueryable <WorkflowDefinitionDAO> OrFilter(IQueryable <WorkflowDefinitionDAO> query, WorkflowDefinitionFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <WorkflowDefinitionDAO> initQuery = query.Where(q => false); foreach (WorkflowDefinitionFilter WorkflowDefinitionFilter in filter.OrFilter) { IQueryable <WorkflowDefinitionDAO> queryable = query; if (WorkflowDefinitionFilter.Id != null) { queryable = queryable.Where(q => q.Id, WorkflowDefinitionFilter.Id); } if (WorkflowDefinitionFilter.Code != null) { queryable = queryable.Where(q => q.Code, WorkflowDefinitionFilter.Code); } if (WorkflowDefinitionFilter.Name != null) { queryable = queryable.Where(q => q.Name, WorkflowDefinitionFilter.Name); } if (WorkflowDefinitionFilter.CreatorId != null) { queryable = queryable.Where(q => q.CreatorId, WorkflowDefinitionFilter.CreatorId); } if (WorkflowDefinitionFilter.ModifierId != null) { queryable = queryable.Where(q => q.ModifierId, WorkflowDefinitionFilter.ModifierId); } if (WorkflowDefinitionFilter.WorkflowTypeId != null) { queryable = queryable.Where(q => q.WorkflowTypeId, WorkflowDefinitionFilter.WorkflowTypeId); } if (WorkflowDefinitionFilter.StartDate != null) { queryable = queryable.Where(q => q.StartDate, WorkflowDefinitionFilter.StartDate); } if (WorkflowDefinitionFilter.EndDate != null) { queryable = queryable.Where(q => q.EndDate, WorkflowDefinitionFilter.EndDate); } if (WorkflowDefinitionFilter.StatusId != null) { queryable = queryable.Where(q => q.StatusId, WorkflowDefinitionFilter.StatusId); } if (WorkflowDefinitionFilter.UpdatedAt != null) { queryable = queryable.Where(q => q.UpdatedAt, WorkflowDefinitionFilter.UpdatedAt); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <WorkflowDefinitionDAO> DynamicFilter(IQueryable <WorkflowDefinitionDAO> query, WorkflowDefinitionFilter filter) { if (filter == null) { return(query.Where(q => false)); } query = query.Where(q => !q.DeletedAt.HasValue); if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.Code != null) { query = query.Where(q => q.Code, filter.Code); } if (filter.Name != null) { query = query.Where(q => q.Name, filter.Name); } if (filter.CreatorId != null) { query = query.Where(q => q.CreatorId, filter.CreatorId); } if (filter.ModifierId != null) { query = query.Where(q => q.ModifierId, filter.ModifierId); } if (filter.WorkflowTypeId != null) { query = query.Where(q => q.WorkflowTypeId, filter.WorkflowTypeId); } if (filter.StartDate != null) { query = query.Where(q => q.StartDate, filter.StartDate); } if (filter.EndDate != null) { query = query.Where(q => q.EndDate, filter.EndDate); } if (filter.StatusId != null) { query = query.Where(q => q.StatusId, filter.StatusId); } if (filter.CreatedAt != null) { query = query.Where(q => q.CreatedAt, filter.CreatedAt); } if (filter.UpdatedAt != null) { query = query.Where(q => q.UpdatedAt, filter.UpdatedAt); } query = OrFilter(query, filter); return(query); }
private async Task <List <WorkflowDefinition> > DynamicSelect(IQueryable <WorkflowDefinitionDAO> query, WorkflowDefinitionFilter filter) { List <WorkflowDefinition> WorkflowDefinitions = await query.Select(q => new WorkflowDefinition() { Id = filter.Selects.Contains(WorkflowDefinitionSelect.Id) ? q.Id : default(long), Code = filter.Selects.Contains(WorkflowDefinitionSelect.Code) ? q.Code : default(string), Name = filter.Selects.Contains(WorkflowDefinitionSelect.Name) ? q.Name : default(string), CreatorId = filter.Selects.Contains(WorkflowDefinitionSelect.Creator) ? q.CreatorId : default(long), ModifierId = filter.Selects.Contains(WorkflowDefinitionSelect.Modifier) ? q.ModifierId : default(long), WorkflowTypeId = filter.Selects.Contains(WorkflowDefinitionSelect.WorkflowType) ? q.WorkflowTypeId : default(long), StartDate = filter.Selects.Contains(WorkflowDefinitionSelect.StartDate) ? q.StartDate : default(DateTime?), EndDate = filter.Selects.Contains(WorkflowDefinitionSelect.EndDate) ? q.EndDate : default(DateTime?), StatusId = filter.Selects.Contains(WorkflowDefinitionSelect.Status) ? q.StatusId : default(long), CreatedAt = filter.Selects.Contains(WorkflowDefinitionSelect.CreatedAt) ? q.CreatedAt : default(DateTime), UpdatedAt = filter.Selects.Contains(WorkflowDefinitionSelect.UpdatedAt) ? q.UpdatedAt : default(DateTime), Creator = filter.Selects.Contains(WorkflowDefinitionSelect.Creator) && q.Creator != null ? new AppUser { Id = q.Creator.Id, Username = q.Creator.Username, DisplayName = q.Creator.DisplayName, Address = q.Creator.Address, Email = q.Creator.Email, Phone = q.Creator.Phone, } : null, Modifier = filter.Selects.Contains(WorkflowDefinitionSelect.Modifier) && q.Modifier != null ? new AppUser { Id = q.Modifier.Id, Username = q.Modifier.Username, DisplayName = q.Modifier.DisplayName, Address = q.Modifier.Address, Email = q.Modifier.Email, Phone = q.Modifier.Phone, } : null, WorkflowType = filter.Selects.Contains(WorkflowDefinitionSelect.WorkflowType) && q.WorkflowType != null ? new WorkflowType { Id = q.WorkflowType.Id, Code = q.WorkflowType.Code, Name = q.WorkflowType.Name, } : null, Status = filter.Selects.Contains(WorkflowDefinitionSelect.Status) && q.Status != null ? new Status { Id = q.Status.Id, Code = q.Status.Code, Name = q.Status.Name, } : null, }).ToListAsync(); return(WorkflowDefinitions); }
private IQueryable <WorkflowDefinitionDAO> DynamicOrder(IQueryable <WorkflowDefinitionDAO> query, WorkflowDefinitionFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case WorkflowDefinitionOrder.Id: query = query.OrderBy(q => q.Id); break; case WorkflowDefinitionOrder.Code: query = query.OrderBy(q => q.Code); break; case WorkflowDefinitionOrder.Name: query = query.OrderBy(q => q.Name); break; case WorkflowDefinitionOrder.WorkflowType: query = query.OrderBy(q => q.WorkflowTypeId); break; case WorkflowDefinitionOrder.Modifier: query = query.OrderBy(q => q.Modifier); break; case WorkflowDefinitionOrder.Creator: query = query.OrderBy(q => q.CreatorId); break; case WorkflowDefinitionOrder.StartDate: query = query.OrderBy(q => q.StartDate); break; case WorkflowDefinitionOrder.EndDate: query = query.OrderBy(q => q.EndDate); break; case WorkflowDefinitionOrder.Status: query = query.OrderBy(q => q.StatusId); break; case WorkflowDefinitionOrder.CreatedAt: query = query.OrderBy(q => q.CreatedAt); break; case WorkflowDefinitionOrder.UpdatedAt: query = query.OrderBy(q => q.UpdatedAt); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case WorkflowDefinitionOrder.Id: query = query.OrderByDescending(q => q.Id); break; case WorkflowDefinitionOrder.Code: query = query.OrderByDescending(q => q.Code); break; case WorkflowDefinitionOrder.Name: query = query.OrderByDescending(q => q.Name); break; case WorkflowDefinitionOrder.Creator: query = query.OrderByDescending(q => q.CreatorId); break; case WorkflowDefinitionOrder.Modifier: query = query.OrderByDescending(q => q.Modifier); break; case WorkflowDefinitionOrder.WorkflowType: query = query.OrderByDescending(q => q.WorkflowTypeId); break; case WorkflowDefinitionOrder.StartDate: query = query.OrderByDescending(q => q.StartDate); break; case WorkflowDefinitionOrder.EndDate: query = query.OrderByDescending(q => q.EndDate); break; case WorkflowDefinitionOrder.Status: query = query.OrderByDescending(q => q.StatusId); break; case WorkflowDefinitionOrder.UpdatedAt: query = query.OrderByDescending(q => q.UpdatedAt); break; case WorkflowDefinitionOrder.CreatedAt: query = query.OrderByDescending(q => q.CreatedAt); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
public async Task <FileResult> Export([FromBody] WorkflowDirection_WorkflowDirectionFilterDTO WorkflowDirection_WorkflowDirectionFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } MemoryStream memoryStream = new MemoryStream(); using (ExcelPackage excel = new ExcelPackage(memoryStream)) { #region WorkflowDirection var WorkflowDirectionFilter = ConvertFilterDTOToFilterEntity(WorkflowDirection_WorkflowDirectionFilterDTO); WorkflowDirectionFilter.Skip = 0; WorkflowDirectionFilter.Take = int.MaxValue; WorkflowDirectionFilter = WorkflowDirectionService.ToFilter(WorkflowDirectionFilter); List <WorkflowDirection> WorkflowDirections = await WorkflowDirectionService.List(WorkflowDirectionFilter); var WorkflowDirectionHeaders = new List <string[]>() { new string[] { "Id", "WorkflowDefinitionId", "FromStepId", "ToStepId", "SubjectMailForCreator", "SubjectMailForNextStep", "BodyMailForCreator", "BodyMailForNextStep", } }; List <object[]> WorkflowDirectionData = new List <object[]>(); for (int i = 0; i < WorkflowDirections.Count; i++) { var WorkflowDirection = WorkflowDirections[i]; WorkflowDirectionData.Add(new Object[] { WorkflowDirection.Id, WorkflowDirection.WorkflowDefinitionId, WorkflowDirection.FromStepId, WorkflowDirection.ToStepId, WorkflowDirection.SubjectMailForCreator, WorkflowDirection.SubjectMailForNextStep, WorkflowDirection.BodyMailForCreator, WorkflowDirection.BodyMailForNextStep, }); } excel.GenerateWorksheet("WorkflowDirection", WorkflowDirectionHeaders, WorkflowDirectionData); #endregion #region WorkflowStep var WorkflowStepFilter = new WorkflowStepFilter(); WorkflowStepFilter.Selects = WorkflowStepSelect.ALL; WorkflowStepFilter.OrderBy = WorkflowStepOrder.Id; WorkflowStepFilter.OrderType = OrderType.ASC; WorkflowStepFilter.Skip = 0; WorkflowStepFilter.Take = int.MaxValue; List <WorkflowStep> WorkflowSteps = await WorkflowStepService.List(WorkflowStepFilter); var WorkflowStepHeaders = new List <string[]>() { new string[] { "Id", "WorkflowDefinitionId", "Name", "RoleId", "SubjectMailForReject", "BodyMailForReject", } }; List <object[]> WorkflowStepData = new List <object[]>(); for (int i = 0; i < WorkflowSteps.Count; i++) { var WorkflowStep = WorkflowSteps[i]; WorkflowStepData.Add(new Object[] { WorkflowStep.Id, WorkflowStep.WorkflowDefinitionId, WorkflowStep.Name, WorkflowStep.RoleId, WorkflowStep.SubjectMailForReject, WorkflowStep.BodyMailForReject, }); } excel.GenerateWorksheet("WorkflowStep", WorkflowStepHeaders, WorkflowStepData); #endregion #region WorkflowDefinition var WorkflowDefinitionFilter = new WorkflowDefinitionFilter(); WorkflowDefinitionFilter.Selects = WorkflowDefinitionSelect.ALL; WorkflowDefinitionFilter.OrderBy = WorkflowDefinitionOrder.Id; WorkflowDefinitionFilter.OrderType = OrderType.ASC; WorkflowDefinitionFilter.Skip = 0; WorkflowDefinitionFilter.Take = int.MaxValue; List <WorkflowDefinition> WorkflowDefinitions = await WorkflowDefinitionService.List(WorkflowDefinitionFilter); var WorkflowDefinitionHeaders = new List <string[]>() { new string[] { "Id", "Name", "WorkflowTypeId", "StartDate", "EndDate", "StatusId", } }; List <object[]> WorkflowDefinitionData = new List <object[]>(); for (int i = 0; i < WorkflowDefinitions.Count; i++) { var WorkflowDefinition = WorkflowDefinitions[i]; WorkflowDefinitionData.Add(new Object[] { WorkflowDefinition.Id, WorkflowDefinition.Name, WorkflowDefinition.WorkflowTypeId, WorkflowDefinition.StartDate, WorkflowDefinition.EndDate, WorkflowDefinition.StatusId, }); } excel.GenerateWorksheet("WorkflowDefinition", WorkflowDefinitionHeaders, WorkflowDefinitionData); #endregion excel.Save(); } return(File(memoryStream.ToArray(), "application/octet-stream", "WorkflowDirection.xlsx")); }