Beispiel #1
0
        public MonthState SetMonthState(string userId, double?month, double?year, StatusAdminDtoStatus state)
        {
            try
            {
                var user = _unitOfWork.AppUsers.FindById(userId);
                if (user == null)
                {
                    throw new RepositoryException(StatusCodes.Status404NotFound, $"User {userId} not found");
                }

                var dt           = DateTime.Now;
                var selectMonth  = month.HasValue ? Convert.ToInt32(month) : dt.Month;
                var selectedYear = year.HasValue ? Convert.ToInt32(year) : dt.Year;

                var punchState = _unitOfWork.PunchStates.GetByValue(state);
                var monthState = _unitOfWork.MonthStates.Get(userId, selectMonth, selectedYear);
                if (monthState == null)
                {
                    var monthPunch = _unitOfWork.MonthPunches.FindByMonth(selectMonth);
                    var yearPunch  = _unitOfWork.YearPunches.FindByYear(selectedYear);
                    monthState = new MonthState
                    {
                        MonthPunch = monthPunch,
                        YearPunch  = yearPunch,
                        User       = user,
                        PunchState = punchState,
                        Created    = DateTime.Now,
                        Updated    = DateTime.Now
                    };
                    _unitOfWork.MonthStates.Add(monthState);
                }
                else
                {
                    monthState.PunchState = punchState;
                    monthState.Updated    = DateTime.Now;
                    _unitOfWork.MonthStates.Update(monthState);
                }
                return(monthState);
            }
            catch (RepositoryException)
            {
                throw;
            }
            catch (Exception exception)
            {
                throw new RepositoryException(StatusCodes.Status400BadRequest, $"{nameof(SetMonthState)} threw an exception: {exception.Message}", exception);
            }
        }
Beispiel #2
0
 public PunchState GetByValue(StatusAdminDtoStatus status)
 {
     return(Context.PunchStates.FirstOrDefault(p => p.State == status.ToString()));
 }