コード例 #1
0
        public async Task <ActionResult <IResult> > SubmitCovidDeclarationData([FromBody] CovidHealthTrackViewModel covidHealthTrackViewModel)
        {
            _logger.LogInformation("Save employee covid declaration detail");
            var result = await _healthTrackService.CreateCovidHealthTrack(covidHealthTrackViewModel);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #2
0
        private async Task SendCovidEmail(CovidHealthTrackViewModel covidHealthTrackViewModel)
        {
            var appEmailHelper = new AppEmailHelper();
            var hrEmployeeList = await _employeeRepository.GetEmployeeDetailsByRole(EmployeeRolesEnum.HRManager.ToString());

            if (hrEmployeeList.Count > 0)
            {
                foreach (var hrEmployee in hrEmployeeList)
                {
                    appEmailHelper.ToMailAddresses.Add(new MailAddress(hrEmployee.Email, hrEmployee.Name));
                }
            }


            // appEmailHelper.ToMailAddresses.Add(new MailAddress(hrEmployee.Email, hrEmployee.Name));
            // appEmailHelper.CCMailAddresses.Add(new MailAddress(securityEmp.Email, securityEmp.Name));

            appEmailHelper.MailTemplate = MailTemplate.EmployeeCovidDeclaration;
            appEmailHelper.Subject      = "Covid declaration submission";
            CovidHealthTrackViewModel emailVm = new CovidHealthTrackViewModel();

            emailVm.MapFromViewModel(covidHealthTrackViewModel);
            appEmailHelper.MailBodyViewModel = emailVm;
            await appEmailHelper.InitMailMessage();
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="declarationId"></param>
        /// <returns></returns>
        public async Task <IResult> GetCovidDeclaration(int declarationId)
        {
            var covidHealthViewModelList = new List <CovidHealthTrackViewModel>();
            var result = new Result
            {
                Operation  = Operation.Read,
                Status     = Status.Success,
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                var declarationList = await _healthTrackRepository.GetCovidDeclaration(declarationId);

                if (declarationList.Any())
                {
                    covidHealthViewModelList = declarationList.Select(declaration =>
                    {
                        var covidHealthViewModel = new CovidHealthTrackViewModel();
                        covidHealthViewModel.MapFromModel(declaration);
                        var employeeVm = new EmployeeViewModel();
                        employeeVm.MapFromModel(declaration.Employee);
                        covidHealthViewModel.Employee = employeeVm;
                        return(covidHealthViewModel);
                    }).ToList();

                    result.Body = covidHealthViewModelList;
                }
                else
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.NotFound;
                    result.Message    = "No declaration exists";
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                result.Status     = Status.Error;
                result.Message    = ex.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(result);
        }