예제 #1
0
        //resCancaled
        //Makes a reservation for a dog alone in a run
        public List <int> AddReservation(int petNumber, DateTime startDate, DateTime endDate)
        {
            e          errCode   = e.success;
            int        resNumber = -1;
            List <int> retVals   = new List <int>();

            if (Validation.sBeforeToday(startDate))
            {
                errCode = e.sBeforeToday;
            }
            else if (Validation.sAfterEnd(startDate, endDate))
            {
                errCode = e.sAfterEnd;
            }
            else if (Validation.invalidPet(petNumber))
            {
                errCode = e.invalidPet;
            }
            else if (Validation.runUnavailable(startDate, endDate, petNumber))
            {
                errCode = e.runUnavailable;
            }
            else if (Validation.alreadyReserved(startDate, endDate, petNumber))
            {
                errCode = e.alreadyReserved;
            }
            else
            {
                ReservationDB resDB = new ReservationDB();
                resNumber = resDB.Add(startDate, endDate);

                if (resNumber < 0)
                {
                    errCode = e.insertFail;
                }
                else
                {
                    if (AddToReservation(resNumber, petNumber) < -10)
                    {
                        errCode = e.insertFail;
                    }
                    else
                    {
                        if (ListExpOrMissVaccs(petNumber, endDate).Count != 0)
                        {
                            errCode = e.vaccInvalid;
                        }
                    }
                }
            }
            retVals.Add(Convert.ToInt16(errCode));
            retVals.Add(resNumber);

            return(retVals);
        }