/// <summary> /// This method is used to Create Health Track /// </summary> public async Task <CovidHealthTrack> CreateCovidHealthTrack(CovidHealthTrack covidHealthTrack) { _context.CovidHealthTrack.Add(covidHealthTrack); await _context.SaveChangesAsync(); _context.Entry(covidHealthTrack).Reference(c => c.Employee).Load(); return(covidHealthTrack); }
/// <summary> /// /// </summary> /// <param name="covidHealthTrackViewModel"></param> /// <returns></returns> public async Task <IResult> CreateCovidHealthTrack(CovidHealthTrackViewModel covidHealthTrackViewModel) { var result = new Result { Operation = Operation.Create, Status = Status.Success, StatusCode = HttpStatusCode.OK }; try { if (covidHealthTrackViewModel != null) { var todayDate = DateTime.Now.Date; var existingDeclaration = _healthTrackRepository.GetExistingCovidDeclaration(covidHealthTrackViewModel.CovidConfirmationDate, covidHealthTrackViewModel.EmployeeId); if (existingDeclaration.Result != null) { result.Status = Status.Fail; result.StatusCode = HttpStatusCode.NotAcceptable; result.Message = "You have already submitted declaration for this confirmation date."; return(result); } else { // now add logic to create Covid declaration var covidHealthTrackModel = new CovidHealthTrack(); // To map health Track detail covidHealthTrackModel.MapFromViewModel(covidHealthTrackViewModel, (ClaimsIdentity)_principal.Identity); covidHealthTrackModel = await _healthTrackRepository.CreateCovidHealthTrack(covidHealthTrackModel); covidHealthTrackViewModel.Id = covidHealthTrackModel.Id; var employeeVm = new EmployeeViewModel(); employeeVm.MapFromModel(covidHealthTrackModel.Employee); covidHealthTrackViewModel.Employee = employeeVm; // send email to HR await SendCovidEmail(covidHealthTrackViewModel); result.Body = covidHealthTrackViewModel; return(result); } } result.Status = Status.Fail; result.StatusCode = HttpStatusCode.BadRequest; return(result); } catch (Exception ex) { _logger.LogError(ex, ex.Message); result.Status = Status.Error; result.Message = ex.Message; result.StatusCode = HttpStatusCode.InternalServerError; return(result); } }