Example #1
0
        //[ApiExplorerSettings(IgnoreApi = true)]
        public UsersListResponse GetUsers(string fromDate, string toDate, string searchTerm, int userGroupId = 0, int pageSize = 25, int pageIndex = 1)
        {
            UsersListResponse retObj = new UsersListResponse(pageSize < 1 ? 1 : pageSize, pageIndex < 1 ? 1 : pageIndex);

            try
            {
                // set default date range
                DateTime fromDateTime = DateTime.Now.AddMonths(-3), toDateTime = DateTime.Now;

                try { toDateTime = Convert.ToDateTime(toDate); }
                catch { toDateTime = DateTime.Now; }

                try { fromDateTime = Convert.ToDateTime(fromDate); }
                catch { fromDateTime = DateTime.Now.AddMonths(-3); }

                int orderByColIndex = 5;
                Utility.EnumHelper.DBSortingOrder enSortingOrder = Utility.EnumHelper.DBSortingOrder.Desc;

                int usersCount;
                var userList = UserDetailsFacade.GetUsers(DateTime.Parse(fromDateTime.ToShortDateString()), DateTime.Parse(toDateTime.ToShortDateString()), searchTerm,
                                                          orderByColIndex, enSortingOrder, userGroupId, ((retObj.PageIndex * retObj.PageSize) - retObj.PageSize), retObj.PageSize, out usersCount);

                retObj.UserList         = userList;
                retObj.TotalRecordCount = usersCount;
            }
            catch (Exception exc)
            {
                log.Error(exc);
            }

            return(retObj);
        }
Example #2
0
        public async static void Run([TimerTrigger(NineAmEveryTuesday, RunOnStartup = true)] TimerInfo timerInfo, TraceWriter log)
        {
            log.Info("CheckUserProfileTitles-OnTimer trigger.");

            var token        = Environment.GetEnvironmentVariable("SlackToken", EnvironmentVariableTarget.Process);
            var usersListUrl = $"https://slack.com/api/users.list?token={token}";

            UsersListResponse response = null;

            try
            {
                using (var stream = await httpClient.GetStreamAsync(usersListUrl))
                {
                    var serializer = new JsonSerializer();
                    using (var sr = new StreamReader(stream))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            response = serializer.Deserialize <UsersListResponse>(jtr);
                        }
                }
            }
            catch (Exception ex)
            {
                log.Error("Problem calling Slack's users.list API.", ex);
                return;
            }

            if (response == null || !response.ok)
            {
                log.Error("Problem calling Slack's users.list API - returned no data or ok=false .");
                return;
            }

            var usersWithoutTitle = response.members.Where(m => string.IsNullOrWhiteSpace(m?.profile?.title));
            var meWithoutTitle    = usersWithoutTitle.Where(m => m?.profile?.display_name == "benmccallum");

            var slackClient = SlackClientFactory.Create();

            // TODO: Use

            //foreach (var user in meWithoutTitle)
            //{
            //    var slackMessage = new SlackMessage()
            //    {
            //        Channel = $"@{user.profile.display_name}", // will send through slackbot but that's OK...
            //        Text = $"Yo! It looks like you don't have your job title set in your Slack profile. Take one minute and let others know what you do!\n\n" +
            //            "*On desktop* — Click your workspace name in the top left to open the menu, select *Profile & account* and then *Edit Profile*.\n" +
            //            "*On mobile* — Tap the overflow menu button(three dots in the top-right corner), choose *Settings*, and then select *Edit Profile*.\n\n" +
            //            "Thanks!"
            //    };

            //    var success = await slackClient.PostAsync(slackMessage);
            //    log.Info((success ? "Success" : "Error") + $" received from slack webhook for . Message sent was: {slackMessage.Text}");
            //}
        }
Example #3
0
        public async Task <UsersListResponse> GetUsersList(UsersListFilter filter)
        {
            UsersListResponse result = new UsersListResponse();

            var query = Context.Users.AsQueryable();

            if (!string.IsNullOrWhiteSpace(filter?.IgnoreUserId))
            {
                query = query.Where(u => u.Id != filter.IgnoreUserId);
            }

            if (!string.IsNullOrWhiteSpace(filter?.Text))
            {
                var text = filter.Text;
                query = query.Where(u =>
                                    u.FirstName.Contains(text) ||
                                    u.LastName.Contains(text) ||
                                    u.UserName.Contains(text) ||
                                    u.Email.Contains(text) ||
                                    u.PhoneNumber.Contains(text));
            }

            result.TotalCount = await query.CountAsync();

            if (filter != null)
            {
                if (filter.Skip.HasValue)
                {
                    var skip = filter.Skip.Value;
                    query          = query.Skip(skip);
                    result.Skipped = result.TotalCount > 0 ? skip : 0;
                }

                if (filter.Take.HasValue)
                {
                    var take = filter.Take.Value;
                    query        = query.Take(take);
                    result.Taken = result.TotalCount > 0 ? take : 0;
                }
            }

            result.List = await query.Select(u => UserResponse.FromUser(u)).ToListAsync();

            return(result);
        }