private List <MeasurementPointReading> GetReadingsForMeasurementPoint(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail, string uom) { var readings = inspectionDetail.MeaseurementPointRecors.Where(r => r.CompartMeasurePointId == measurementPoint.Id).ToList(); var possibleReadings = measurementPoint.DefaultNumberOfMeasurements; List <MeasurementPointReading> readingList = new List <MeasurementPointReading>(); for (int i = 0; i < possibleReadings; i++) { var record = new MeasurementPointReading() { Id = i + 1, Measurement = Decimal.Round(-1, 2), ToolId = measurementPoint.DefaultToolId != null ? (int)measurementPoint.DefaultToolId : 0, WornPercentage = Decimal.Round(0, 2) }; var recordDal = readings.Where(r => r.MeasureNumber == i + 1).FirstOrDefault(); if (recordDal != null) { //If tool is KPO, YES/NO, or Drive Lugs dont convert to inch because the front end wont be able to convert it to the answer record.Measurement = Decimal.Round((uom == "mm" || recordDal.ToolId == 5 || recordDal.ToolId == 6 || recordDal.ToolId == 7) ? recordDal.Reading : recordDal.Reading.MilimeterToInch(), 2); record.ToolId = recordDal.ToolId; record.WornPercentage = Decimal.Round(recordDal.Worn, 2); } readingList.Add(record); } return(readingList); }
private string GetAverageReadingForMeasurementPoint(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail, string uom) { var readings = inspectionDetail.MeaseurementPointRecors .Where(r => r.CompartMeasurePointId == measurementPoint.Id) .Where(r => r.ToolId != -1) .ToList(); if (readings.Count == 0) { return("?"); } if (readings.First().Tool.tool_code == "YES/NO") { switch ((int)readings.First().Reading) { case 1: return("Yes"); case 0: return("No"); default: return("?"); } } if (readings.First().Tool.tool_code == "KPO") { switch ((int)readings.First().Reading) { case 1: return("A"); case 2: return("B"); case 3: return("C"); case 4: return("D"); default: return("?"); } } decimal total = 0; decimal count = 0; readings.ForEach(r => { total += uom == "mm" ? r.Reading : r.Reading.MilimeterToInch(); count++; }); if (total > 0 && count > 0) { return(Decimal.Round(total / count, 2).ToString()); } return("0"); }
private string GetCommentForMeasurementPoint(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail) { var reading = inspectionDetail.MeaseurementPointRecors.Where(r => r.CompartMeasurePointId == measurementPoint.Id).FirstOrDefault(); if (reading == null) { return(""); } return(reading.Notes); }
private MeasurementPonitsViewModel MeasurementPointsViewModelConverter(COMPART_MEASUREMENT_POINT measurementPoint, List <CalculationMethod> calculationMethods, int bugetLife = 0) { return(new MeasurementPonitsViewModel { CompartId = measurementPoint.CompartId, Name = measurementPoint.Name, DefaultNumberOfMeasurements = measurementPoint.DefaultNumberOfMeasurements, DefaultToolId = measurementPoint.DefaultToolId, MeasurementPonitId = measurementPoint.Id, Order = measurementPoint.Order, isDisabled = measurementPoint.Disabled, BugetLife = bugetLife, CalculationMethods = calculationMethods }); }
private MeasurementPointRecord GetMeasurementPointRecord(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail, string uom) { var readingList = new List <MeasurementPointReading>(); var tool = measurementPoint.PossibleTools.FirstOrDefault(); return(new MeasurementPointRecord() { CompartMeasurementPointId = measurementPoint.Id, Name = measurementPoint.Name, Photo = tool != null?Convert.ToBase64String(tool.HowToUseImage) : null, AverageReading = GetAverageReadingForMeasurementPoint(measurementPoint, inspectionDetail, uom), Comment = GetCommentForMeasurementPoint(measurementPoint, inspectionDetail), Photos = GetPhotosForMeasurementPoint(measurementPoint, inspectionDetail), WornPercentage = GetAverageWornPercentageForMeasurementPoint(measurementPoint, inspectionDetail), Readings = GetReadingsForMeasurementPoint(measurementPoint, inspectionDetail, uom) }); }
private List <MeasurementPointPhoto> GetPhotosForMeasurementPoint(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail) { var reading = inspectionDetail.MeaseurementPointRecors.Where(r => r.CompartMeasurePointId == measurementPoint.Id).FirstOrDefault(); if (reading == null) { return(new List <MeasurementPointPhoto>()); } return(reading.Photos.Select(p => new MeasurementPointPhoto() { //Comment = p.Comment, Id = p.Id, //Photo = Convert.ToBase64String(p.Data), //Title = p.Title }).ToList()); }
public async Task <Tuple <int, string> > CreateNewMeasurementPoint(CreateMeasurementPointModel model) { var LogoArr = model.Image.Split(','); string meausurementPhoto = ""; if (LogoArr.Length > 1) { meausurementPhoto = LogoArr[1].Trim(); } //making sure it is the correct order //var lastOrder = _context.COMPART_MEASUREMENT_POINT.OrderBy(c => c.Order).LastOrDefault(); //if (lastOrder != null && lastOrder.Order != model.Order) // model.Order = lastOrder.Order + 1; var newMeasurement = new COMPART_MEASUREMENT_POINT { CompartId = model.CompartId, DefaultNumberOfMeasurements = model.DefaultNumberOfMeasurements, DefaultToolId = model.DefaultToolId, Image = meausurementPhoto.Length > 0 ? Convert.FromBase64String(meausurementPhoto) : null, Order = model.Order, Name = model.Name, Disabled = model.isDisabled, }; _context.COMPART_MEASUREMENT_POINT.Add(newMeasurement); try { await _context.SaveChangesAsync(); } catch (Exception ex) { return(Tuple.Create(-1, "Failed to create new measurement ponit records. " + ex.Message + ". " + ex.InnerException != null ? ex.InnerException.Message : "")); } return(Tuple.Create(newMeasurement.Id, "New measurement point has been added successfully. ")); }
private decimal GetAverageWornPercentageForMeasurementPoint(COMPART_MEASUREMENT_POINT measurementPoint, TRACK_INSPECTION_DETAIL inspectionDetail) { var readings = inspectionDetail.MeaseurementPointRecors.Where(r => r.CompartMeasurePointId == measurementPoint.Id).ToList(); if (readings.Count == 0) { return(0); } decimal total = 0; int count = 0; readings.ForEach(r => { total += r.Worn; count++; }); if (total > 0) { return(Decimal.Round(total / count, 2)); } return(Decimal.Round(0, 2)); }