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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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>&nbsp;</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())));
            }
        }
Exemple #5
0
        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>"));
            }
        }
Exemple #6
0
        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());
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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())));
        }
Exemple #9
0
        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();
            }
        }
Exemple #10
0
        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);
        }