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