Exemple #1
0
        //method for adding a shift
        public void AddShift(ShiftDTO shift)
        {
            _repo.Add<Shift>(new Shift {
                Employee = _repo.Query<ApplicationUser>().FirstOrDefault(u => u.Email == shift.Employee.Email),
                EndShift = shift.EndShift.ToUniversalTime(),
                StartShift = shift.StartShift.ToUniversalTime(),
                IsAvailable = shift.IsAvailable
            });

            _repo.SaveChanges();
        }
Exemple #2
0
 public HttpResponseMessage Post(ShiftDTO shift) {
     if (ModelState.IsValid) {
         var correctedDate = shift;
         
         if (shift.Id == 0) {
             _service.AddShift(shift);
             return Request.CreateResponse(HttpStatusCode.OK, shift);
         }
         else {
             _service.EditShift(shift);
             return Request.CreateResponse(HttpStatusCode.OK, shift);
         }
     }
     else {
         return Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState);
     }
 }
Exemple #3
0
 //method for swapping two shifts employees
 public void SwapShifts(ShiftDTO shift1, ShiftDTO shift2)
 {
     if (shift1.IsAvailable) {
         var temp = new Shift();
         temp.Employee = _repo.Query<ApplicationUser>().FirstOrDefault(u => u.Email == shift1.Employee.Email);
         var s1 = _repo.Query<Shift>().Include(s => s.Employee).FirstOrDefault(s => s.Id == shift1.Id);
         var s2 = _repo.Query<Shift>().Include(s => s.Employee).FirstOrDefault(s => s.Id == shift2.Id);
         s1.Employee = _repo.Query<ApplicationUser>().FirstOrDefault(u => u.Email == s2.Employee.Email);
         s2.Employee = _repo.Query<ApplicationUser>().FirstOrDefault(u => u.Email == temp.Employee.Email);
         var trade = _repo.Query<Trade>().Include(t => t.ShiftsOffered.Select(s => s.Employee)).Include(t => t.ShiftForTrade).FirstOrDefault(t => t.ShiftForTrade.Id == shift1.Id);
         trade.IsPending = false;
         trade.ShiftsOffered.Clear();
         s1.IsAvailable = false;
         s2.IsAvailable = false;
         _repo.SaveChanges();
     } else {
         var trade = _repo.Query<Trade>().Include(t => t.ShiftsOffered.Select(s => s.Employee)).Include(t => t.ShiftForTrade).FirstOrDefault(t => t.ShiftForTrade.Id == shift1.Id);
         trade.IsPending = false;
         trade.ShiftsOffered.Clear();
         _repo.SaveChanges();
     }
 }
Exemple #4
0
        //get a list of pending trade
        public IList<TradeDTO> ListTrades()
        {
            var trades = _repo.Query<Trade>().Include(s => s.ShiftsOffered.Select(a => a.Employee)).Include(s => s.ShiftForTrade.Employee).ToList();
            var tradesDTO = new List<TradeDTO>();
            foreach (var t in trades) {

                var shiftList = new List<ShiftDTO>();
                foreach (var st in t.ShiftsOffered) {
                    var shift = new ShiftDTO {
                        Id = st.Id,
                        StartShift = st.StartShift,
                        EndShift = st.EndShift,
                        Employee = Mapper.Map<ApplicationUserDTO>(st.Employee),
                        IsAvailable = st.IsAvailable
                    };
                    shiftList.Add(shift);
                }
                var tradeDTO = new TradeDTO {
                    Id = t.Id,
                    ShiftForTrade = new ShiftDTO {
                        Id = t.ShiftForTrade.Id,
                        StartShift = t.ShiftForTrade.StartShift,
                        EndShift = t.ShiftForTrade.EndShift,
                        Employee = Mapper.Map<ApplicationUserDTO>(t.ShiftForTrade.Employee),
                        IsAvailable = t.ShiftForTrade.IsAvailable
                    },
                    ShiftsOffered = shiftList,
                    IsPending = t.IsPending
                };

                tradesDTO.Add(tradeDTO);
            }
            return tradesDTO;
        }
Exemple #5
0
        //get list of day shifts
        public IEnumerable<ShiftDTO> ListDayShifts()
        {
            var shifts = _repo.Query<Shift>().Include(s => s.Employee).ToList().OrderBy(t => t.StartShift);
            var shiftDTO = new List<ShiftDTO>();

            foreach (var s in shifts) {
                var newshift = new ShiftDTO {
                    Id = s.Id,
                    StartShift = s.StartShift,
                    EndShift = s.EndShift,
                    Employee = Mapper.Map<ApplicationUserDTO>(s.Employee),
                    IsAvailable = s.IsAvailable

                };
                shiftDTO.Add(newshift);
            }

            return shiftDTO;
        }
Exemple #6
0
        //edit shift
        public void EditShift(ShiftDTO shift)
        {
            var originalShift = _repo.Find<Shift>(shift.Id);
            originalShift.StartShift = shift.StartShift.ToUniversalTime();
            originalShift.EndShift = shift.EndShift.ToUniversalTime();
            originalShift.Employee = _repo.Query<ApplicationUser>().FirstOrDefault(u => u.Email == shift.Employee.Email);
            originalShift.IsAvailable = shift.IsAvailable;

            var trade = _repo.Query<Trade>().Include(t => t.ShiftsOffered).FirstOrDefault(t => t.ShiftForTrade.Id == shift.Id);
            if (trade != null && trade.IsPending == true) {
                trade.IsPending = false;
                trade.ShiftsOffered.Clear();
                _repo.SaveChanges();
            }

            _repo.SaveChanges();
        }