public bool AddNewVacation(VacationInsertAndUpdate vacation)
        {
            var totalDays             = (vacation.EndDate - vacation.StartDate).TotalDays;
            var updateVacationBalence = (from u in context.Users
                                         where vacation.EmployeeID == u.UserID
                                         select u).Single();

            if (vacation.Type == Types.Annual)
            {
                updateVacationBalence.AnnualVacationBalance = updateVacationBalence.AnnualVacationBalance - Math.Round(totalDays);
            }
            if (CheckBalence(updateVacationBalence.AnnualVacationBalance))
            {
                context.Vacations.Add(new Vacation()
                {
                    Type        = vacation.Type,
                    Status      = vacation.Status,
                    Attatchment = vacation.Attatchment,
                    Description = vacation.Description,
                    StartDate   = vacation.StartDate,
                    EndDate     = vacation.EndDate,
                    EmployeeID  = vacation.EmployeeID,
                });

                context.SaveChanges();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        public IHttpActionResult PostVacation(VacationInsertAndUpdate vacation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (vacationManager.CheckNumberOfDays(vacation))
            {
                if (vacationManager.AddNewVacation(vacation))
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }


            //  return CreatedAtRoute("DefaultApi", new { id = vacation.VacationID }, vacation);
        }
Пример #3
0
        public IHttpActionResult PutVacation(int id, VacationInsertAndUpdate status)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            vacationManager.UpdateVacationStatus(id, status);
            return(Ok($"User {id} updated successfully"));
        }
        public bool CheckNumberOfDays(VacationInsertAndUpdate vacation)
        {
            double counter    = 14;
            var    totalDays  = (vacation.EndDate - vacation.StartDate).TotalDays;
            var    totalHours = (vacation.EndDate - vacation.StartDate).TotalHours;

            if (Math.Abs(totalDays) > 14 && vacation.Type == Types.Annual)
            {
                return(false);
            }
            else if (Math.Abs(totalHours) > 8 && vacation.Type == Types.Leave)
            {
                return(false);
            }
            counter = counter - totalDays;
            return(true);
        }
        public void UpdateVacationStatus(int id, VacationInsertAndUpdate vacation)
        {
            var updateStatus = (from v in context.Vacations where id == v.VacationID select v).FirstOrDefault();

            if (vacation.Status == Statuses.Rejected)
            {
                updateStatus.RejectionReason = vacation.RejectionReason;
            }
            updateStatus.Status      = vacation.Status;
            updateStatus.Description = vacation.Description;
            updateStatus.Attatchment = vacation.Attatchment;
            updateStatus.Type        = vacation.Type;
            updateStatus.StartDate   = vacation.StartDate;
            updateStatus.EndDate     = vacation.EndDate;

            context.SaveChanges();
        }