public async Task <ResponseData> SyncOfflineData(ReportHeader rptHdr, ReportAllDetailsVm reportAllDetails) { try { _logger.LogInformation($"{nameof(SyncOfflineData)} - Called"); var existHeaderData = _rsaContext.ReportHeaders.AsNoTracking().Where(w => w.ReportGuid == rptHdr.ReportGuid).FirstOrDefault(); rptHdr.CreatedOn = DateTime.UtcNow; rptHdr.CreatedBy = rptHdr.CreatedBy; rptHdr.IsSafetyFirstComplete = false; rptHdr.IsCustomerEquipmentComplete = false; rptHdr.IsVibrationAnalysisComplete = false; rptHdr.IsObservationComplete = false; rptHdr.IsRecommendationComplete = false; rptHdr.ApprovedBy = null; rptHdr.DocTriggerFrom = "DRAFT"; if (existHeaderData == null) { _rsaContext.Add(rptHdr); } else { rptHdr.Id = existHeaderData.Id; _rsaContext.Update(rptHdr); } #region SafetyFirstCheck if (reportAllDetails.SafetyFirstCheck != null) { var eixstsSafety = _rsaContext.SafetyFirstChecks.AsNoTracking().FirstOrDefault(a => a.ReportGuid == rptHdr.ReportGuid); if (eixstsSafety != null) { _rsaContext.SafetyFirstChecks.Remove(eixstsSafety); _rsaContext.SafetyFirstCheckDetails.RemoveRange(_rsaContext.SafetyFirstCheckDetails.AsNoTracking().Where(a => a.ReportGuid == rptHdr.ReportGuid)); } reportAllDetails.SafetyFirstCheck.ReportGuid = rptHdr.ReportGuid; reportAllDetails.SafetyFirstCheck.Id = 0; foreach (var item in reportAllDetails.SafetyFirstCheck.SafetyFirstCheckDetails) { item.Id = 0; item.ReportGuid = rptHdr.ReportGuid; } _rsaContext.Add(reportAllDetails.SafetyFirstCheck); } #endregion #region CustomerEquipmentActivity if (reportAllDetails.CustomerEquipmentActivity != null) { var custEquipAct = _rsaContext.CustomerEquipmentActivities.AsNoTracking().FirstOrDefault(a => a.ReportGuid == rptHdr.ReportGuid); if (custEquipAct != null) { _rsaContext.CustomerEquipmentActivities.Remove(custEquipAct); } reportAllDetails.CustomerEquipmentActivity.ReportGuid = rptHdr.ReportGuid; reportAllDetails.CustomerEquipmentActivity.Id = 0; _rsaContext.Add(reportAllDetails.CustomerEquipmentActivity); } #endregion #region VibrationAnalysisHeader if (reportAllDetails.VibrationAnalysisHeader != null) { var existVibAna = _rsaContext.VibrationAnalysisHeaders.AsNoTracking().FirstOrDefault(a => a.ReportGuid == rptHdr.ReportGuid); if (existVibAna != null) { _rsaContext.VibrationAnalysisHeaders.Remove(existVibAna); var exisVibAnaDetails = _rsaContext.VibrationAnalysis.AsNoTracking().Where(a => a.ReportGuid == rptHdr.ReportGuid); if (exisVibAnaDetails.Any()) { _rsaContext.VibrationAnalysis.RemoveRange(exisVibAnaDetails); } } reportAllDetails.VibrationAnalysisHeader.ReportGuid = rptHdr.ReportGuid; reportAllDetails.VibrationAnalysisHeader.Id = 0; foreach (var item in reportAllDetails.VibrationAnalysisHeader.VibrationAnalysis) { item.Id = 0; item.ReportGuid = rptHdr.ReportGuid; } _rsaContext.Add(reportAllDetails.VibrationAnalysisHeader); } #endregion #region Observations if (reportAllDetails.Observations != null) { var existObs = _rsaContext.Observations.AsNoTracking().Where(w => w.ReportGuid == rptHdr.ReportGuid); if (existObs.Any()) { _rsaContext.Observations.RemoveRange(existObs); } foreach (var obs in reportAllDetails.Observations) { obs.ReportGuid = rptHdr.ReportGuid; obs.Id = 0; _rsaContext.Add(obs); } } #endregion #region Recommendations if (reportAllDetails.Recommendations != null) { var existRecomm = _rsaContext.Recommendations.AsNoTracking().Where(w => w.ReportGuid == rptHdr.ReportGuid); if (existRecomm.Any()) { _rsaContext.Recommendations.RemoveRange(existRecomm); } foreach (var recomm in reportAllDetails.Recommendations) { recomm.ReportGuid = rptHdr.ReportGuid; recomm.Id = 0; _rsaContext.Add(recomm); } } #endregion #region SpareParts if (reportAllDetails.SpareParts != null) { var existSparts = _rsaContext.SpareParts.AsNoTracking().Where(w => w.ReportGuid == rptHdr.ReportGuid); if (existSparts.Any()) { _rsaContext.SpareParts.RemoveRange(existSparts); } foreach (var sp in reportAllDetails.SpareParts) { sp.ReportGuid = rptHdr.ReportGuid; sp.Id = 0; _rsaContext.Add(sp); } } #endregion if (reportAllDetails.Misc != null) { var exisMisc = _rsaContext.Miscs.AsNoTracking().FirstOrDefault(w => w.ReportGuid == rptHdr.ReportGuid); if (exisMisc != null) { _rsaContext.Miscs.Remove(exisMisc); } reportAllDetails.Misc.Id = 0; reportAllDetails.Misc.ReportGuid = rptHdr.ReportGuid; reportAllDetails.Misc.CustomerDate = DateTime.Now; reportAllDetails.Misc.FirmDate = DateTime.Now; _rsaContext.Add(reportAllDetails.Misc); } if (await _rsaContext.SaveChangesAsync() > 0) { return(new ResponseData() { status = ResponseStatus.success, data = rptHdr.ReportGuid, message = "Report Synchronized Successfully." }); } return(new ResponseData() { status = ResponseStatus.warning, data = rptHdr.ReportGuid, message = "Report Synchronization Failed." }); } catch (Exception ex) { _logger.LogError($"{nameof(SyncOfflineData)} - Error", ex); return(new ResponseData() { status = ResponseStatus.error, data = rptHdr.ReportGuid, message = "Report Synchronization Failed." }); } }
/// <summary> /// It can newly create or modify the existing details /// </summary> /// <param name="reportHeaderGuid"></param> /// <param name=""></param> /// <returns></returns> public async Task <ResponseData> SaveReportOtherDetails(Guid reportHeaderGuid, ReportAllDetailsVm reportAllDetails) { try { _logger.LogInformation($"{nameof(SaveReportOtherDetails)} - Called"); if (reportHeaderGuid != reportAllDetails.ReportGuid || reportAllDetails.SafetyFirstCheck.Id == 0) { return new ResponseData() { status = ResponseStatus.warning, message = "Call is not genuine" } } ; if (reportAllDetails.SafetyFirstCheck.SafetyFirstCheckDetails == null || reportAllDetails.SafetyFirstCheck.SafetyFirstCheckDetails.Count != 10) { return new ResponseData() { status = ResponseStatus.warning, message = "Data rows are not in expected range in Safety First Check" } } ; if (reportAllDetails.SafetyFirstCheck.SafetyFirstCheckDetails.Where(w => w.Id == 0).Any()) { return new ResponseData() { status = ResponseStatus.warning, message = "No new entry is allowed in edit mode of Safe First Check" } } ; if (reportAllDetails.CustomerEquipmentActivity.Id == 0 && _rsaContext.CustomerEquipmentActivities.Any(a => a.ReportGuid == reportHeaderGuid)) { return(new ResponseData() { status = ResponseStatus.warning, message = $"Customer Equipment Activity is already exists for Report Header Id {reportHeaderGuid}" }); } if (reportAllDetails.VibrationAnalysisHeader.Id == 0 && _rsaContext.VibrationAnalysisHeaders.Any(a => a.ReportGuid == reportHeaderGuid)) { return(new ResponseData() { status = ResponseStatus.warning, message = $"Vibration Analysis is already exists for Report Header Id {reportHeaderGuid}" }); } var reportHeader = _rsaContext.ReportHeaders.FirstOrDefault(f => f.ReportGuid == reportHeaderGuid); reportHeader.UpdatedOn = DateTime.UtcNow; reportHeader.IsCustomerEquipmentComplete = true; reportHeader.IsVibrationAnalysisComplete = true; reportHeader.IsObservationComplete = true; reportHeader.IsRecommendationComplete = true; _rsaContext.Update(reportHeader); _rsaContext.Update(reportAllDetails.SafetyFirstCheck); if (reportAllDetails.CustomerEquipmentActivity.Id == 0) { reportAllDetails.CustomerEquipmentActivity.ReportGuid = reportHeaderGuid; _rsaContext.Add(reportAllDetails.CustomerEquipmentActivity); } else { reportAllDetails.CustomerEquipmentActivity.ReportGuid = reportHeaderGuid; _rsaContext.Update(reportAllDetails.CustomerEquipmentActivity); } if (reportAllDetails.VibrationAnalysisHeader != null) { foreach (var item in reportAllDetails.VibrationAnalysisHeader.VibrationAnalysis) { item.ReportGuid = reportHeaderGuid; } if (reportAllDetails.VibrationAnalysisHeader.Id == 0) { reportAllDetails.VibrationAnalysisHeader.ReportGuid = reportHeaderGuid; _rsaContext.Add(reportAllDetails.VibrationAnalysisHeader); } else { reportAllDetails.VibrationAnalysisHeader.ReportGuid = reportHeaderGuid; _rsaContext.Update(reportAllDetails.VibrationAnalysisHeader); } } foreach (var obs in reportAllDetails.Observations) { obs.ReportGuid = reportHeaderGuid; if (obs.Id == 0) { _rsaContext.Add(obs); } else { _rsaContext.Update(obs); } } foreach (var recomm in reportAllDetails.Recommendations) { recomm.ReportGuid = reportHeaderGuid; if (recomm.Id == 0) { _rsaContext.Add(recomm); } else { _rsaContext.Update(recomm); } } foreach (var sp in reportAllDetails.SpareParts) { sp.ReportGuid = reportHeaderGuid; if (sp.Id == 0) { _rsaContext.Add(sp); } else { _rsaContext.Update(sp); } } if (reportAllDetails.Misc.Id == 0) { reportAllDetails.Misc.ReportGuid = reportHeaderGuid; //reportAllDetails.Misc.CustomerDate = DateTime.Now; //reportAllDetails.Misc.FirmDate = DateTime.Now; _rsaContext.Add(reportAllDetails.Misc); } else { reportAllDetails.Misc.ReportGuid = reportHeaderGuid; _rsaContext.Update(reportAllDetails.Misc); } await _rsaContext.SaveChangesAsync(); return(new ResponseData() { status = ResponseStatus.success, data = reportHeaderGuid, message = "Report Saved Successfully." }); } catch (Exception ex) { _logger.LogError($"{nameof(SaveReportOtherDetails)} - Error", ex); return(new ResponseData() { status = ResponseStatus.error, data = reportHeaderGuid, message = "Report Save Failed." }); } }
public async Task <ResponseData> GetReportDetails(Guid reportHeaderGuid) { ReportAllDetailsVm reportAllDetailsVm = new ReportAllDetailsVm(); reportAllDetailsVm.ReportGuid = reportHeaderGuid; reportAllDetailsVm.SafetyFirstCheck = _rsaContext.SafetyFirstChecks.AsNoTracking() .Include(a => a.SafetyFirstCheckDetails) .Where(w => w.ReportGuid == reportHeaderGuid).FirstOrDefault(); if (reportAllDetailsVm.SafetyFirstCheck == null) { return new ResponseData() { status = ResponseStatus.error, message = "Error while getting data." } } ; reportAllDetailsVm.CustomerEquipmentActivity = _rsaContext.CustomerEquipmentActivities.AsNoTracking() .Where(w => w.ReportGuid == reportHeaderGuid).FirstOrDefault(); if (reportAllDetailsVm.CustomerEquipmentActivity == null) { reportAllDetailsVm.CustomerEquipmentActivity = new CustomerEquipmentActivity() { ReportGuid = reportHeaderGuid, PreviousServiceDate = DateTime.Now, CurrentServiceDate = DateTime.Now, ReportDate = DateTime.Now }; } reportAllDetailsVm.VibrationAnalysisHeader = _rsaContext.VibrationAnalysisHeaders.AsNoTracking() .Include(a => a.VibrationAnalysis) .Where(w => w.ReportGuid == reportHeaderGuid) .FirstOrDefault(); if (reportAllDetailsVm.VibrationAnalysisHeader == null) { reportAllDetailsVm.VibrationAnalysisHeader = new VibrationAnalysisHeader() { ReportGuid = reportHeaderGuid }; } else { var orderParams = new VibrationAnalysis[parameterUnits.Count]; int i = 0; foreach (var item in parameterUnits.OrderBy(o => o.Key)) { orderParams[i] = reportAllDetailsVm.VibrationAnalysisHeader.VibrationAnalysis.First(w => item.Value.Contains($"{w.Parameter}~{w.Units}", StringComparison.OrdinalIgnoreCase)); i++; } reportAllDetailsVm.VibrationAnalysisHeader.VibrationAnalysis = orderParams; } List <Observation> obs = _rsaContext.Observations.AsNoTracking().Where(w => w.ReportGuid == reportHeaderGuid && w.Status == 'A').ToList(); if (obs == null) { obs = new List <Observation>(); } reportAllDetailsVm.Observations = obs; List <Recommendation> recomms = _rsaContext.Recommendations.AsNoTracking().Where(w => w.ReportGuid == reportHeaderGuid && w.Status == 'A').ToList(); if (recomms == null) { recomms = new List <Recommendation>(); } reportAllDetailsVm.Recommendations = recomms; List <SparePart> spareParts = _rsaContext.SpareParts.AsNoTracking().Where(w => w.ReportGuid == reportHeaderGuid && w.Status == 'A').ToList(); if (spareParts == null) { spareParts = new List <SparePart>(); } reportAllDetailsVm.SpareParts = spareParts; reportAllDetailsVm.Misc = _rsaContext.Miscs.AsNoTracking().FirstOrDefault(f => f.ReportGuid == reportHeaderGuid) ?? new Misc() { FirmDate = DateTime.Now, CustomerDate = DateTime.Now }; var signFirmImage = _rsaContext.ImageHouses.AsNoTracking().FirstOrDefault(f => f.ReportGuid == reportHeaderGuid && f.ImageLabel == StringConstants.FirmSignature); if (signFirmImage != null) { reportAllDetailsVm.FirmSignatureImageId = signFirmImage.ImageFileGuid; } var signCustImage = _rsaContext.ImageHouses.AsNoTracking().FirstOrDefault(f => f.ReportGuid == reportHeaderGuid && f.ImageLabel == StringConstants.CustomerSignature); if (signCustImage != null) { reportAllDetailsVm.CustomerSignatureImageId = signCustImage.ImageFileGuid; } var sfc_signFirmImage = _rsaContext.ImageHouses.AsNoTracking().FirstOrDefault(f => f.ReportGuid == reportHeaderGuid && f.ImageLabel == StringConstants.SfcFirmSignature); if (sfc_signFirmImage != null) { reportAllDetailsVm.SfcFirmSignatureImageId = sfc_signFirmImage.ImageFileGuid; } var sfc_signCustImage = _rsaContext.ImageHouses.AsNoTracking().FirstOrDefault(f => f.ReportGuid == reportHeaderGuid && f.ImageLabel == StringConstants.SfcCustomerSignature); if (sfc_signCustImage != null) { reportAllDetailsVm.SfcCustomerSignatureImageId = sfc_signCustImage.ImageFileGuid; } return(new ResponseData() { status = ResponseStatus.success, data = reportAllDetailsVm }); }
public async Task <ActionResult> SaveReportAllOtherDetails([FromQuery] Guid reportHeaderGuid, [FromBody] ReportAllDetailsVm reportAllDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var res = await _reportActivities.SaveReportOtherDetails(reportHeaderGuid, reportAllDetails); return(Ok(res)); } catch (Exception ex) { _logger.LogError($"{nameof(SaveReportAllOtherDetails)} - Error", ex); return(StatusCode(StatusCodes.Status500InternalServerError, new { data = "Error occurred. Please contact admin" })); } }