Beispiel #1
0
        internal QueryParameters ToApiParameters(bool toCreate)
        {
            var parameters = new QueryParameters();

            parameters.Add("summary", Summary, toCreate);
            parameters.Add("issueTypeId", Type.Id, toCreate);
            parameters.Add("priorityId", Priority.Id, toCreate);

            parameters.Add("description", Description ?? "");
            parameters.Add("dueDate", DueDate?.ToString("yyyy-MM-dd") ?? "");
            parameters.Add("startDate", StartDate?.ToString("yyyy-MM-dd") ?? "");
            parameters.AddRange("categoryId[]", Categories.Select(x => x.Id));
            parameters.AddRange("versionId[]", Versions.Select(x => x.Id));
            parameters.AddRange("milestoneId[]", Milestones.Select(x => x.Id));
            parameters.AddRange("attachmentId[]", Attachments.Select(x => x.Id));
            parameters.Add("parentIssueId", ParentTicketId?.ToString() ?? "");
            parameters.Add("estimatedHours", EstimatedHours?.ToString() ?? "");
            parameters.Add("actualHours", ActualHours?.ToString() ?? "");
            parameters.Add("assigneeId", Assignee?.Id.ToString() ?? "");

            if (!toCreate)
            {
                parameters.Add("statusId", Status?.Id.ToString() ?? "");
                parameters.Add("resolutionId", Resolution?.Id.ToString() ?? "");
            }

            if (CustomFields != null)
            {
                foreach (var field in CustomFields)
                {
                    parameters.Add($"customField_{field.Id}", field.ToJsonValue());
                    if (field.OtherValue != null)
                    {
                        parameters.Add($"customField_{field.Id}_otherValue", field.OtherValue);
                    }
                }
            }

            return(parameters);
        }