コード例 #1
0
        public async Task <ActionResult> ClientLogs(ClientLogsViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var entities = await _logRepository.GetRange(model.StartDate, model.EndDate.AddDays(1), model.Client);

                    if (entities.Count() > 0)
                    {
                        StringBuilder sb = new StringBuilder();
                        sb.AppendLine($"Timestamp;ClientId;EventCode;Message");
                        foreach (var item in entities)
                        {
                            sb.AppendLine($"{item.Date.ToString("u")};{item.ClientId};{item.EventCode}-{(Common.GameStatus)int.Parse(item.EventCode)};{item.Message.Replace(';', '|')}");
                        }
                        return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/csv", $"clientLogs_{model.Client}.csv"));
                    }
                    else
                    {
                        return(StatusCode(500, "Log file is empty"));
                    }
                }
                catch (Exception ex)
                {
                    return(StatusCode(500, ex.Message));
                }
            }
            else
            {
                return(StatusCode(500, "Invalid model"));
            }
        }
コード例 #2
0
        public async Task <ActionResult> UserHistory(ClientLogsViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (model.GameHistory)
                    {
                        var entities = await _gameDatabase.GetGameBetsByUser(model.Client, model.StartDate, model.EndDate);

                        if (entities.Count() > 0)
                        {
                            StringBuilder sb = new StringBuilder();
                            sb.AppendLine("Date;UserId;AssetPair;BetAmount;BoxId;BetStatus;Parameters;Box");
                            foreach (var item in entities.OrderBy(m => m.Date))
                            {
                                sb.AppendLine($"{item.Date};{item.UserId};{item.AssetPair};{item.BetAmount};{item.BoxId};{item.BetStatus}-{(BetStates)item.BetStatus};{item.Parameters.Replace(';','|')};{item.Box.Replace(';', '|')}");
                            }
                            return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/csv", $"userHistory_{model.Client}.csv"));
                        }
                        else
                        {
                            return(StatusCode(500, "Log file is empty"));
                        }
                    }
                    else
                    {
                        var entities = await _gameDatabase.LoadUserHistory(model.Client, model.StartDate, model.EndDate);

                        if (entities.Count() > 0)
                        {
                            StringBuilder sb = new StringBuilder();
                            sb.AppendLine("Date;UserId;Status;AccountDelta;Message;");
                            foreach (var item in entities)
                            {
                                sb.AppendLine($"{item.Date.ToString("u")};{item.UserId};{item.GameStatus}-{(Common.GameStatus)item.GameStatus};{item.AccountDelta};{item.Message.Replace(';', '|')}");
                            }
                            return(File(Encoding.UTF8.GetBytes(sb.ToString()), "text/csv", $"userHistory_{model.Client}.csv"));
                        }
                        else
                        {
                            return(StatusCode(500, "Log file is empty"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    return(StatusCode(500, ex.Message));
                }
            }
            else
            {
                return(StatusCode(500, "Invalid model"));
            }
        }
コード例 #3
0
        public async Task <ActionResult> UserHistory()
        {
            try
            {
                ClientLogsViewModel model = new ClientLogsViewModel()
                {
                    EndDate   = DateTime.UtcNow.Date,
                    StartDate = DateTime.UtcNow.Date.AddDays(-30)
                };

                var entities = await _gameDatabase.GetUsers();

                model.ClientList = entities.Distinct().ToArray();
                return(View(model));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
コード例 #4
0
        public async Task <ActionResult> ClientLogs()
        {
            try
            {
                ClientLogsViewModel model = new ClientLogsViewModel()
                {
                    EndDate   = DateTime.UtcNow.Date,
                    StartDate = DateTime.UtcNow.Date.AddDays(-30)
                };

                var entities = await _logRepository.GetClients();

                model.ClientList = (from l in entities
                                    select l.Length > 36 ? l.Substring(0, 36) : l).Distinct().ToArray();
                return(View(model));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }