Ejemplo n.º 1
0
        public AwaySystem getAwayUser(string discordUserName)
        {
            var awayUser = new AwaySystem();

            using (var db = new NinjaBotEntities())
            {
                awayUser = db.AwaySystem.Where(a => a.UserName == discordUserName).FirstOrDefault();
            }
            return(awayUser);
        }
Ejemplo n.º 2
0
        public AwaySystem GetAwayUser(string discordUserName)
        {
            var awayUser = new AwaySystem();

            using (var db = new DiscbotContext())
            {
                awayUser = db.AwaySystem.AsEnumerable().Where(a => a.UserName == discordUserName).FirstOrDefault();
            }
            return(awayUser);
        }
Ejemplo n.º 3
0
        public void setAwayUser(AwaySystem awayInfo)
        {
            var awayUser = new AwaySystem();

            using (var db = new NinjaBotEntities())
            {
                awayUser = db.AwaySystem.Where(a => a.UserName == awayInfo.UserName).FirstOrDefault();
                if (awayUser == null)
                {
                    db.AwaySystem.Add(awayInfo);
                }
                else
                {
                    awayUser.Status   = awayInfo.Status;
                    awayUser.Message  = awayInfo.Message;
                    awayUser.TimeAway = awayInfo.TimeAway;
                }
                db.SaveChanges();
            }
        }
Ejemplo n.º 4
0
        public void SetAwayUser(AwaySystem awayInfo)
        {
            var awayUser = new AwaySystem();

            using (var db = new DiscbotContext())
            {
                awayUser = db.AwaySystem.AsEnumerable().Where(a => a.UserName == awayInfo.UserName).FirstOrDefault();
                if (awayUser == null)
                {
                    db.AwaySystem.Add(awayInfo);
                }
                else
                {
                    awayUser.Status   = awayInfo.Status;
                    awayUser.Message  = awayInfo.Message;
                    awayUser.TimeAway = awayInfo.TimeAway;
                }
                db.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        public async Task SetAway([Remainder] string input)
        {
            try
            {
                StringBuilder sb              = new StringBuilder();
                var           message         = input;
                var           user            = Context.User;
                string        userName        = string.Empty;
                string        userMentionName = string.Empty;
                if (user != null)
                {
                    userName        = user.Username;
                    userMentionName = user.Mention;
                }
                var data    = new AwayServices();
                var away    = new AwaySystem();
                var attempt = data.GetAwayUser(userName);

                if (string.IsNullOrEmpty(message.ToString()))
                {
                    message = "No message set!";
                }
                if (attempt != null)
                {
                    away.UserName = attempt.UserName;
                    away.Status   = attempt.Status;
                    if ((bool)away.Status)
                    {
                        sb.AppendLine($"You're already away, **{userMentionName}**!");
                    }
                    else
                    {
                        sb.AppendLine($"Marking you as away, **{userMentionName}**, with the message: *{message.ToString()}*");
                        away.Status   = true;
                        away.Message  = message;
                        away.UserName = userName;
                        away.TimeAway = DateTime.Now;

                        var awayData = new AwayServices();
                        awayData.SetAwayUser(away);
                    }
                }
                else
                {
                    sb.AppendLine($"Marking you as away, **{userMentionName}**, with the message: *{message.ToString()}*");
                    away.Status   = true;
                    away.Message  = message;
                    away.UserName = userName;
                    away.TimeAway = DateTime.Now;

                    var awayData = new AwayServices();
                    awayData.SetAwayUser(away);
                }
                await _channelServices.Reply(Context, sb.ToString());
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Something went wrong setting you away :(");
                _logger.LogError($"Away command error {ex.Message}");
                await _channelServices.Reply(Context, sb.ToString());
            }
        }
Ejemplo n.º 6
0
        public async Task SetBack(bool forced = false, IGuildUser forceUser = null)
        {
            try
            {
                IGuildUser    user = null;
                StringBuilder sb   = new StringBuilder();
                var           data = new AwayServices();
                if (forced)
                {
                    user = forceUser;
                }
                else
                {
                    user = Context.User as IGuildUser;
                }

                string userName        = string.Empty;
                string userMentionName = string.Empty;
                if (user != null)
                {
                    userName        = user.Username;
                    userMentionName = user.Mention;
                }
                var attempt = data.GetAwayUser(userName);
                var away    = new AwaySystem();

                if (attempt != null)
                {
                    away.UserName = attempt.UserName;
                    away.Status   = attempt.Status;
                    if (!(bool)away.Status)
                    {
                        sb.AppendLine($"You're not even away yet, **{userMentionName}**");
                    }
                    else
                    {
                        away.Status  = false;
                        away.Message = string.Empty;
                        var awayData = new AwayServices();
                        awayData.SetAwayUser(away);
                        string awayDuration = string.Empty;
                        if (attempt.TimeAway.HasValue)
                        {
                            var awayTime = DateTime.Now - attempt.TimeAway;
                            if (awayTime.HasValue)
                            {
                                awayDuration = $"**{awayTime.Value.Days}** days, **{awayTime.Value.Hours}** hours, **{awayTime.Value.Minutes}** minutes, and **{awayTime.Value.Seconds}** seconds";
                            }
                        }
                        if (forced)
                        {
                            sb.AppendLine($"You're now set as back **{userMentionName}** (forced by: **{Context.User.Username}**)!");
                        }
                        else
                        {
                            sb.AppendLine($"You're now set as back, **{userMentionName}**!");
                        }
                        sb.AppendLine($"You were away for: [{awayDuration}]");
                    }
                    await _channelServices.Reply(Context, sb.ToString());
                }
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Something went wrong marking you as back :(");
                _logger.LogError($"Back command error {ex.Message}");
                await _channelServices.Reply(Context, sb.ToString());
            }
        }