Exemplo n.º 1
0
        public List <KanbanGroup> GetData(ApiMissionVnextKanbanContent data)
        {
            var list = new List <KanbanGroup>();

            _groupedIds = new List <string>();

            foreach (var item in data.Data.References.Groups)
            {
                _groupedIds.AddRange(item.TaskIds);
                var kbGroup = new KanbanGroup
                {
                    Header = item.Name
                };
                foreach (var taskId in item.TaskIds)
                {
                    ReadKanbanItem(data, kbGroup, taskId);
                }
                list.Add(kbGroup);
            }

            var unGroup = new KanbanGroup
            {
                Header = "未分组"
            };
            var unGroupIds = data.Data.Value.Where(v => !_groupedIds.Contains(v.Id));

            foreach (var item in unGroupIds)
            {
                ReadKanbanItem(data, unGroup, item.Id);
            }
            list.Insert(0, unGroup);
            return(list);
        }
Exemplo n.º 2
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            var kbp = new KanbanItemProperty
            {
                Name = property.Name
            };

            SetColor(kbp, setting.Color);

            JObject jObj = JObject.FromObject(task);
            var     span = JTokenHelper.GetPropertyValue <DateSpan>(jObj, property.Key);

            if (span.Begin.Date.HasValue && span.End.Date.HasValue)
            {
                kbp.Value = WtDateTimeHelper.ToWtKanbanDate(span.Begin.Date.Value)
                            + " ~ "
                            + WtDateTimeHelper.ToWtKanbanDate(span.End.Date.Value);
                kanban.Properties.Add(kbp);
            }
        }
Exemplo n.º 3
0
 public abstract void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data);
Exemplo n.º 4
0
 public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
 {
     kanban.State = new Models.TaskState
     {
         Name       = state.Name,
         Foreground = WtColorHelper.GetNewColor(state.Color),
         BoldGlyph  = WtIconHelper.GetBoldGlyph(state.Type)
     };
 }
Exemplo n.º 5
0
 public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
 {
     if (property.RawKey == "title")
     {
         kanban.Title = task.Title;
     }
     else
     {
         JObject jObj  = JObject.FromObject(task);
         string  value = JTokenHelper.GetPropertyValue <string>(jObj, property.Key);
         if (value != null)
         {
             var kbp = new KanbanItemProperty
             {
                 Name  = property.Name,
                 Value = value
             };
             SetColor(kbp, setting.Color);
             kanban.Properties.Add(kbp);
         }
     }
 }
Exemplo n.º 6
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            var kbp = new KanbanItemProperty
            {
                Name = "实际工时"
            };

            SetColor(kbp, setting.Color);

            JObject jObj     = JObject.FromObject(task);
            var     workload = JTokenHelper.GetPropertyValue <WorkloadValue>(jObj, property.Key);

            if (workload.Actual != 0)
            {
                kbp.Value = workload.Actual.ToString();
                kanban.Properties.Add(kbp);
            }
        }
Exemplo n.º 7
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            var kbp = new KanbanItemProperty
            {
                Name = property.Name
            };

            SetColor(kbp, setting.Color);

            JObject jObj = JObject.FromObject(task);
            string  uid  = JTokenHelper.GetPropertyValue <string>(jObj, property.Key);

            if (!string.IsNullOrEmpty(uid))
            {
                var avatar = AvatarHelper.GetAvatar(uid, AvatarSize.X40);
                if (property.RawKey == "assignee")
                {
                    kanban.Due = avatar;
                }
                else
                {
                    kbp.Value = avatar.DisplayName;
                    kanban.Properties.Add(kbp);
                }
            }
        }
Exemplo n.º 8
0
        private void ReadKanbanItem(ApiMissionVnextKanbanContent data, KanbanGroup kbGroup, string taskId)
        {
            var task  = data.Data.Value.Single(v => v.Id == taskId);
            var type  = data.Data.References.TaskTypes.Single(t => t.Id == task.TaskTypeId);
            var state = data.Data.References.Lookups.TaskStates.Single(t => t.Id == task.TaskStateId);

            KanbanPageHelper.ReadForProgressBar(kbGroup, state.Type);

            var kanban = new KanbanItem
            {
                Id       = task.Id,
                TaskType = new Models.TaskType
                {
                    Name  = type.Name,
                    Color = WtColorHelper.GetColorByClass(type.Icon),
                    Glyph = WtIconHelper.GetGlyph("wtf-type-" + type.Icon),
                },
                Properties = new List <KanbanItemProperty>()
            };

            foreach (var item in type.ShowSettings)
            {
                var            property = data.Data.References.Properties.Single(p => p.Id == item.TaskPropertyId);
                PropertyReader reader   = null;
                switch (property.Type)
                {
                case WtTaskPropertyType.Text:
                    reader = new TextReader();
                    break;

                case WtTaskPropertyType.DateTime:
                    reader = new DateTimeReader();
                    break;

                case WtTaskPropertyType.DateSpan:
                    reader = new DateSpanReader();
                    break;

                case WtTaskPropertyType.Member:
                    reader = new MemberReader();
                    break;

                case WtTaskPropertyType.Workload:
                    reader = new WorkloadReader();
                    break;

                case WtTaskPropertyType.State:
                    reader = new TaskStateReader();
                    break;

                case WtTaskPropertyType.Tag:
                    reader = new TagReader();
                    break;

                case WtTaskPropertyType.Priority:
                    reader = new PriorityReader();
                    break;

                case WtTaskPropertyType.File:
                    reader = new AttachmentReader();
                    break;

                case WtTaskPropertyType.TaskType:
                    continue;

                default:
                    reader = new DefaultReader();
                    break;
                }
                reader.Read(kanban, property, task, state, item, data);
            }

            kbGroup.Items.Add(kanban);
        }
Exemplo n.º 9
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            var kbp = new KanbanItemProperty
            {
                Name = property.Name
            };

            SetColor(kbp, setting.Color);

            JObject jObj = JObject.FromObject(task);
            WtDate  date = null;

            if (property.Key.Count(k => k == '.') > 0)
            {
                date = JTokenHelper.GetPropertyValue <WtDate>(jObj, property.Key);
            }
            else
            {
                date = new WtDate();
                string timestamp = jObj[property.Key].Value <string>();
                if (timestamp != null)
                {
                    date.Date = WtDateTimeHelper.GetDateTime(timestamp);
                }
            }

            if (date.Date.HasValue)
            {
                kbp.Value = date.Date.Value.ToWtKanbanDate();
                if (property.RawKey == "due" && date.Date.Value < DateTime.Now)
                {
                    kbp.Foreground = WtColorHelper.DangerColor;
                    kbp.Background = WtColorHelper.DangerColor1A;
                }
                kanban.Properties.Add(kbp);
            }
        }
Exemplo n.º 10
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            JObject jObj = JObject.FromObject(task);

            string[] files = JTokenHelper.GetPropertyValue <string[]>(jObj, property.Key);
            kanban.AttachmentCount = files.Length;
        }
Exemplo n.º 11
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            JObject jObj = JObject.FromObject(task);

            string[] tagIds = JTokenHelper.GetPropertyValue <string[]>(jObj, property.Key);
            if (tagIds.Length > 0)
            {
                foreach (var id in tagIds)
                {
                    var tag = data.Data.References.Lookups.Tags.Single(t => t.Id == id);
                    var kbp = new KanbanItemProperty
                    {
                        Value      = tag.Name,
                        Foreground = new SolidColorBrush(Colors.White),
                        Background = WtColorHelper.GetNewBrush(tag.Color)
                    };
                    kanban.Properties.Add(kbp);
                }
            }
        }
Exemplo n.º 12
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            JObject jObj  = JObject.FromObject(task);
            var     value = JTokenHelper.GetPropertyValue <string>(jObj, property.Key);

            if (value != null)
            {
                var priority = data.Data.References.Lookups.Priorities.Single(p => p.Id == value);
                kanban.Priority = WtColorHelper.GetNewBrush(priority.Color);
            }
        }
Exemplo n.º 13
0
        public override void Read(KanbanItem kanban, WtTaskProperty property, ValueElement task, TaskState state, ShowSetting setting, ApiMissionVnextKanbanContent data)
        {
            var kbp = new KanbanItemProperty
            {
                Name = property.Name
            };

            SetColor(kbp, setting.Color);

            JObject jObj  = JObject.FromObject(task);
            string  value = JTokenHelper.GetPropertyValue <string>(jObj, property.Key);

            if (value != null)
            {
                if (property.Lookup == null)
                {
                    kbp.Value = value;
                }
                else
                {
                    JObject lookup = JObject.FromObject(data.Data.References.Lookups);
                    var     jItem  = lookup[property.Lookup].Single(item => item["_id"].Value <string>() == value);
                    if (jItem is JObject obj)
                    {
                        if (obj.ContainsKey("name"))
                        {
                            kbp.Value = jItem["name"].Value <string>();
                            kanban.Properties.Add(kbp);
                        }
                        else if (obj.ContainsKey("text"))
                        {
                            kbp.Value = jItem["text"].Value <string>();
                            kanban.Properties.Add(kbp);
                        }
                    }
                }
            }
        }