Ejemplo n.º 1
0
 private Contribution CreateContribution(PartyGoer partyGoer, UserContribution userContribution)
 {
     return(new Contribution
     {
         ContributedBy = partyGoer.GetSpotifyId(),
         ContributionId = Guid.NewGuid(),
         Id = userContribution.Id,
         Type = userContribution.Type,
         Name = userContribution.Name
     });
 }
        public List <UserContribution> CalculateUserContributions(ProjectModel project)
        {
            List <UserContribution> userContributionList = new List <UserContribution>();

            var userAccessList            = _dataManager.GetUserAccessOnProject(project.Id);
            var userList                  = _dataManager.UserList;
            var taskList                  = _dataManager.FindTasksByProjectId(project.Id);
            var taskDificultyLevels       = _dataManager.TaskDificultyLevels;
            List <UserModel> allowedUsers = new List <UserModel>();

            userAccessList.ForEach(userAccess =>
            {
                var result = userList.Find(user => user.Id.Equals(userAccess.UserId));
                allowedUsers.Add(result);
            });

            int totalContributionPoints = 0;

            foreach (var taskModel in taskList)
            {
                if (taskModel.Status.Equals(TaskState.Finished))
                {
                    var taskDificulty = taskDificultyLevels.Find(dificultyLevel => dificultyLevel.Id == taskModel.TaskDificultyId);
                    totalContributionPoints += taskDificulty.ContributionPoints;
                }
            }
            foreach (var user in allowedUsers)
            {
                List <TaskModel> userTaskList = taskList.FindAll(task => task.ResponsibleUserId.Equals(user.Id) &&
                                                                 task.Status.Equals(TaskState.Finished));
                int contributionPoints = 0;
                foreach (var task in userTaskList)
                {
                    var taskDificulty = taskDificultyLevels.Find(t => t.Id.Equals(task.TaskDificultyId));
                    if (taskDificulty != null)
                    {
                        contributionPoints += taskDificulty.ContributionPoints;
                    }
                }

                double contributionPercentage = 0;
                try
                {
                    contributionPercentage = contributionPoints * 100 / totalContributionPoints;
                }
                catch (DivideByZeroException)
                {
                    //TODO: Add message maybe
                }



                var contributionViewModel = new UserContribution()
                {
                    Name = user.UserName,
                    ContributionPoints     = contributionPoints,
                    ContributionPercentage = contributionPercentage
                };
                userContributionList.Add(contributionViewModel);
            }

            return(userContributionList.OrderByDescending(contribution => totalContributionPoints).ToList());
        }
Ejemplo n.º 3
0
        public static void OpenChildFormUserContribution(Form1 mainApplication)
        {
            UserContribution userContribution = new UserContribution();

            ConfigureChildForm(userContribution, mainApplication);
        }