public async Task <IActionResult> ChangeEmployeeExpenses(EmployeeExpensesStatusViewModel empExpStatusVM)
        {
            var originalData = _unitOfWork.EmployeeExpensesStatus.GetSingleOrDefault(s => s.UserName == empExpStatusVM.UserName && s.ExpenseMonth == empExpStatusVM.ExpenseMonth);

            if (originalData != null)
            {
                originalData.Status = (int)EmployeeExpensesStatus.Submitted;
                _unitOfWork.EmployeeExpensesStatus.Update(originalData);
                await _unitOfWork.CompleteAsync();
            }
            return(Ok(originalData));
        }
        public async Task <IActionResult> AddEmployeeExpenses(EmployeeExpensesViewModel empExpVM)
        {
            try
            {
                var newDate = empExpVM.Date.Value.AddDays(1);
                //var monthYear = $"{empExpVM.Date.Value.Month.ToString()}-{empExpVM.Date.Value.Year.ToString()}";
                var monthYear     = $"{newDate.Month.ToString()}-{newDate.Year.ToString()}";
                var iExpenseMonth = _unitOfWork.EmployeeExpensesStatus.GetAll()
                                    .Where(me => me.ExpenseMonth.Equals(monthYear) && me.UserName.Equals(empExpVM.UserName)).Count();

                if (iExpenseMonth <= 0)
                {
                    EmployeeExpensesStatusViewModel empExp = new EmployeeExpensesStatusViewModel()
                    {
                        ExpenseMonth = monthYear,
                        UserName     = empExpVM.UserName,
                        Status       = (int)EmployeeExpensesStatus.NotSubmitted
                    };

                    var expensesStatus = mapper.Map <ExpensesStatus>(empExp);
                    _unitOfWork.EmployeeExpensesStatus.Add(expensesStatus);
                }

                if (empExpVM.PresentType.Equals(PresentType.HALFDAY))
                {
                    empExpVM.BikeAllowance  /= 2;
                    empExpVM.DailyAllowance /= 2;
                }
                else if (empExpVM.PresentType.Equals(PresentType.LEAVE))
                {
                    empExpVM.BikeAllowance  = 0;
                    empExpVM.DailyAllowance = 0;
                    empExpVM.OtherAmount    = 0;
                }

                var tempAmt = empExpVM.BikeAllowance + empExpVM.DailyAllowance + empExpVM.OtherAmount;
                empExpVM.ClaimAmount    = tempAmt;
                empExpVM.ApprovedAmount = tempAmt;
                empExpVM.ExpenseMonth   = monthYear;
                empExpVM.Date           = newDate;
                var empExpenses = mapper.Map <Expenses>(empExpVM);
                _unitOfWork.EmployeeExpenses.Add(empExpenses);

                await _unitOfWork.CompleteAsync();
            }
            catch (Exception Ex) { throw Ex; }
            return(Ok());
        }