Example #1
0
        /// <summary>
        /// Skapar en bokning
        /// För att ställa sig i kö behövs det läggas till mer kod     
        /// </summary>
        /// <param name="residentId"></param>
        /// <param name="reservationsId"></param>
        /// <returns></returns>
        public static bool MakeReservation(int residentId, string reservationsId)
        {
            using (var db = new WasherContext())
            {
                var x = db.Reservation.FirstOrDefault(r => r.Id == reservationsId);
                if (x != null)
                {

                    if (x.Reservationlist.Any())
                    {

                        throw new Exception("Det finns redan en bokning på denna tid");
                        // Här ska vi fråga om använadren vill ställa sig i kö
                        //return false;
                    }

                    var residentToAdd = db.Residents.FirstOrDefault(a => a.ResidentId == residentId);
                    x.Reservationlist.Add(residentToAdd);

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (DbUpdateConcurrencyException ex)
                    {

                        throw;
                    }

                    return true;
                }
                return false;
            }
        }
Example #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="residentId"></param>
        /// <returns></returns>
        public static List<IList<Reservation>> GetResidentsReservations(int residentId)
        {
            List<IList<Reservation>> listOfReservations;
            using (var db = new WasherContext())
            {
                listOfReservations = db.Residents
                    .Where(x => x.ResidentId == residentId)
                    .Include(x => x.Reservations)
                    .Select(x => x.Reservations)
                    .ToList();

            }
            return listOfReservations;
        }
Example #3
0
        /// <summary>
        /// Ställa sig i kö för en bokning
        /// </summary>
        /// <param name="residentId"></param>
        /// <param name="reservationsId"></param>
        /// <returns></returns>
        public static bool MakeQueReservation(int residentId, string reservationsId)
        {
            using (var db = new WasherContext())
            {
                var x = db.Reservation.FirstOrDefault(r => r.Id == reservationsId);
                if (x != null)
                {

                    if (!x.Reservationlist.Any())
                    {
                        return false;

                    }

                    var residentToAdd = db.Residents.FirstOrDefault(a => a.ResidentId == residentId);
                    x.Reservationlist.Add(residentToAdd);

                    db.SaveChanges();
                    return true;
                }
                return false;
            }
        }
Example #4
0
        /// <summary>
        /// Hämtar nästa lediga tid
        /// </summary>
        /// <returns></returns>
        public static Reservation GetNextAvailbelReservations()
        {
            Reservation reservation;
            using (var db = new WasherContext())
            {
                var today = DateTime.Now;

                reservation = db.Reservation
                    .Where(x => !x.Reservationlist.Any())
                    .FirstOrDefault(x => DbFunctions.CreateDateTime(x.StarTime.Year, x.StarTime.Month, x.StarTime.Day, x.StarTime.Hour, x.StarTime.Minute, x.StarTime.Minute) > today);
            }
            return reservation;
        }
Example #5
0
        /// <summary>
        /// Hämtar nästa 10 lediga tider på helg
        /// </summary>
        /// <returns></returns>
        public static List<Reservation> GetNextTenAvailbelReservations()
        {
            List<Reservation> reservations;
            using (var db = new WasherContext())
            {
                // Tar reda på söndag i dåtid och dagens datum, sedan använder diffen för att
                // kolla viken veckodag det är
                var today = DateTime.Now;
                var sunday = new DateTime(2014, 12, 7);

                reservations = db.Reservation
                // tar bara med om det inte finns någon reservation
                .Where(x => !x.Reservationlist.Any())
                // Kollar om det är Lördag eller söndag
                .Where(r => DbFunctions.DiffDays(sunday, r.StarTime) % 7 == 6 || DbFunctions.DiffDays(sunday, r.StarTime) % 7 == 0)
                // Säkerställer att det i datumordning
                .OrderBy(x => x.StarTime)
                // Väljer det 10 första
                .Take(10)
                .ToList();

            }
            return reservations;
        }
Example #6
0
 /// <summary>
 /// Hämtar lediga tider för en specifik dag
 /// </summary>
 /// <param name="date">Ange en giltig DateTime</param>
 /// <returns>Lista med Reservations</returns>
 public static List<Reservation> GetAvailbelReservations(string date)
 {
     List<Reservation> reservations;
     using (var db = new WasherContext())
     {
         DateTime today;
         DateTime.TryParse(date, out today);
         reservations = db.Reservation
              .Where(x => SqlFunctions.DatePart("Day", x.Id) == SqlFunctions.DatePart("Day", date) && !x.Reservationlist.Any())
              //.OrderBy()
              .ToList();
     }
     return reservations;
 }
Example #7
0
 /// <summary>
 /// Hämtar alla maskiner
 /// </summary>
 /// <returns>Returnerar en lista med alla maskien</returns>
 public static List<Machine> GetMachines()
 {
     using (var db = new WasherContext())
     {
         var listOfMachines = db.Machines.ToList();
         return listOfMachines;
     }
 }
Example #8
0
        /// <summary>
        /// Radera en Resident
        /// </summary>
        /// <param name="residentId">Ange Id för den som ska raderas</param>
        /// <returns>Returnera den raderade residenten</returns>
        public static Resident DeleteResident(int residentId)
        {
            Resident resident;
            using (var db = new WasherContext())
            {
                resident = db.Residents
                    //.Include(r => r.Reservations)
                    //.Include(x => x.Cue)
                    .FirstOrDefault(x => x.ResidentId == residentId);

                //.Find(residentId)
                //;
                if (resident != null)
                {
                    db.Residents.Remove(resident);
                }

                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }

            return resident;
        }
Example #9
0
        /// <summary>
        /// Felanmäla ett maskin
        /// </summary>
        /// <param name="residentId">Ange ResidentID</param>
        /// <param name="errorDescription">Skriv en beskrivning av felet</param>
        /// <param name="machineId">Ange Machine ID</param>
        /// <returns>Returnera</returns>
        public static ErrorMessage CreateErrorMessage(int residentId, string errorDescription, string machineId)
        {
            var em = new ErrorMessage();

            using (var db = new WasherContext())
            {
                em.ErrorDescription = errorDescription;
                em.ResidentId = db.Residents.FirstOrDefault(r => r.ResidentId == residentId);
                em.Machine_Id = new Guid(machineId);
                em.Time = DateTime.Now;

                db.ErrorMessages.Add(em);

                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {

                    throw;
                }
            }

            return em;
        }
Example #10
0
        /// <summary>
        /// Avboka en reservation
        /// </summary>
        /// <param name="reservationId"></param>
        /// <param name="residentId"></param>
        /// <returns>Resravation som blev ändrad</returns>
        public static Reservation CancelReservation(string reservationId, int residentId)
        {
            Reservation reservation;
            using (var db = new WasherContext())
            {
                reservation = db.Reservation
                    .Include(l => l.Reservationlist)
                    .FirstOrDefault(r => r.Id == reservationId);

                reservation?.Reservationlist.Remove(reservation?.Reservationlist.FirstOrDefault(g => g.ResidentId == residentId));

                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {

                    throw;
                }
            }

            return reservation;
        }
Example #11
0
        /// <summary>
        /// Uppdatera en resident
        /// </summary>
        /// <param name="resident"></param>
        /// <returns>Den uppdaterade residenten</returns>
        public static Resident AlterResident(Resident resident)
        {
            Resident updatedResident = null;
            using (var db = new WasherContext())
            {
                var orginalResident = db.Residents.Find(resident.ResidentId);
                if (orginalResident == null)
                {
                    return updatedResident;
                }

                orginalResident.Email = resident.Email;
                orginalResident.Adress = resident.Adress;
                orginalResident.Name = resident.Name;

                db.Entry(orginalResident).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }

            return resident;
        }
Example #12
0
        /// <summary>
        /// Lägger till en ny boende, Behöver lägga till logik för att säkerställa att epost är unik
        /// </summary>
        /// <param name="adress">Ange adressen</param>
        /// <param name="email">Ange mailadressen</param>
        /// <param name="name">Ange Namnet</param>
        /// <returns></returns>
        public static Resident AddResident(string adress, string email, string name)
        {
            Resident newResident = null;
            using (var db = new WasherContext())
            {

                newResident = db.Residents.Add(
                    new Resident
                    {
                        Name = name,
                        Email = email,
                        Adress = adress
                    });
                try
                {
                    db.SaveChanges();
                }
                catch (Exception exception)
                {
                    return newResident;
                }
            }

            return newResident;
        }