Exemplo n.º 1
0
        public void AddPlannedHoursToItem(string backlogItemUId, string roleUId, decimal hoursToAdd)
        {
            BacklogItem item = GetBacklogItem(backlogItemUId);

            if (item == null)
            {
                throw new WebFaultException <string>("Backlog item not found to replan hours", System.Net.HttpStatusCode.NotFound);
            }

            Project project = projectsService.GetProject(item.ProjectUId);

            // if is not a scrum master ignores it and return
            if (!project.HasPermission(authorizationService.SignedMemberProfile.MemberUId, PermissionSets.SCRUM_MASTER))
            {
                return;
            }

            PlannedHour hours = item.CurrentPlannedHours.SingleOrDefault(h => h.RoleUId == roleUId);

            if (hours == null)
            {
                hours = new PlannedHour()
                {
                    RoleUId = roleUId, BacklogItemUId = backlogItemUId, Hours = 0, PlanningNumber = project.CurrentPlanningNumber
                };
                item.PlannedHours.Add(hours);
            }

            hours.Hours += hoursToAdd;
            if (hours.Hours < 0)
            {
                hours.Hours = 0;
            }

            backlogRepository.SaveBacklogItem(item);
        }
Exemplo n.º 2
0
        public void AddPlannedHoursToItem(string backlogItemUId, string roleUId, decimal hoursToAdd)
        {
            BacklogItem item = GetBacklogItem(backlogItemUId);
            if (item == null)
                throw new WebFaultException<string>("Backlog item not found to replan hours", System.Net.HttpStatusCode.NotFound);

            Project project = projectsService.GetProject(item.ProjectUId);

            // if is not a scrum master ignores it and return
            if (!project.HasPermission(authorizationService.SignedMemberProfile.MemberUId, PermissionSets.SCRUM_MASTER))
                return;

            PlannedHour hours = item.CurrentPlannedHours.SingleOrDefault(h => h.RoleUId == roleUId);
            if (hours == null) {
                hours = new PlannedHour() { RoleUId = roleUId, BacklogItemUId = backlogItemUId, Hours = 0, PlanningNumber = project.CurrentPlanningNumber };
                item.PlannedHours.Add(hours);
            }

            hours.Hours += hoursToAdd;
            if (hours.Hours < 0)
                hours.Hours = 0;

            backlogRepository.SaveBacklogItem(item);
        }
Exemplo n.º 3
0
 internal void DuplicateBacklogItemHoursSameProject(BacklogItem newItem, BacklogItem fromItem, int? sprintNumber)
 {
     newItem.PlannedHours = new List<PlannedHour>();
     foreach (PlannedHour h in fromItem.CurrentPlannedHours) {
         if (Project.Roles.Any(r => r.RoleUId == h.RoleUId)) {
             PlannedHour hour = new PlannedHour { BacklogItemUId = newItem.BacklogItemUId, Hours = h.Hours, SprintNumber = sprintNumber, PlanningNumber = Project.CurrentPlanningNumber, RoleUId = h.RoleUId };
             newItem.PlannedHours.Add(hour);
         }
     }
 }
Exemplo n.º 4
0
 internal void DuplicateBacklogItemHours(BacklogItem newItem, BacklogItem fromItem, int? sprintNumber)
 {
     newItem.PlannedHours = new List<PlannedHour>();
     Role[] orderedRoles = Project.Roles.OrderBy(r => r.PermissionSet).ThenBy(r => r.RoleName).ThenBy(r => r.RoleShortName).ToArray();
     for(int i=0; i<orderedRoles.Length && i<fromItem.PlannedHours.Count; i++) {
         PlannedHour h = fromItem.PlannedHours[i];
         PlannedHour hour = new PlannedHour { BacklogItemUId = newItem.BacklogItemUId, Hours = h.Hours, SprintNumber = sprintNumber, PlanningNumber = Project.CurrentPlanningNumber, RoleUId = orderedRoles[i].RoleUId };
         newItem.PlannedHours.Add(hour);
     }
 }
 private void SetIdealHours()
 {
     idealHours = new List<PlannedHour>();
     if (ItemSize != null && ItemSize.ItemSize != null && SuggestedHours!=null) {
         foreach (PlannedHour h in SuggestedHours) {
             PlannedHour i = new PlannedHour() { Role = h.Role, Hours = 0 };
             if (ItemSize.ItemSize.SizeIdealHours != null) {
                 SizeIdealHour ideal = ItemSize.ItemSize.SizeIdealHours.SingleOrDefault(ih => ih.RoleShortName.ToLower() == h.Role.RoleShortName.ToLower());
                 if (ideal != null)
                     i.Hours = ideal.Hours * SizeFactor;
             }
             idealHours.Add(i);
         }
     }
     OnPropertyChanged("IdealHours");
 }