コード例 #1
0
        public dynamic GetDashboard(DashboardInput userInfo)
        {
            IDashBoardRepository objDBRepository = new DashboardRepository();
            var result = objDBRepository.Get(userInfo);

            return(result);
        }
コード例 #2
0
 public int UpdateDashboard(
     DashboardInput input,
     [CurrentUserGlobalState] CurrentUser user,
     [Service] IUserRepository repo
     )
 {
     return(repo.UpdateDashboard(user.UserId, input).Result);
 }
コード例 #3
0
        public async Task <ServiceResponse <dynamic> > GetDashBoardData(DashboardInput dashboardInput)
        {
            var response = new ServiceResponse <dynamic>();

            try
            {
                var user            = _context.Users.Find(LoggedInUser);
                var candidateStatus = await(from x in _context.MasterData
                                            join y in _context.MasterDataType on x.type equals y.id
                                            where y.name == "JobCandidateStatus"
                                            select x).ToListAsync();

                var candidates = await(from x in _context.JobCandidates
                                       join j in _context.Openings on x.jobid equals j.id
                                       where j.country == user.country && (dashboardInput.recruiter == 0 ? true : (dashboardInput.recruiter == x.createdBy || dashboardInput.recruiter == x.modifiedBy)) &&
                                       (dashboardInput.dateFrom.HasValue ? x.createdDate.Value.Date >= dashboardInput.dateFrom.Value.Date : true) &&
                                       (dashboardInput.dateTo.HasValue ? x.createdDate.Value.Date <= dashboardInput.dateTo.Value.Date : true)
                                       select x).ToListAsync();

                var res = (from x in candidateStatus
                           join y in candidates on x.id equals y.status
                           group x by x.name into g
                           select new KeyValuePair <string, int>(g.Key, g.Count())).ToList();

                var recruitcare = await(from x in _context.RecruitCare
                                        join j in _context.Openings on x.jobid equals j.id
                                        where j.country == user.country && (dashboardInput.recruiter == 0 ? true : (dashboardInput.recruiter == x.createdBy || dashboardInput.recruiter == x.modifiedBy)) &&
                                        (dashboardInput.dateFrom.HasValue ? x.createdDate.Value.Date >= dashboardInput.dateFrom.Value.Date : true) &&
                                        (dashboardInput.dateTo.HasValue ? x.createdDate.Value.Date <= dashboardInput.dateTo.Value.Date : true)
                                        select x).ToListAsync();

                var resRec = (from x in candidateStatus
                              join y in recruitcare on x.id equals y.status
                              group x by x.name into g
                              select new KeyValuePair <string, int>(g.Key, g.Count())).ToList();


                List <KeyValuePair <string, KeyValuePair <int, int> > > result = new List <KeyValuePair <string, KeyValuePair <int, int> > >();
                foreach (var item in candidateStatus)
                {
                    var count = 0;
                    count = (count + res.FirstOrDefault(x => x.Key == item.name).Value);
                    count = (count + resRec.FirstOrDefault(x => x.Key == item.name).Value);
                    result.Add(new KeyValuePair <string, KeyValuePair <int, int> >(item.name, new KeyValuePair <int, int>(item.id, count)));
                }
                response.Data    = result;;
                response.Message = "Data Retrived";
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = await CustomLog.Log(ex, _context);
            }

            return(response);
        }
コード例 #4
0
        public dynamic Get(DashboardInput userInfo)
        {
            DSEEntities           objEntities       = new DSEEntities();
            List <Activity>       privateActivities = new List <Activity>();
            List <Group>          userCreatedGroups = new List <Group>();
            List <User_Request>   userRequests      = new List <User_Request>();
            List <Activity_Group> groupActivities   = new List <Activity_Group>();
            List <Group>          user_groups       = new List <Group>();
            var publicActivites   = objEntities.Activities.Where(act => act.type == 1).ToList();
            var createdActivities = objEntities.Activities.Where(act => act.createdby == userInfo.userId).ToList();
            var userGroups        = objEntities.User_Group.Where(group => group.user_id == userInfo.userId).ToList();
            var user_answer       = objEntities.User_Answer.Where(usanswr => usanswr.user_id == userInfo.userId).ToList();
            var user_activity     = this.getDistinct(user_answer);

            if (userGroups != null)
            {
                foreach (var userGroup in userGroups)
                {
                    var Group = objEntities.Groups.Where(group => group.id == userGroup.group_id).FirstOrDefault();
                    user_groups.Add(Group);
                }
            }
            if (userGroups != null)
            {
                foreach (var grp in userGroups)
                {
                    groupActivities = objEntities.Activity_Group.Where(actgrp => actgrp.group_id == grp.group_id).ToList();
                }
            }
            if (groupActivities != null)
            {
                foreach (var grpact in groupActivities)
                {
                    var activity = objEntities.Activities.Where(act => act.id == grpact.activity_id).FirstOrDefault();
                    privateActivities.Add(activity);
                }
            }

            if (userInfo.role != 1)
            {
                userCreatedGroups = objEntities.Groups.Where(grp => grp.createdby == userInfo.userId).ToList();
            }
            if (userInfo.role == 3)
            {
                userRequests = objEntities.User_Request.ToList();
            }
            DashboardOutput objDBOutput = new DashboardOutput();

            objDBOutput.groups             = userCreatedGroups;
            objDBOutput.privateActivities  = privateActivities;
            objDBOutput.publicActivities   = publicActivites;
            objDBOutput.requests           = userRequests;
            objDBOutput.createdActitvities = createdActivities;
            objDBOutput.userAnswer         = user_activity;
            objDBOutput.user_groups        = user_groups;
            return(objDBOutput);
        }
コード例 #5
0
        public async Task <int> CreateDashboard(string userId, DashboardInput input, NpgsqlConnection connection)
        {
            string queryString = UserQueryBuilder.CreateDashboardQueryString(input.name, input.description);

            await using NpgsqlCommand cmd = new NpgsqlCommand(queryString);
            cmd.Connection = connection;
            int dashboardId = (int)cmd.ExecuteScalar();

            cmd.Parameters.Clear();

            string accessQueryString =
                UserQueryBuilder.InsertUserAccessToDashboardQueryString(userId, dashboardId, input.accessLevel);

            await executeQuery(connection, accessQueryString);

            return(dashboardId);
        }
コード例 #6
0
        public async Task <int> UpdateDashboard(string userId, DashboardInput input)
        {
            NpgsqlConnection npgsqlConnection = new NpgsqlConnection(_databaseSettings.DatabaseConnectionString);
            await npgsqlConnection.OpenAsync();

            int id = -1;

            if (input.dashboardId != null)
            {
                id = input.dashboardId.GetValueOrDefault();
                string queryString = UserQueryBuilder.UpdateDashboardQueryString(userId, id, input.name, input.description);
                await executeQuery(npgsqlConnection, queryString);
            }
            else
            {
                id = await CreateDashboard(userId, input, npgsqlConnection);
            }

            await npgsqlConnection.CloseAsync();

            return(id);
        }