/// <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);
            }
        }