コード例 #1
0
        public IList <StatisticDto> GetPolicyStatistics(string policyId, string sortField = "PolId", string sortDirection = "ASC")
        {
            var statistics = this.PolicyDataService.GetStatistics(policyId);

            var retStats = new List <StatisticDto>();

            foreach (PolicyDataService.Statistic item in statistics)
            {
                if (!string.IsNullOrEmpty(item.Unit))
                {
                    var coverStat = item as PolicyDataService.CoverStatistic;
                    var monStat   = item as PolicyDataService.MonitoredStatistic;
                    var polStat   = item as PolicyDataService.PolicyStatistic;
                    var stat      = new StatisticDto();
                    stat.PolId     = item.PolId;
                    stat.Reference = item.Reference;
                    stat.SCC       = item.SCC;

                    stat.GrossIncLR   = item.GrossIncLR;
                    stat.IncClaimsMkt = item.IncClaimsMkt;
                    stat.IncClaimsSyn = item.IncClaimsSyn;
                    stat.Inception    = item.Inception;
                    stat.OsClaimsMkt  = item.OsClaimsMkt;
                    stat.OsClaimsSyn  = item.OsClaimsSyn;
                    stat.PdClaimsMkt  = item.PdClaimsMkt;
                    stat.PdClaimsSyn  = item.PdClaimsSyn;
                    stat.SgndPrmSyn   = item.ApiSyn;

                    if (coverStat != null)
                    {
                        stat.EstPrmSyn  = coverStat.EstPremiumMkt;
                        stat.EstPrmMkt  = coverStat.EstNetPremiumMkt;
                        stat.SgndPrmMkt = coverStat.SgndNetPremium;
                    }
                    if (monStat != null)
                    {
                        stat.EstPrmSyn  = monStat.EstPremiumMktDecln;
                        stat.EstPrmMkt  = monStat.EstNetPremiumMktDecln;
                        stat.SgndPrmMkt = monStat.SgndNetPremium;
                    }
                    if (polStat != null)
                    {
                        stat.EstPrmSyn  = polStat.EpiSyn;
                        stat.EstPrmMkt  = polStat.EstNetPremium;
                        stat.SgndPrmMkt = polStat.SgndNetPremium;
                    }
                    retStats.Add(stat);
                }
            }

            var query = from s in retStats.AsQueryable()
                        select s;

            return((string.IsNullOrEmpty(sortField)
                    ? query
                    :string.Equals(sortDirection, "ASC", StringComparison.CurrentCultureIgnoreCase)
                                    ? query.OrderBy(sortField)
                                    : query.OrderByDescending(sortField)).ToList());
        }
コード例 #2
0
ファイル: StatisticService.cs プロジェクト: Akimmax/DebtsAPI
        public StatisticDto GetTotalStatistic()
        {
            var userId = Convert.ToInt32(_httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value);

            StatisticDto statistic = new StatisticDto()
            {
                Gave = _context.Debts.Where(debt => debt.GiverId == userId).Sum(n => n.Sum),
                Took = _context.Debts.Where(debt => debt.TakerId == userId).Sum(n => n.Sum)
            };

            return(statistic);
        }
コード例 #3
0
        public async Task <StatisticDto> InsertStatisticAsync(StatisticDto statisticDto)
        {
            var user = await _context.Users
                       .Select(u => new
            {
                u.FirstName,
                u.LastName,
                UserId = u.Id
            })
                       .AsNoTracking()
                       .FirstOrDefaultAsync(u => u.UserId == statisticDto.UserId);

            if (user == null)
            {
                return(null);
            }

            var xml = new XmlDocument();

            xml.Load(@"Helper\Statistic.xml");

            var nodeFirstName = xml.SelectSingleNode("Statistik/Vorname");
            var nodeLastName  = xml.SelectSingleNode("Statistik/Nachname");
            var nodeYear      = xml.SelectSingleNode("Statistik/Jahr");

            if (nodeFirstName == null || nodeLastName == null || nodeYear == null)
            {
                _logger.InsertDatabaseLog(new DataBaseLog
                {
                    Type    = "XML Error StatisticRepository",
                    Message = "Fehler beim Zugriff auf XML Node"
                });
                return(null);
            }

            nodeFirstName.InnerText = user.FirstName;
            nodeLastName.InnerText  = user.LastName;
            nodeYear.InnerText      = DateTime.Now.Year.ToString();

            await _context.Statistics.AddAsync(new Statistic
            {
                LicenceId    = statisticDto.LicenceId,
                UserId       = statisticDto.UserId,
                Year         = DateTime.Now.Year,
                StatisticXml = xml.OuterXml
            });

            var checkInsert = await Complete();

            return(checkInsert ? statisticDto : null);
        }
コード例 #4
0
        public async Task <ActionResult <StatisticDto> > Post(StatisticDto statisticDto)
        {
            if (statisticDto == null)
            {
                return(BadRequest("Fehler: Keine Daten"));
            }
            var checkInsert = await _statisticRepository.InsertStatisticAsync(statisticDto);

            if (checkInsert == null)
            {
                return(BadRequest("Statistik konnte nicht hinzugefügt werden"));
            }
            return(Ok(checkInsert));
        }
コード例 #5
0
        public async Task <StatisticDto> UpdateStatisticAsync(StatisticDto statisticDto)
        {
            var statisticToUpdate = await _context.Statistics.FindAsync(statisticDto.Id);

            if (statisticToUpdate == null)
            {
                return(null);
            }
            statisticToUpdate.UserId = statisticDto.UserId;
            var doc       = new XDocument();
            var statistic = new XElement("Statistik");

            doc.Add(statistic);
            statistic.Add(new XElement("Fischerverein", statisticDto.Statistic.FishingClub));
            statistic.Add(new XElement("Vorname", statisticDto.Statistic.FirstName));
            statistic.Add(new XElement("Nachname", statisticDto.Statistic.LastName));
            statistic.Add(new XElement("Jahr", statisticDto.Statistic.Year));


            foreach (var month in statisticDto.Statistic.Months)
            {
                var months = new XElement("Monate");
                months.Add(new XElement("Monat", month.Month));
                statistic.Add(months);


                foreach (var day in month.Days)
                {
                    var days = new XElement("Tage");
                    days.Add(new XElement("Tag", day.Day));
                    days.Add(new XElement("Stunden", day.Hour));
                    months.Add(days);

                    foreach (var fish in day.FishCatches)
                    {
                        var fishCatch = new XElement("Fang");
                        fishCatch.Add(new XElement("Fisch", fish.Fish));
                        fishCatch.Add(new XElement("Anzahl", fish.Number));
                        days.Add(fishCatch);
                    }
                }
            }

            statisticToUpdate.StatisticXml = doc.ToString();

            var checkUpdate = await Complete();

            return(checkUpdate ? statisticDto : null);
        }
コード例 #6
0
        public async Task <ActionResult <StatisticDto> > Put(int id, StatisticDto statisticDto)
        {
            var statistic = await _statisticRepository.GetStatisticByIdAsync(id);

            if (statistic == null)
            {
                return(BadRequest("Statistik nicht vorhanden"));
            }
            var checkUpdate = await _statisticRepository.UpdateStatisticAsync(statisticDto);

            if (checkUpdate == null)
            {
                return(BadRequest("Fehler: Statistik konnte nicht aktualisiert werden"));
            }
            return(Ok(checkUpdate));
        }
コード例 #7
0
        public TextStatisticsDto MapToDto(TextStatistics dto)
        {
            var statisticsDto = new TextStatisticsDto();

            foreach (var stat in dto.Statistics)
            {
                var statisticDto = new StatisticDto()
                {
                    Count = stat.Value,
                    Type  = stat.Type.ToString()
                };

                statisticsDto.Statistics.Add(statisticDto);
            }

            return(statisticsDto);
        }
コード例 #8
0
ファイル: StatService.cs プロジェクト: karcagtamas/UniHelper
        /// <inheritdoc />
        public StatisticDto GetHomeStat()
        {
            var stat = new StatisticDto {
                SolvedTasks = GetSolvedTaskNumber(), UnSolvedTasks = GetNotSolvedTaskNumber()
            };

            stat.Periods = new List <PeriodStatistic>();

            var periods = _periodService.GetUserPeriodList();

            periods.ForEach(period =>
            {
                stat.Periods.Add(new PeriodStatistic
                {
                    IsCurrent = period.IsCurrent,
                    Label     = period.Name,
                    Marks     = period.Subjects.Where(x => x.Result != null).Select(x => (int)x.Result).ToList()
                });
            });

            return(stat);
        }
コード例 #9
0
        public IList<StatisticDto> GetPolicyStatistics(string policyId, string sortField = "PolId", string sortDirection = "ASC")
		{
			var statistics = this.PolicyDataService.GetStatistics(policyId);

            var retStats = new List<StatisticDto>();

            foreach (PolicyDataService.Statistic item in statistics)
            {
                if (!string.IsNullOrEmpty(item.Unit))
                {
                    var coverStat = item as PolicyDataService.CoverStatistic;
                    var monStat = item as PolicyDataService.MonitoredStatistic;
                    var polStat = item as PolicyDataService.PolicyStatistic;
                    var stat = new StatisticDto();
                    stat.PolId = item.PolId;
                    stat.Reference = item.Reference;
                    stat.SCC = item.SCC;

                    stat.GrossIncLR = item.GrossIncLR;
                    stat.IncClaimsMkt = item.IncClaimsMkt;
                    stat.IncClaimsSyn = item.IncClaimsSyn;
                    stat.Inception = item.Inception;
                    stat.OsClaimsMkt = item.OsClaimsMkt;
                    stat.OsClaimsSyn = item.OsClaimsSyn;
                    stat.PdClaimsMkt = item.PdClaimsMkt;
                    stat.PdClaimsSyn = item.PdClaimsSyn;
                    stat.SgndPrmSyn = item.ApiSyn;

                    if (coverStat != null)
                    {
                        stat.EstPrmSyn = coverStat.EstPremiumMkt;
                        stat.EstPrmMkt = coverStat.EstNetPremiumMkt;
                        stat.SgndPrmMkt = coverStat.SgndNetPremium;
                    }
                    if (monStat != null)
                    {
                        stat.EstPrmSyn = monStat.EstPremiumMktDecln;
                        stat.EstPrmMkt = monStat.EstNetPremiumMktDecln;
                        stat.SgndPrmMkt = monStat.SgndNetPremium;
                    }
                    if (polStat != null)
                    {
                        stat.EstPrmSyn = polStat.EpiSyn;
                        stat.EstPrmMkt = polStat.EstNetPremium;
                        stat.SgndPrmMkt = polStat.SgndNetPremium;
                    }
                    retStats.Add(stat);
                }
            }

            var query = from s in retStats.AsQueryable()
                        select s;

			return  (string.IsNullOrEmpty(sortField)
                    ? query
                    :string.Equals(sortDirection, "ASC", StringComparison.CurrentCultureIgnoreCase)
				    ? query.OrderBy(sortField)
				    : query.OrderByDescending(sortField)).ToList();
		}
コード例 #10
0
        public async Task <List <StatisticDto> > GetUserStatisticsAsync(int userId)
        {
            var statistics = await _context.Statistics
                             .Include(s => s.User)
                             .Include(s => s.Licence)
                             .Where(s => s.User.Id == userId)
                             .AsNoTracking()
                             .OrderByDescending(l => l.Year)
                             .ToListAsync();

            var dtoList = new List <StatisticDto>();

            foreach (var item in statistics)
            {
                var dto = new StatisticDto();
                var xml = new XmlDocument();
                xml.LoadXml(item.StatisticXml);

                dto.Id          = item.Id;
                dto.Year        = item.Year;
                dto.FullName    = $"{item.User.FirstName} {item.User.LastName}";
                dto.UserId      = item.UserId;
                dto.LicenceName = item.Licence.LicenseName;
                var statistic = new CatchStatistic
                {
                    FishingClub = xml.SelectSingleNode("Statistik/Fischerverein")?.InnerText,
                    Year        = xml.SelectSingleNode("Statistik/Jahr")?.InnerText,
                    FirstName   = xml.SelectSingleNode("Statistik/Vorname")?.InnerText,
                    LastName    = xml.SelectSingleNode("Statistik/Nachname")?.InnerText,
                    Months      = new List <Months>()
                };

                var months = xml.SelectNodes("Statistik/Monate");
                if (months != null)
                {
                    foreach (XmlNode month in months)
                    {
                        if (month.HasChildNodes == false)
                        {
                            continue;
                        }
                        var newMonth = new Months
                        {
                            Month = month.SelectSingleNode("Monat")?.InnerText, Days = new List <Days>()
                        };
                        statistic.Months.Add(newMonth);

                        var days = month.SelectNodes("Tage");
                        if (days == null)
                        {
                            continue;
                        }
                        foreach (XmlNode day in days)
                        {
                            if (day.HasChildNodes == false)
                            {
                                continue;
                            }
                            var newTag = new Days
                            {
                                Day         = day.SelectSingleNode("Tag")?.InnerText,
                                Hour        = day.SelectSingleNode("Stunden")?.InnerText,
                                FishCatches = new List <FishCatch>()
                            };
                            newMonth.Days.Add(newTag);

                            var fishCatches = day.SelectNodes("Fang");
                            if (fishCatches == null)
                            {
                                continue;
                            }
                            foreach (XmlNode fishCatch in fishCatches)
                            {
                                if (fishCatch.HasChildNodes == false)
                                {
                                    continue;
                                }
                                var newFang = new FishCatch
                                {
                                    Number = fishCatch.SelectSingleNode("Anzahl")?.InnerText,
                                    Fish   = fishCatch.SelectSingleNode("Fisch")?.InnerText
                                };
                                newTag.FishCatches.Add(newFang);
                            }
                        }
                    }
                }

                dto.Statistic = statistic;
                dtoList.Add(dto);
            }
            return(dtoList);
        }