Ejemplo n.º 1
0
        internal static async Task <AgilefantUser[]> GetAgilefantUsers(AgilefantSession session)
        {
            var response = await session.Post("ajax/userChooserData.action");

            response.EnsureSuccessStatusCode();

            var json = await response.Content.ReadAsStringAsync();

            var wrappers = JsonConvert.DeserializeObject <AgilefantUserWrapper[]>(json);

            return((from wrapper in wrappers select wrapper.OriginalObject).ToArray());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets all sprints for a project.
        /// </summary>
        /// <param name="projectId">ID of the project to get sprint for.</param>
        /// <param name="session">Session to use.</param>
        /// <returns>All sprints.</returns>
        public static async Task <AgilefantSprint[]> GetSprints(int projectId, AgilefantSession session)
        {
            var response = await session.Post("ajax/projectIterations.action", new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "projectId", projectId.ToString() }
            }));

            response.EnsureSuccessStatusCode();
            var json = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <AgilefantSprint[]>(json));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Updates an existing effort entry
        /// </summary>
        /// <param name="entry">The effort entry to update. This *MUST* have the correct id</param>
        /// <param name="session">The session</param>
        internal static System.Threading.Tasks.Task UpdateEffortEntry(AgilefantEffortEntry entry, AgilefantSession session)
        {
            var content = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "hourEntry.minutesSpent", entry.MinutesSpent.ToString() },
                { "hourEntry.date", entry.LogTimeMilliseconds.ToString() },
                { "hourEntry.description", entry.Comment },
                { "hourEntryId", entry.Id.ToString() },
            });

            return(session.Post("ajax/storeEffortEntry.action", content));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets an array of the backlogs for a team
        /// </summary>
        /// <param name="teamNumber">The team to get the backlog for</param>
        /// <param name="session">The session to operate within</param>
        /// <returns>The backlogs</returns>
        internal static async Task <AgilefantBacklog[]> GetAgilefantBacklogs(int teamNumber, AgilefantSession session)
        {
            var response = await session.Post("ajax/retrieveSubBacklogs.action", new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "backlogId", teamNumber.ToString() }
            }));

            response.EnsureSuccessStatusCode();

            var json = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <AgilefantBacklog[]>(json));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Adds an effort entry to the specified loggable
        /// </summary>
        /// <param name="parentObjectId">The id of the object to log against</param>
        /// <param name="entryDate">The date of the entry</param>
        /// <param name="minutesSpent">The time spent, in minutes</param>
        /// <param name="description">A description of the entry</param>
        /// <param name="users">The users to log against</param>
        /// <param name="session">The session</param>
        internal static async System.Threading.Tasks.Task LogTime(int parentObjectId, DateTime entryDate, int minutesSpent, string description,
                                                                  IEnumerable <int> users, AgilefantSession session)
        {
            //Get the time in milliseconds since the epoch
            var timeSinceEpoch = (long)(entryDate - new DateTime(1970, 1, 1)).TotalMilliseconds;

            var content = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("parentObjectId", parentObjectId.ToString()),
                new KeyValuePair <string, string>("hourEntry.date", timeSinceEpoch.ToString()),
                new KeyValuePair <string, string>("hourEntry.minutesSpent", minutesSpent.ToString()),
                new KeyValuePair <string, string>("hourEntry.description", description),
            };

            content.AddRange(users.Select(user => new KeyValuePair <string, string>("userIds", user.ToString())));

            var postData = new FormUrlEncodedContent(content);
            await session.Post("ajax/logTaskEffort.action", postData);
        }
Ejemplo n.º 6
0
        internal static async Task <AgilefantTime> GetTimes(int teamNumber, int backlogId, int sprintId, int userId,
                                                            AgilefantSession session)
        {
            var data = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "backlogSelectionType", "0" },
                { "productIds", teamNumber.ToString() },
                { "projectIds", backlogId.ToString() },
                { "iterationIds", sprintId.ToString() },
                { "interval", "NO_INTERVAL" },
                { "startDate", "" },
                { "endDate", "" },
                { "userIds", userId.ToString() },
            });

            var response = await session.Post("generateTree.action", data);

            response.EnsureSuccessStatusCode();

            var content = await response.Content.ReadAsStringAsync();

            return(ParseHtmlToTimes(content));
        }