public void SetUp() { mtaLogFilters = new GetMtaLogsRequest() { Actions = new[] { LogAction.Anticheat, LogAction.Api } }; sourceAffectedModels = new List <SourceAffectedModel>(); database = new Mock <IDatabase>(); filesManager = new Mock <IReadOnlyFilesManager>(); mapper = new Mock <IMapper>(); httpContextWriter = new Mock <IHttpContextWriter>(); logKeyWordsDictionary = new Mock <LogKeyWordsDictionary>(); database.Setup(d => d.MtaLogRepository.GetMtaLogs(mtaLogFilters, It.IsNotNull <IList <string> >())) .ReturnsAsync(new List <MtaLog>() { new MtaLog(), new MtaLog() }); database.Setup(d => d.PhoneSmsRepository.GetPhoneSms(mtaLogFilters, It.IsNotNull <IList <string> >())) .ReturnsAsync(new List <PhoneSms>() { new PhoneSms(), new PhoneSms() }); mapper.Setup(m => m.Map <IEnumerable <MtaLogModel> >(It.IsNotNull <IEnumerable <MtaLog> >())) .Returns(new List <MtaLogModel>()); mapper.Setup(m => m.Map <IEnumerable <MtaLogModel> >(It.IsNotNull <IEnumerable <PhoneSms> >())) .Returns(new List <MtaLogModel>()); logReader = new LogReader(database.Object, filesManager.Object, mapper.Object, httpContextWriter.Object, logKeyWordsDictionary.Object); }
public void GetMtaLogsFromDatabase_ActionsContainPhoneSmsAndOther_VerifyGetMtaLogsAndGetPhoneSmsCalled() { mtaLogFilters = new GetMtaLogsRequest() { Actions = new[] { LogAction.Anticheat, LogAction.Api, LogAction.PhoneSms } }; logReader.GetMtaLogsFromDatabase(mtaLogFilters, sourceAffectedModels); database.Verify(d => d.MtaLogRepository.GetMtaLogs(mtaLogFilters, It.IsNotNull <IList <string> >()), Times.Once); database.Verify(d => d.PhoneSmsRepository.GetPhoneSms(mtaLogFilters, It.IsNotNull <IList <string> >()), Times.Once); }
public void GetMtaLogsFromDatabase_TheOnlyActionIsPhoneSms_VerifyGetPhoneSmsCalled() { mtaLogFilters = new GetMtaLogsRequest() { Actions = new[] { LogAction.PhoneSms } }; logReader.GetMtaLogsFromDatabase(mtaLogFilters, sourceAffectedModels); database.Verify(d => d.MtaLogRepository.GetMtaLogs(mtaLogFilters, It.IsNotNull <IList <string> >()), Times.Never); database.Verify(d => d.PhoneSmsRepository.GetPhoneSms(mtaLogFilters, It.IsNotNull <IList <string> >()), Times.Once); }
private static List <string> FetchSourceAffectedValues(MtaLogFiltersParams filters, IEnumerable <SourceAffectedModel> sourceAffectedModels) { var sourceAffectedValues = filters.SourceAffectedLogType switch { SourceAffectedLogType.Account or SourceAffectedLogType.Character => sourceAffectedModels .Select(s => SourceAffectedLogDictionary.Map(s.Type, s.Id.ToString())).ToList(), SourceAffectedLogType.System or SourceAffectedLogType.Pefuel or SourceAffectedLogType.Petoll => new List <string> { SourceAffectedLogDictionary.Map(filters.SourceAffectedLogType) }, _ => new List <string> { SourceAffectedLogDictionary.Map(filters.SourceAffectedLogType, filters.SourceAffected) } }; return(sourceAffectedValues); } #endregion }
public async Task <IEnumerable <MtaLogModel> > GetMtaLogsFromDatabase(MtaLogFiltersParams filters, IEnumerable <SourceAffectedModel> sourceAffectedModels) { var sourceAffectedValues = FetchSourceAffectedValues(filters, sourceAffectedModels); PagedList <MtaLog> mtaLogs = default; PagedList <PhoneSms> phoneSms = default; if (filters.Actions.Any(l => l != LogAction.PhoneSms)) { mtaLogs = (await database.MtaLogRepository.GetMtaLogs(filters, sourceAffectedValues)) .ToPagedList(filters.PageNumber, filters.PageSize); } if (filters.Actions.Contains(LogAction.PhoneSms)) { phoneSms = (await database.PhoneSmsRepository.GetPhoneSms(filters, sourceAffectedValues)) .ToPagedList(filters.PageNumber, filters.PageSize); } httpContextWriter.AddPagination(filters.PageNumber, filters.PageSize, mtaLogs.TotalCount + (phoneSms != null ? phoneSms.TotalCount : 0), mtaLogs.TotalPages + (phoneSms != null ? phoneSms.TotalPages : 0)); var mtaLogModels = mapper.Map <IEnumerable <MtaLogModel> >(mtaLogs); if (phoneSms != null) { mtaLogModels = mtaLogModels.Concat(mapper.Map <IEnumerable <MtaLogModel> >(phoneSms)); } mtaLogModels = filters.SortType == DateSortType.Descending ? mtaLogModels.OrderByDescending(m => m.Date) : mtaLogModels.OrderBy(m => m.Date); return(mtaLogModels); }