public static List <MemberItem> Get(MemberItemFilter filter) { var memberItems = XmlFactory.ReadXml <MemberItem>(FolderFactory.MemberFolder, FolderTypes.Members.ToString()); if (filter != null) { memberItems = memberItems.Where(w => w.Delete == filter.Deleted).ToList(); if (!string.IsNullOrEmpty(filter.Id)) { memberItems = memberItems.Where(w => w.MemberId.Equals(filter.Id)).ToList(); } if (!string.IsNullOrEmpty(filter.FirstName)) { memberItems = memberItems.Where(w => w.FirstName.ToUpper().Contains(filter.FirstName.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(filter.LastName)) { memberItems = memberItems.Where(w => w.LastName.ToUpper().Contains(filter.LastName.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(filter.Group)) { memberItems = memberItems.Where(w => w.Group.ToUpper().Contains(filter.Group.ToUpper())).ToList(); } } return(memberItems.OrderBy(o => o.FirstName).ThenBy(o => o.LastName).ToList()); }
private List <ActivityItem> GetActivityItems() { var fileInfo = new FileInfo(LogPath); var logItems = XmlFactory.ReadXml <ActivityItem>(FolderFactory.LogFolder, fileInfo.Name.Replace(fileInfo.Extension, string.Empty)); NumberOfRegistrations = $"{logItems.Count.ToString(CultureInfo.InvariantCulture)} registraties"; return(logItems.OrderByDescending(o => o.Datum).ToList()); }
protected void Page_Load(object sender, EventArgs e) { var directory = new DirectoryInfo(FolderFactory.LogFolder); var file = (from f in directory.GetFiles() where f.FullName.ToLower().Contains("score_") && f.FullName.ToLower().Contains(".xml") orderby f.LastWriteTime descending select f).FirstOrDefault(); if (file != null) { bool showAfwijking; bool.TryParse(ConfigurationManager.AppSettings["ShowAfwijking"], out showAfwijking); var srTable = "<table style='border: 1px black solid; width: 100%'>"; var requestFolder = FolderFactory.RequestFolder; var logItems = XmlFactory.ReadXml <ScoreItem>(FolderFactory.LogFolder, file.Name.Replace(file.Extension, string.Empty)); if (logItems.Any(w => w.Omschrijving == "StartGame")) { srTable += logItems.Any(w => !string.IsNullOrEmpty(w.Afwijking)) && showAfwijking ? "<tr style='font-weight: bold;'><td>Foto nummer</td><td>Naam</td><td style='text-align: center;'>Jury 1</td><td style='text-align: center;'>Jury 2</td><td style='text-align: center;'>Jury 3</td><td style='text-align: center;'>Jury 4</td><td style='text-align: center;'>Jury 5</td><td style='text-align: center;'>Afwijking</td><td style='text-align: center;'>Totaal</td></tr>" : "<tr style='font-weight: bold;'><td>Foto nummer</td><td>Naam</td><td style='text-align: center;'>Jury 1</td><td style='text-align: center;'>Jury 2</td><td style='text-align: center;'>Jury 3</td><td style='text-align: center;'>Jury 4</td><td style='text-align: center;'>Jury 5</td><td style='text-align: center;'>Totaal</td></tr>"; var liveAction = string.Format( "<tr style='background-color: #90EE90;'><td>{0}</td><td>{1}</td><td style='text-align: center;'>{2}</td><td style='text-align: center;'>{3}</td><td style='text-align: center;'>{4}</td><td style='text-align: center;'>{5}</td><td style='text-align: center;'>{6}</td><td>{7}</td>" + (logItems.Any(w => !string.IsNullOrEmpty(w.Afwijking) && showAfwijking) ? "<td> </td>" : "") + "</tr>", string.Empty, string.Empty, File.Exists(Path.Combine(requestFolder, "Request_1.txt")) ? "X" : "--", File.Exists(Path.Combine(requestFolder, "Request_2.txt")) ? "X" : "--", File.Exists(Path.Combine(requestFolder, "Request_3.txt")) ? "X" : "--", File.Exists(Path.Combine(requestFolder, "Request_4.txt")) ? "X" : "--", File.Exists(Path.Combine(requestFolder, "Request_5.txt")) ? "X" : "--", string.Empty); srTable += liveAction; foreach (var logItem in logItems.Where(w => w.Omschrijving != "StartGame").OrderByDescending(o => o.Datum)) { srTable += !string.IsNullOrEmpty(logItem.FotoNaam) ? (!string.IsNullOrEmpty(logItem.Afwijking) && showAfwijking ? $"<tr style='background-color: #90EE90;'><td>{logItem.FotoNr}</td><td>{logItem.FotoNaam}</td><td style='text-align: center;'>{logItem.Jury1 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury2 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury3 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury4 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury5 ?? "--"}</td><td style='text-align: center;'>{logItem.Afwijking ?? "--"}</td><td style='text-align: center;'>{logItem.Totaal ?? "--"}</td></tr>" : $"<tr style='background-color: #90EE90;'><td>{logItem.FotoNr}</td><td>{logItem.FotoNaam}</td><td style='text-align: center;'>{logItem.Jury1 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury2 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury3 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury4 ?? "--"}</td><td style='text-align: center;'>{logItem.Jury5 ?? "--"}</td><td style='text-align: center;'>{logItem.Totaal ?? "--"}</td></tr>" ) : (!string.IsNullOrEmpty(logItem.Afwijking) && showAfwijking ? $"<tr style='background-color: #D3D3D3; font-weight: bold; text-align: center;'><td colspan='9'>{logItem.Omschrijving}</td></tr>" : $"<tr style='background-color: #D3D3D3; font-weight: bold; text-align: center;'><td colspan='8'>{logItem.Omschrijving}</td></tr>" ); } } srTable += "</table>"; plcScoreLogging.Controls.Add(new LiteralControl(srTable)); } else { plcScoreLogging.Controls.Add(new LiteralControl("<b>Er is voorlopig geen score beschikbaar!</b>")); } }
public static MemberItem GetById(string id, bool idIsNumeric) { var memberItems = XmlFactory.ReadXml <MemberItem>(FolderFactory.MemberFolder, FolderTypes.Members.ToString()); if (idIsNumeric) { return(memberItems.FirstOrDefault(w => w.ListMemberId.ToUpper().Equals(id.ToUpper().PadLeft(3, '0')))); } else { return(memberItems.FirstOrDefault(w => w.MemberId.ToUpper().Equals(id.ToUpper()))); } }
protected void Page_Load(object sender, EventArgs e) { var directory = new DirectoryInfo(FolderFactory.LogFolder); var file = (from f in directory.GetFiles() where f.FullName.ToLower().Contains("activity_") && f.FullName.ToLower().Contains(".xml") orderby f.LastWriteTime descending select f).FirstOrDefault(); if (file != null) { var srTable = "<table style='border: 1px black solid; width: 100%'>"; srTable += "<tr style='font-weight: bold;'><td>Datum</td><td>Ip</td><td>Source</td><td>Type</td><td>Lokatie</td><td>Omschrijving</td></tr>"; var logItems = XmlFactory.ReadXml <ActivityItem>(FolderFactory.LogFolder, file.Name.Replace(file.Extension, string.Empty)); foreach (var logItem in logItems.OrderByDescending(o => o.Datum)) { var bgColor = "#D3D3D3"; var fgColor = ConvertColorToHex(Color.Black); if (logItem.Type == "Error") { bgColor = ConvertColorToHex(Color.Red); fgColor = ConvertColorToHex(Color.White); } else if (logItem.Type == "Success") { bgColor = ConvertColorToHex(Color.LightGreen); } else if (logItem.Type == "Information") { bgColor = ConvertColorToHex(Color.LightBlue); } else if (logItem.Type == "Warning") { bgColor = ConvertColorToHex(Color.LightGoldenrodYellow); } srTable += String.Format( "<tr style='background-color: {6}; color: {7};'><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td></tr>", logItem.Datum, logItem.Ip, logItem.Source, logItem.Type, logItem.Lokatie, logItem.Omschrijving, bgColor, fgColor); } srTable += "</table>"; plcActivityLogging.Controls.Add(new LiteralControl(srTable)); } else { plcActivityLogging.Controls.Add(new LiteralControl("<b>Er is voorlopig geen log beschikbaar!</b>")); } }
public static List <GameItem> Get(GameItemFilter filter) { var gameItems = XmlFactory.ReadXml <GameItem>(FolderFactory.MemberFolder, FolderTypes.Games.ToString()); if (filter != null) { gameItems = gameItems.Where(w => w.Delete == filter.Deleted).ToList(); if (!string.IsNullOrEmpty(filter.Month)) { gameItems = gameItems.Where(w => w.Month.ToUpper().Contains(filter.Month.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(filter.Theme)) { gameItems = gameItems.Where(w => w.Theme.ToUpper().Contains(filter.Theme.ToUpper())).ToList(); } } return(gameItems.OrderBy(o => o.Month).ThenBy(o => o.Theme).ToList()); }
private List <ScoreItem> GetScoreItems() { var fileInfo = new FileInfo(LogPath); var logItems = XmlFactory.ReadXml <ScoreItem>(FolderFactory.LogFolder, fileInfo.Name.Replace(fileInfo.Extension, string.Empty)); foreach (var logItem in logItems) { int photoNumber; if (!string.IsNullOrEmpty(logItem.FotoNr) && int.TryParse(logItem.FotoNr, out photoNumber)) { var log = logItems.FirstOrDefault(w => !string.IsNullOrEmpty(w.FotoNaam) && w.FotoNaam.Equals(logItem.FotoNaam)); if (log?.Salon != null && log.Salon.Value) { log.GelijkeScores += $"_{logItem.Totaal.PadLeft(3, '0')}"; if (log.GelijkeScores.StartsWith("--_")) { log.GelijkeScores = log.GelijkeScores.Substring(3); } } } } if (logItems.Any(w => w.Salon.HasValue && w.Salon.Value.Equals(true))) { logItems = logItems.Where(w => !string.IsNullOrEmpty(w.GelijkeScores)).ToList(); logItems.ForEach(w => w.GelijkeScores = w.GelijkeScores.Length > 4 ? w.GelijkeScores.Substring(5) : string.Empty); } logItems = logItems.Where(w => !string.IsNullOrEmpty(w.FotoNr)) .OrderByDescending(o => o.Totaal.Equals(o.Afwijking) ? o.Afwijking : o.Totaal) .ThenByDescending(o => o.GelijkeScores) .ThenByDescending(o => o.FotoNaam).ToList(); NumberOfRegistrations = $"{logItems.Count.ToString(CultureInfo.InvariantCulture)} registraties"; return(logItems); }
public static GameItem GetById(string month, string theme) { var gameItems = XmlFactory.ReadXml <GameItem>(FolderFactory.MemberFolder, FolderTypes.Games.ToString()); return(gameItems.FirstOrDefault(w => w.Month.ToUpper().Equals(month.ToUpper()) && w.Theme.ToUpper().Equals(theme.ToUpper()))); }
protected void ProcessLogFiles() { var logFile = ""; var dbError = false; try { var club = ConfigurationManager.AppSettings["OrganisationName"]; var securityKey = ConfigurationManager.AppSettings["SecurityKey"]; var machine = SecurityFactory.Encrypt(Environment.MachineName, securityKey); var logFolder = FolderFactory.LogFolder; var photomanagerCustomerRepository = new PhotomanagerCustomerRepository(); var fileName = $@"{FolderFactory.SettingFolder}\{Environment.MachineName}.ini"; var headerRepository = new PhotomanagerLogHeaderRepository(); var detailRepository = new PhotomanagerLogDetailRepository(); if (PhotomanagerFactory.IsStarted()) { dbError = true; } else { try { headerRepository.Get(string.Empty, string.Empty); } catch { dbError = true; } } if (!dbError) { if (photomanagerCustomerRepository.IsValid(club, machine)) { if (!File.Exists(fileName)) { File.Create(fileName); } } else { if (File.Exists(fileName)) { File.Delete(fileName); } } var dataTable = new DataTable(); dataTable.Columns.Add("FileName"); dataTable.Columns.Add("ClubName"); var logDateColumn = new DataColumn("LogDate") { DataType = Type.GetType("System.DateTime") }; dataTable.Columns.Add(logDateColumn); dataTable.Columns.Add("LogIp"); dataTable.Columns.Add("LogSource"); dataTable.Columns.Add("LogType"); dataTable.Columns.Add("LogModule"); dataTable.Columns.Add("LogRemark"); foreach (var f in Directory.GetFiles(logFolder)) { logFile = f; var srcFile = new FileInfo(logFile); if (srcFile.Name.ToLower().StartsWith("activity_") && !srcFile.Name.ToLower().EndsWith("_b.xml") && !srcFile.Name.ToLower().EndsWith("_p.xml") && !srcFile.Name.ToLower().EndsWith("_e.xml")) { var logItems = XmlFactory.ReadXml <ActivityItem>(logFolder, srcFile.Name.Replace(srcFile.Extension, string.Empty)); dataTable.Clear(); foreach (var logItem in logItems) { var dr = dataTable.NewRow(); dr["FileName"] = srcFile.Name.Replace(".xml", string.Empty); dr["ClubName"] = logItem.Club; dr["LogDate"] = logItem.Datum; dr["LogIp"] = logItem.Ip; dr["LogSource"] = logItem.Source; dr["LogType"] = logItem.Type; dr["LogModule"] = logItem.Lokatie; dr["LogRemark"] = logItem.Omschrijving; dataTable.Rows.Add(dr); } detailRepository.MassSave(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString, dataTable); var destFile = logFile.Replace(".xml", "_P.xml"); File.Move(logFile, destFile); } } } } catch (Exception ex) { using (var sw = new StreamWriter(Path.Combine(FolderFactory.LogFolder, "error.log"))) { sw.Write(ex.Message); } if (!string.IsNullOrEmpty(logFile) && !logFile.ToLower().EndsWith("_e.xml")) { var destFile = logFile.Replace(".xml", "_E.xml"); File.Move(logFile, destFile); } } finally { _timer.Start(); } }
private List <ChampionshipItem> GetChampionshipItems(ChampionshipItemFilter filter) { ShowMonthsInGrid(); var list = XmlFactory.ReadXml <ChampionshipItem>(FolderFactory.ChampionshipFolder, !string.IsNullOrEmpty(filter?.Year) ? filter.Year : Functions.GetCurrentChampionship()); list = filter != null && filter.Month > 0 ? list.Where(w => w.GameMonth.Equals(filter.Month)).OrderByDescending(o => o.Score).ToList() : list.OrderByDescending(o => o.Score).ToList(); var groupList = list.GroupBy(g => new { g.ListMemberId, g.GameId }).ToList(); var newList = new List <ChampionshipItem>(); int.TryParse(ConfigurationManager.AppSettings["ChampionshipStartMonth"], out var startMonth); int.TryParse(ConfigurationManager.AppSettings["ChampionshipEndMonth"], out var endMonth); foreach (var item in groupList) { ChampionshipItem first = null; foreach (var championshipItem in item) { first = championshipItem; break; } if (first != null) { newList.Add(new ChampionshipItem { NumberOfJuryMembers = first.NumberOfJuryMembers, MaxPoints = first.MaxPoints, GameMonth = filter != null && filter.Month > 0 ? first.GameMonth : 0, MemberId = item.FirstOrDefault()?.MemberId, Score = filter != null && filter.Top == 0 ? item.Sum(s => s.Score) : item.Take(filter?.Top ?? 2).Sum(s => s.Score), ScorePercentage = (filter != null && filter.Top == 0 ? item.Sum(s => s.Score) : item.Take(filter?.Top ?? 2).Sum(s => s.Score)) / (double)((first.NumberOfJuryMembers - (first.Deviation && first.NumberOfJuryMembers > 2 && first.Deviation ? 2 : 0)) * first.MaxPoints * (filter?.Top ?? 2)) * 100 * (filter?.Top ?? 2) }); } if (filter != null && filter.Month.Equals(0)) { foreach (var it in newList) { var indx = 1; for (var i = startMonth; i <= (startMonth > endMonth ? 12 + endMonth : endMonth); i++) { var type = it.GetType(); var property = type.GetProperties().FirstOrDefault(w => w.Name.Contains(indx.ToString())); property?.SetValue(it, Math.Round(list.Where(w => w.GameMonth.Equals(i > 12 ? i - 12 : i) && w.MemberId.Equals(it.MemberId)).Take(filter.Top).Sum(s => s.Score * 1.0 / ((s.NumberOfJuryMembers - (s.NumberOfJuryMembers > 2 && s.Deviation ? 2 : 0)) * s.MaxPoints * filter.Top)) * 100.0 * filter.Top, 2)); indx++; } } } } var memberTotals = newList.GroupBy(g => IsMemberIdNumeric ? g.MemberId.PadLeft(5, '0') : g.MemberId).ToList(); var groupMemberItems = new List <ChampionshipItem>(); foreach (var item in memberTotals) { var members = XmlFactory.ReadXml <MemberItem>(FolderFactory.MemberFolder, FolderTypes.Members.ToString()); var member = members.FirstOrDefault(w => w.ListMemberId.Equals(item.FirstOrDefault()?.ListMemberId)); ChampionshipItem first = null; foreach (var championshipItem in item) { first = championshipItem; break; } groupMemberItems.Add(new ChampionshipItem { GameMonth = first?.GameMonth ?? 0, MemberId = item.FirstOrDefault()?.MemberId, FirstName = member != null ? member.FirstName : "John", LastName = member != null ? member.LastName : "Doe", Group = member != null ? member.Group : "", Score = item.Sum(s => s.Score), Score1 = first?.Score1, Score2 = first?.Score2, Score3 = first?.Score3, Score4 = first?.Score4, Score5 = first?.Score5, Score6 = first?.Score6, Score7 = first?.Score7, Score8 = first?.Score8, Score9 = first?.Score9, Score10 = first?.Score10, Score11 = first?.Score11, Score12 = first?.Score12, ScorePercentage = item.Sum(s => s.ScorePercentage) / (filter?.Top ?? 2) }); } if (filter != null) { if (!string.IsNullOrEmpty(filter.FirstName)) { groupMemberItems = groupMemberItems.Where(w => w.FirstName.ToUpper().Contains(filter.FirstName.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(filter.LastName)) { groupMemberItems = groupMemberItems.Where(w => w.LastName.ToUpper().Contains(filter.LastName.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(filter.Group)) { groupMemberItems = groupMemberItems.Where(w => !string.IsNullOrEmpty(w.Group) && w.Group.ToUpper().Contains(filter.Group.ToUpper())).ToList(); } } groupMemberItems = groupMemberItems.OrderByDescending(o => o.ScorePercentage).ThenBy(o => o.LastName).ToList(); NumberOfRegistrations = $"{groupMemberItems.Count.ToString(CultureInfo.InvariantCulture)} registraties"; return(groupMemberItems); }