public static string ParseOption(this AssemblyFailGroupBy option) { switch (option) { case AssemblyFailGroupBy.BoardPartNumber: return("board-part-number"); case AssemblyFailGroupBy.CircuitPartNumber: return("circuit-part-number"); case AssemblyFailGroupBy.CitCode: return("cit"); case AssemblyFailGroupBy.FaultCode: return("fault"); case AssemblyFailGroupBy.Person: return("person"); case AssemblyFailGroupBy.Board: return("board"); default: throw new DomainException($"{option} is not a valid option"); } }
public void SetUp() { this.result = "board-part-number".ParseOption(); }
public void SetUp() { this.result = "board".ParseOption(); }
public void SetUp() { this.result = "person".ParseOption(); }
public ResultsModel GetAssemblyFailsMeasuresReport(DateTime fromDate, DateTime toDate, AssemblyFailGroupBy groupBy) { var reportLayout = new ValuesByWeekLayout(this.reportingHelper, this.GenerateReportTitle(groupBy)); var weeks = this.linnWeekService.GetWeeks(fromDate, toDate).ToList(); reportLayout.AddWeeks( weeks.Select( w => new AxisDetailsModel(w.LinnWeekNumber.ToString(), w.WeekEndingDDMON) { SortOrder = w.LinnWeekNumber })); var fails = this.assemblyFailsRepository.FilterBy(a => a.DateTimeFound >= fromDate && a.DateTimeFound <= toDate); var calculatedValues = this.CalculatedValues(fails, groupBy, weeks); calculatedValues = calculatedValues.Where(v => !string.IsNullOrWhiteSpace(v.RowId)); reportLayout.AddData(calculatedValues); var model = reportLayout.GetResultsModel(); this.reportingHelper.SortRowsByColumnValue(model, model.ColumnIndex("Total"), true); model.ValueDrillDownTemplates.Add( new DrillDownModel( "Details", this.GenerateValueDrillDown(groupBy, fromDate, toDate), null, model.ColumnIndex("Total"))); model.ColumnDrillDownTemplates.Add( new DrillDownModel( "Details", this.GenerateColumnDrillDown(groupBy, fromDate, toDate), null, model.ColumnIndex("Total"))); return(model); }
private IEnumerable <CalculationValueModel> CalculatedValues( IEnumerable <AssemblyFail> fails, AssemblyFailGroupBy groupBy, IReadOnlyCollection <LinnWeek> weeks) { switch (groupBy) { case AssemblyFailGroupBy.BoardPartNumber: return(fails.Select( f => new CalculationValueModel { RowId = f.BoardPartNumber ?? string.Empty, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); case AssemblyFailGroupBy.FaultCode: return(fails.Select( f => new CalculationValueModel { RowId = f.FaultCode?.FaultCode ?? string.Empty, RowTitle = f.FaultCode?.Description, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); case AssemblyFailGroupBy.Board: return(fails.Select( f => new CalculationValueModel { RowId = string.IsNullOrEmpty(f.BoardPartNumber) ? string.Empty : f.BoardPartNumber.IndexOf('/') >= 0 ? f.BoardPartNumber.Substring(0, f.BoardPartNumber.IndexOf('/')) : f.BoardPartNumber, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); case AssemblyFailGroupBy.CitCode: return(fails.Select( f => new CalculationValueModel { RowId = f.CitResponsible?.Code ?? string.Empty, RowTitle = f.CitResponsible?.Name, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); case AssemblyFailGroupBy.CircuitPartNumber: return(fails.Select( f => new CalculationValueModel { RowId = f.CircuitPart ?? string.Empty, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); case AssemblyFailGroupBy.Person: return(fails.Select( f => new CalculationValueModel { RowId = f.PersonResponsible?.Id.ToString() ?? string.Empty, RowTitle = f.PersonResponsible?.FullName ?? string.Empty, ColumnId = this.linnWeekService.GetWeek(f.DateTimeFound, weeks).LinnWeekNumber.ToString(), Quantity = f.NumberOfFails })); default: throw new ArgumentOutOfRangeException(nameof(groupBy), groupBy, null); } }
private string GenerateReportTitle(AssemblyFailGroupBy groupBy) { return($"Assembly Fails Measures Grouped By {Regex.Replace(groupBy.ToString(), "(\\B[A-Z])", " $1")}"); }
private string GenerateColumnDrillDown(AssemblyFailGroupBy groupBy, DateTime fromDate, DateTime toDate) { return($"/production/reports/assembly-fails-details/report?parentGroupBy={groupBy.ParseOption()}&fromDate={WebUtility.UrlEncode(fromDate.ToString("o"))}&toDate={WebUtility.UrlEncode(toDate.ToString("o"))}"); }
private string GenerateValueDrillDown(AssemblyFailGroupBy groupBy, DateTime fromDate, DateTime toDate) { return($"/production/reports/assembly-fails-details/report?{char.ToLowerInvariant(groupBy.ToString()[0]) + groupBy.ToString().Substring(1)}={{rowId}}&parentGroupBy={groupBy.ParseOption()}&fromDate={WebUtility.UrlEncode(fromDate.ToString("o"))}&toDate={WebUtility.UrlEncode(toDate.ToString("o"))}"); }
public void SetUp() { this.result = "circuit-part-number".ParseOption(); }
public void SetUp() { this.result = "fault".ParseOption(); }