Ejemplo n.º 1
0
        public IActionResult PutQuota(Guid?id, Quota quota)
        {
            if (id != quota.Id)
            {
                return(BadRequest());
            }
            // check if any changes are in hours or in dates to  do changes in requests entries
            Quota quotaOld = uow.QuotaRepo.GetById(id);

            if (quotaOld == null)
            {
                return(NotFound());
            }
            if (quotaOld.RemainingHours != quota.RemainingHours)
            {
                return(BadRequest());
            }

            quota.RemainingHours = quota.OriginalHours; //! important
            uow.QuotaRepo.Put(quota, quota.Id);
            uow.SaveChanges();

            if (quotaOld.StartDateTime != quota.StartDateTime ||
                quotaOld.EndDateTime != quota.EndDateTime ||
                quotaOld.OriginalHours != quota.OriginalHours)       // Either or both datetimes are different
                                                                     //Validate and re-allocate all requests related to this Quota and other waitlisted requests which fit in this date range in the same team
            {
                quotaService.ReDoAllocate(quotaOld, quota);
            }
            return(Ok());
        }
 public IActionResult PutFlexType(Guid?id, FlexType flexType)
 {
     if (id != flexType.Id)
     {
         return(BadRequest());
     }
     if (uow.FlexTypeRepo.Exists(id))
     {
         uow.FlexTypeRepo.Put(flexType, flexType.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
 public IActionResult PutRequestType(Guid?id, RequestType requestType)
 {
     if (id != requestType.Id)
     {
         return(BadRequest());
     }
     if (uow.RequestTypeRepo.Exists(id))
     {
         uow.RequestTypeRepo.Put(requestType, requestType.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
 public IActionResult PutRole(Guid?id, Role role)
 {
     if (id != role.Id)
     {
         return(BadRequest());
     }
     if (uow.RoleRepo.Exists(id))
     {
         uow.RoleRepo.Put(role, role.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
Ejemplo n.º 5
0
 public IActionResult PutUser(Guid?id, User user)
 {
     if (id != user.Id)
     {
         return(BadRequest());
     }
     if (uow.UserRepo.Exists(id))
     {
         uow.UserRepo.Put(user, user.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
 public IActionResult PutTeam(Guid?id, Team team)
 {
     if (id != team.Id)
     {
         return(BadRequest());
     }
     if (uow.TeamRepo.Exists(id))
     {
         uow.TeamRepo.Put(team, team.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
Ejemplo n.º 7
0
 public IActionResult PutStatus(Guid?id, Status status)
 {
     if (id != status.Id)
     {
         return(BadRequest());
     }
     if (uow.StatusRepo.Exists(id))
     {
         uow.StatusRepo.Put(status, status.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
 public IActionResult PutLocation(Guid?id, Location location)
 {
     if (id != location.Id)
     {
         return(BadRequest());
     }
     if (uow.LocationRepo.Exists(id))
     {
         uow.LocationRepo.Put(location, location.Id);
         uow.SaveChanges();
         return(NoContent());
     }
     return(NotFound());
 }
        public void ApproveFlex(Guid id)
        {
            Flex   flex     = uow.FlexRepo.GetById(id);
            Status approved = uow.StatusRepo.GetByName("Approved");

            flex.StatusId = approved.Id;
            uow.FlexRepo.Put(flex, flex.Id);
            uow.SaveChanges();
        }
Ejemplo n.º 10
0
        public void ReDoAllocate(Quota quotaOld, Quota quota)
        {
            Status cancelled = uow.StatusRepo.GetByName("Cancelled");
            Status approved = uow.StatusRepo.GetByName("Approved");
            Status waitlist = uow.StatusRepo.GetByName("WaitList");

            List<Request> ptoList = uow.RequestRepo
                                                             .GetAll()
                                                             .Where(pto => pto.StatusId != cancelled.Id &&
                                                                                       pto.QuotaId == quotaOld.Id ||
                                                                                       (pto.StartDateTime >= quota.StartDateTime &&
                                                                                        pto.EndDateTime <= quota.EndDateTime &&
                                                                                        pto.QuotaId == null &&
                                                                                        pto.StatusId == waitlist.Id &&
                                                                                        uow.UserRepo.GetById(pto.UserId).TeamId == quota.TeamId
                                                                                       ))
                                                             .OrderBy(pto => pto.CreatedOn)
                                                             .ToList();
            foreach (Request request in ptoList)
            {
                decimal remaininghours = uow.QuotaRepo.GetById(quota.Id).RemainingHours;
                Guid? statusOld = request.StatusId;
                if (UpdateRemainingHours(quota, request.Hours))
                {
                    request.QuotaId = quota.Id;
                    request.StatusId = approved.Id;
                }
                else
                {
                    request.QuotaId = null;
                    request.StatusId = waitlist.Id;
                }
                uow.RequestRepo.Put(request, request.Id);
                uow.SaveChanges();
                if (statusOld != request.StatusId)
                {
                    SendStatusChangeEmails(statusOld, request, quota);
                }
            }
        }
Ejemplo n.º 11
0
        public void ApprovePTO(Guid id)
        {
            Request request  = uow.RequestRepo.GetById(id);
            Status  approved = uow.StatusRepo.GetByName("Approved");

            request.StatusId = approved.Id;
            uow.RequestRepo.Put(request, request.Id);
            uow.SaveChanges();
        }