Ejemplo n.º 1
0
        /// <summary>
        /// This method fetches role based functions for the current user
        /// </summary>
        /// <param name="userUnitInfo">user unit information</param>
        /// <returns>functions available for current user</returns>
        public async Task <List <RoleAccessDataDTO> > GetRoleBasedAccessFunctions(UserUnitInfoDataDTO userUnitInfo)
        {
            string methodName = typeof(ActionManagerDataService) + "." + nameof(GetRoleBasedAccessFunctions);

            using (loggingHelper.RMTraceManager.StartTrace("DataService.GetRoleBasedAccessFunctions"))
            {
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                var roleAccessDataDto = await DataContext.AccessFunctions.AsNoTracking()
                                        .Where(x => x.UserName.Equals(userUnitInfo.UserName) && x.LocationID.Equals(userUnitInfo.LocationId))
                                        .Select(x => new RoleAccessDataDTO
                {
                    RoleName     = x.RoleName,
                    Unit_GUID    = x.LocationID,
                    UserName     = x.UserName,
                    FunctionName = x.FunctionName,
                    ActionName   = x.ActionName,
                    UserId       = x.UserId,
                    UnitType     = userUnitInfo.UnitType,
                    UnitName     = userUnitInfo.UnitName
                }).ToListAsync();

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                return(roleAccessDataDto);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This method fetches information for units above mail center for the current user
        /// </summary>
        /// <param name="userName">username</param>
        /// <param name="locationId">unit id</param>
        /// <returns>unit details</returns>
        public async Task <UserUnitInfoDataDTO> GetUserUnitInfoFromReferenceData(string userName, Guid locationId)
        {
            string methodName = typeof(ActionManagerDataService) + "." + nameof(GetUserUnitInfoFromReferenceData);

            using (loggingHelper.RMTraceManager.StartTrace("DataService.GetUserUnitFromReferenceData"))
            {
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                UserUnitInfoDataDTO userUnitDetails = null;
                if (locationId == Guid.Empty)
                {
                    userUnitDetails = await(from r in DataContext.UserRoleLocations.AsNoTracking()
                                            join u in DataContext.Users on r.UserID equals u.ID
                                            join l in DataContext.LocationReferenceDatas on r.LocationID equals l.LocationID
                                            join rd in DataContext.ReferenceDatas on l.ReferenceDataID equals rd.ID
                                            where u.UserName == userName
                                            select new UserUnitInfoDataDTO
                    {
                        LocationId = l.LocationID,
                        UnitName   = rd.ReferenceDataValue,
                        UnitType   = rd.ReferenceDataValue
                    }).FirstOrDefaultAsync();
                }
                else
                {
                    userUnitDetails = await(from r in DataContext.UserRoleLocations.AsNoTracking()
                                            join u in DataContext.Users on r.UserID equals u.ID
                                            join l in DataContext.LocationReferenceDatas on r.LocationID equals l.LocationID
                                            join rd in DataContext.ReferenceDatas on l.ReferenceDataID equals rd.ID
                                            where u.UserName == userName && r.LocationID == locationId
                                            select new UserUnitInfoDataDTO
                    {
                        LocationId = l.LocationID,
                        UnitName   = rd.ReferenceDataValue,
                        UnitType   = rd.ReferenceDataValue
                    }).FirstOrDefaultAsync();
                }

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                return(userUnitDetails);
            }
        }
        /// <summary>
        /// This method fetches role based functions for the current user
        /// </summary>
        /// <param name="userUnitInfo">user unit information</param>
        /// <returns>functions available for current user</returns>
        public async Task <List <RoleAccessDTO> > GetRoleBasedAccessFunctions(UserUnitInfoDTO userUnitInfo)
        {
            string methodName = typeof(ActionManagerBusinessService) + "." + nameof(GetRoleBasedAccessFunctions);

            using (loggingHelper.RMTraceManager.StartTrace("BusinessService.GetRoleBasedAccessFunctions"))
            {
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                // mapping public DTO to dataDTO
                UserUnitInfoDataDTO userUnitInfoDataDTO = GenericMapper.Map <UserUnitInfoDTO, UserUnitInfoDataDTO>(userUnitInfo);

                var roleAccessDataDto = await actionManagerDataService.GetRoleBasedAccessFunctions(userUnitInfoDataDTO);

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);

                // mapping dataDTO to public DTO
                List <RoleAccessDTO> roleAccessDTO = GenericMapper.MapList <RoleAccessDataDTO, RoleAccessDTO>(roleAccessDataDto);
                return(roleAccessDTO);
            }
        }