private static OneTableExcelConfigurationBuilder <ScenarioCampaignFailureExportModel> CreateExcelConfigurationBuilder(string[] weekDays, DayOfWeek tenantStartDayOfWeek) { var confBuilder = new OneTableExcelConfigurationBuilder <ScenarioCampaignFailureExportModel>() .SetDefaultStyles(); return(confBuilder .OrderMembersAsDescribed() .IgnoreNotDescribed() .ForMember(m => m.ExternalCampaignId, o => o.Width(20)) .ForMember(m => m.CampaignName, o => o.Width(25)) .ForMember(m => m.SalesAreaGroupName, o => o.Width(25)) .ForMember(m => m.SalesAreaName, o => o.Width(25)) .ForMember(m => m.DurationSecs, o => o.Width(15)) .ForMember(m => m.MultipartNo, o => o.Width(13)) .ForMember(m => m.MultipartNo, o => o.Width(13)) .ForMember(m => m.StrikeWeightStartDate, o => o.Formatter(ReportFormatter.ConvertToShortDate).Header("StrikeWeight Start Date").Width(25)) .ForMember(m => m.StrikeWeightEndDate, o => o.Formatter(ReportFormatter.ConvertToShortDate).Header("StrikeWeight End Date").Width(25)) .ForMember(m => m.DayPartStartTime, o => o.Formatter(ReportFormatter.ConvertToTime).Header("Daypart Start Time").Width(18)) .ForMember(m => m.DayPartEndTime, o => o.Formatter(ReportFormatter.ConvertToTime).Header("Daypart End Time").Width(18)) .ForMember(m => m.DayPartDays, o => o.Header("Daypart Days") .Formatter(m => DaypartDayFormattingUtilities.FormatWeekDays(weekDays, ((string)m), tenantStartDayOfWeek)).Width(15)) .ForMember(m => m.FailureTypeName, o => o.Width(25)) .ForMember(m => m.FailureCount, o => o.Width(15)) .ForMember(m => m.PassesEncounteringFailure, o => o.Header("Pass(s) Encountering Failure").Width(30))); }
public static void GivenValidInputValuesThenFormattedValueOfDaypartDayReturned( string[] weekDays, string daypartDays, DayOfWeek startDayOfWeek, string expectedOutput) { // Act var result = DaypartDayFormattingUtilities.FormatWeekDays(weekDays, daypartDays, startDayOfWeek); // Assert _ = result.Should().Be(expectedOutput, becauseArgs: null); }
public static void GivenInputValuesAreNotCompatibleThenAnExceptionIsThrown() { // Arrange var weekDays = TestWeek; string daypartDays = "YYYY"; // Assert var ex = Assert.Throws <ArgumentException>(() => { //Act var result = DaypartDayFormattingUtilities.FormatWeekDays(weekDays, daypartDays, DayOfWeek.Monday); }); _ = ex.Message.Should().Contain("Length", becauseArgs: null); }
public static void GivenAnInvalidSecondInputThenAnExceptionIsThrown() { // Arrange var weekDays = TestWeek; string daypartDays = null; Type type = typeof(DaypartDayFormattingUtilities); MethodBase myMethodBase = type.GetMethod(nameof(DaypartDayFormattingUtilities.FormatWeekDays)); ParameterInfo[] parameterArray = myMethodBase.GetParameters(); // Assert var ex = Assert.Throws <ArgumentException>(() => { //Act var result = DaypartDayFormattingUtilities.FormatWeekDays(weekDays, daypartDays, DayOfWeek.Monday); }); _ = ex.ParamName.Should().Be(parameterArray[1].Name, becauseArgs: null); }
public List <ScenarioCampaignFailureModel> ExtendScenarioCampaignFailureModel(List <ScenarioCampaignFailure> scenarioCampaignFailures) { var scenarioCampaignFailureModelList = new List <ScenarioCampaignFailureModel>(); if (scenarioCampaignFailures is null || !scenarioCampaignFailures.Any()) { return(scenarioCampaignFailureModelList); } var campaigns = new Dictionary <string, Campaign>(); var failureTypes = new Dictionary <int, FaultType>(); var failureTypeIds = scenarioCampaignFailures .Select(r => r.FailureType) .Distinct(); var campaignIds = scenarioCampaignFailures .Select(r => r.ExternalCampaignId) .Distinct(); var tenantStartDayOfWeek = _tenantSettingsRepository.GetStartDayOfWeek(); var weekDays = DaypartDayFormattingUtilities.GetWeekDaysWithCustomStart(tenantStartDayOfWeek); failureTypes = _functionalAreaRepository .FindFaultTypes(failureTypeIds.ToList()) .ToDictionary(r => r.Id); campaigns = _campaignRepository .FindByRefs(campaignIds.ToList()) .ToDictionary(r => r.ExternalId); foreach (var item in scenarioCampaignFailures) { var scenarioCampaignResultModel = new ScenarioCampaignFailureModel() { Id = item.Id, ExternalCampaignId = item.ExternalCampaignId, SalesAreaGroupName = item.SalesAreaGroup, SalesAreaName = item.SalesArea, DurationSecs = (int)item.Length.ToTimeSpan().TotalSeconds, MultipartNo = item.MultipartNo, StrikeWeightStartDate = item.StrikeWeightStartDate.ToUniversalTime(), StrikeWeightEndDate = item.StrikeWeightEndDate.ToUniversalTime(), DayPartStartTime = item.DayPartStartTime, DayPartEndTime = item.DayPartEndTime, DayPartDays = DaypartDayFormattingUtilities.FormatWeekDays(weekDays, item.DayPartDays, tenantStartDayOfWeek), FailureType = item.FailureType, FailureCount = item.FailureCount, PassesEncounteringFailure = item.PassesEncounteringFailure }; if (item.ExternalCampaignId != null && campaigns.TryGetValue(item.ExternalCampaignId, out Campaign campaign)) { scenarioCampaignResultModel.CampaignName = campaign.Name; } if (item.FailureType != null && failureTypes.TryGetValue(item.FailureType, out FaultType faultType)) { scenarioCampaignResultModel.FailureTypeName = faultType.Description?.FirstOrDefault(e => e.Key == "ENG").Value; } scenarioCampaignFailureModelList.Add(scenarioCampaignResultModel); } return(scenarioCampaignFailureModelList); }