Exemplo n.º 1
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
        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);
                }
            }
        }
Exemplo n.º 7
0
        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);
                }
            }
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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"));
        }
Exemplo n.º 11
0
        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));
            }
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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"));
        }