示例#1
0
 // Helper method
 public string getRoleDisplayName()
 {
     try
     {
         if (RoleTitle.Equals(EmployeeModel.EMP_ROLE_COORDINATOR))
         {
             return("samordnare");
         }
         if (RoleTitle.Equals(EmployeeModel.EMP_ROLE_MANAGER))
         {
             return("avdelningschef");
         }
         // if coordinator
         return("handläggare");
     }
     catch (System.Exception)
     {
         throw new System.Exception("Error in Employee");
     }
 }
        private async Task <List <EffortUsedByRoleByDate> > CalculateACByDateByRole(string projectGid, string taskGid, DateTime date, List <TimeEntryWithRoleViewModel> timeEntriesByTask)
        {
            // 取出所有的role
            var roles = await _roleTitleService.GetAllInternalRoles();

            var acByRoles = new List <EffortUsedByRoleByDate>();
            //foreach (var role in roles)
            //{
            //    acByRoles.Add(new EffortUsedAccountingViewModel()
            //    {
            //        RoleId = role.Id,
            //        TotalHours = 0,
            //        TotalHoursRate = 0,
            //        RoleName = role.Title,
            //        RoleRate = role.Rate
            //    });
            //}

            var timeEntriesByRole = timeEntriesByTask.Where(a => a.Date.Date == date.Date).GroupBy(a => a.RoleId);

            foreach (var r in timeEntriesByRole)
            {
                var roleId = r.Key;
                var role   = roles.FirstOrDefault(a => a.Id == roleId);
                if (role == null)
                {
                    role = new RoleTitle()
                    {
                        Id         = 0,
                        Rate       = 100,
                        Title      = "Default Title",
                        Category   = "Others Category",
                        ShortTitle = "Default",
                        Type       = "internal",
                        Sort       = 1000
                    };
                }
                var totalHours     = r.Sum(a => a.TotalHours);
                var totalHoursRate = totalHours * role.Rate;

                var acRole = acByRoles.FirstOrDefault(a => a.RoleId == roleId);
                if (acRole == null)
                {
                    acRole = new EffortUsedByRoleByDate()
                    {
                        RoleId         = role.Id,
                        TotalHours     = 0,
                        TotalHoursRate = 0,
                        RoleName       = role.Title,
                        RoleRate       = role.Rate,
                        Date           = date,
                        ProjectGid     = projectGid,
                        TaskGid        = taskGid,
                        RoleCategory   = role.Category,
                        RoleShortTitle = role.ShortTitle
                    };
                    acByRoles.Add(acRole);
                }
                acRole.TotalHours     = totalHours;
                acRole.TotalHoursRate = totalHoursRate;
            }

            return(acByRoles);
        }
示例#3
0
        public static async Task <UserRoles> CreateUserRoleAssociation(int newUserId, RoleTitle roleId, HelpDeskContext _context)
        {
            UserRoles newUserRole = new UserRoles()
            {
                UserId = newUserId,
                RoleId = (int)roleId
            };

            // Add user role to database
            _context.UserRoles.Add(newUserRole);
            await _context.SaveChangesAsync();

            return(newUserRole);
        }