public ValidationResult NewValidationResultFromRepo(val_validationresult result) { return(new ValidationResult { Id = result.Id, ProductId = result.ProductId, EventId = result.EventId, EventName = result.EventName, ValidationSettingId = result.ValidationSettingId, LeagueName = result.LeagueName, LeagueId = result.LeagueId, LocationName = result.LocationName, LocationId = result.LocationId, Market = result.Market, Provider = result.Provider, SportName = result.SportName, SportId = result.SportId, Status = result.Status, LastUpdate = result.LastUpdate, UpdatedOn = result.UpdatedOn, XmlMessage = "", PointsToHighline = result.PointsToHighline, Counter = result.Counter, IsActive = result.IsActive, CreatedOn = result.CreatedOn }); }
public ValidationResultsHashModel NewRepositoryValidationResultFrom(ArrayList results, ValidationSetting setting, Event @event, string market, string provider) { var ruleResults = results.Cast <RuleResultDTO>().ToArray(); ruleResults = ruleResults.DistinctBy(x => x.PointToHighline).ToArray(); var pointToHighline = ""; if (setting.IsContainsRuleForAllNodes) { pointToHighline = string.Join("|", ruleResults.Where(x => x.IsIssue && x.Rule.IsForAllNodes == false).Select(x => x.PointToHighline.ToString()).Distinct()); var groupsByNodeName = ruleResults.Where(x => x.IsIssue && x.Rule.IsForAllNodes).GroupBy(x => x.ParentNodeName); foreach (var groupByNodeName in groupsByNodeName) { var groupsByRuleId = groupByNodeName.GroupBy(x => x.Rule.Id).ToArray(); var maxCount = groupsByRuleId.Max(x => x.Count()); foreach (var grouping in groupsByRuleId) { if (grouping.Count() == maxCount) { foreach (var ruleResultDto in grouping) { pointToHighline += "|" + ruleResultDto.PointToHighline.ToString(); } } } } } else { pointToHighline = string.Join("|", ruleResults.Where(x => x.IsIssue).Select(x => x.PointToHighline.ToString()).Distinct()); } string markets = ""; string providers = ""; bool isContainsSingleProvider = true; bool isContainsSingleMarket = true; var resultWithMarket = ruleResults.FirstOrDefault(x => x.IsMarket || x.Market != ""); if (resultWithMarket != null) { var resultWithProvider = ruleResults.FirstOrDefault(x => x.IsProvider || x.Provider != ""); if (resultWithProvider != null) { markets = market; providers = provider; } else { isContainsSingleProvider = false; markets = market; // select all providers var bookmakers = resultWithMarket.ParentXElement.XPathSelectElements(BookmakerName); var withAttributes = bookmakers.Where(x => x.HasAttributes); List <string> names = new List <string>(); foreach (var withAttribute in withAttributes) { var nameAttr = withAttribute.Attribute("name"); if (nameAttr != null) { names.Add(nameAttr.Value); } } if (names.Count > 0) { providers = string.Join(", ", names); } } } else { isContainsSingleMarket = false; /* * // select all markets and providers * if (@event.MarketNames != null) * { * markets = string.Join(",", @event.MarketNames.Distinct()); * } * if (@event.ProviderNames != null) * { * providers = string.Join(",", @event.ProviderNames.Distinct()); * } */ } var result = new val_validationresult { EventId = (long)@event.EventId, Status = @event.Status, LeagueName = @event.LeagueName, EventName = @event.BuildEventName(), LastUpdate = @event.LastUpdate, LocationName = @event.LocationName, SportName = @event.SportName, CreatedBy = "Admin", UpdatedBy = "Admin", CreatedOn = DateTime.UtcNow, UpdatedOn = DateTime.UtcNow, ProductId = (int)setting.ProductId, Market = markets, Provider = providers, ValidationSettingId = setting.Id, PointsToHighline = pointToHighline, IsActive = true }; // XmlMessage = string.Join("|", resultsWithoutMarketAndProviderDTO.Select(x => x.OuterXml)), if (@event.LeagueId != null) { result.LeagueId = (long)@event.LeagueId; } if (@event.SportId != null) { result.SportId = (long)@event.SportId; } if (@event.LocationId != null) { result.LocationId = (long)@event.LocationId; } return(new ValidationResultsHashModel { ContainsSingleMarket = isContainsSingleMarket, ContainsSingleProvider = isContainsSingleProvider, Result = result }); }