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")); } }
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")); } }
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)); } }
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)); } }