Exemple #1
0
        public async Task <List <PropertyListItem> > Handle(ProjectPropertyQuery request, CancellationToken cancellationToken)
        {
            var dbProperties = string.IsNullOrEmpty(request.ParentId)
                ? await _solutionProjectPropertyRepository.GetTopLevelByProjectId(request.ProjectId)
                : await _solutionProjectPropertyRepository.GetByParentId(Guid.Parse(request.ParentId));

            return(dbProperties.Select(x => new PropertyListItem()
            {
                Id = x.Id.ToString(),
                Level = x.Level,
                Type = x.Type.ToString(),
                Key = x.Key,
                Value = x.Type == PropertyType.Group ? "" : x.Value,
                IsObsolete = x.IsObsolete,
                CreatedOn = x.CreatedOn.ToString("yyyy-MM-dd HH:mm:ss"),
                LastUpdatedOn = x.LastUpdatedOn.ToString("yyyy-MM-dd HH:mm:ss")
            }).ToList());
        }
Exemple #2
0
        public async Task <List <PropertyListItem> > AllPropertyRecursion(Guid projectId, Guid?parentId, List <PropertyListItem> result)
        {
            if (!parentId.HasValue)
            {
                var dbProperties = await _solutionProjectPropertyRepository.GetTopLevelByProjectId(projectId);

                foreach (var item in dbProperties)
                {
                    result.Add(new PropertyListItem()
                    {
                        Id              = item.Id.ToString(),
                        Level           = item.Level,
                        Type            = item.Type.ToString(),
                        Key             = item.Key,
                        Value           = item.Value,
                        IsObsolete      = item.IsObsolete,
                        CreatedOn       = item.CreatedOn.ToString("yyyy-MM-dd HH:mm:ss"),
                        LastUpdatedOn   = item.LastUpdatedOn.ToString("yyyy-MM-dd HH:mm:ss"),
                        BackgroundColor = ConstValue.SafeColor[item.Level % ConstValue.SafeColor.Count],
                        Description     = item.Description
                    });
                    if (item.Type == PropertyType.Group)
                    {
                        result = await AllPropertyRecursion(projectId, item.Id, result);
                    }
                }

                return(result);
            }
            else
            {
                var dbProperties = await _solutionProjectPropertyRepository.GetByParentId(parentId.Value);

                foreach (var item in dbProperties)
                {
                    var preKey = new StringBuilder();
                    for (int i = 0; i < item.Level; i++)
                    {
                        preKey.Append("&nbsp;&nbsp;&nbsp;&nbsp;");
                    }

                    result.Add(new PropertyListItem()
                    {
                        Id              = item.Id.ToString(),
                        Level           = item.Level,
                        Type            = item.Type.ToString(),
                        Key             = preKey.ToString() + item.Key,
                        Value           = item.Value,
                        IsObsolete      = item.IsObsolete,
                        CreatedOn       = item.CreatedOn.ToString("yyyy-MM-dd HH:mm:ss"),
                        LastUpdatedOn   = item.LastUpdatedOn.ToString("yyyy-MM-dd HH:mm:ss"),
                        BackgroundColor = ConstValue.SafeColor[item.Level % ConstValue.SafeColor.Count],
                        Description     = item.Description
                    });
                    if (item.Type == PropertyType.Group)
                    {
                        result = await AllPropertyRecursion(projectId, item.Id, result);
                    }
                }

                return(result);
            }
        }