예제 #1
0
        public int BookTickets(Ticket ticket, int numberOfTickets, int userId)
        {
            try
            {
                DBContextFactory.GetDbContextInstance().Tickets.Add(ticket);
                _unitOfWork.SaveChanges();
                var evet = DBContextFactory.GetDbContextInstance().Events.SingleOrDefault(p => p.EventId == ticket.EventId);
                ticket.Event = evet;

                var booking = new Booking
                {
                    BookingDate       = DateTime.Now,
                    EventId           = evet.EventId,
                    NumberOfTickets   = numberOfTickets,
                    UserId            = userId,
                    TicketId          = ticket.TicketId,
                    IsVerifiedPayment = false,
                    Ticket            = ticket,
                };

                this.Add(booking);
                _unitOfWork.SaveChanges();
                return(booking.BookingId);
            }
            catch (Exception e)
            {
                return(-1);
            }
        }
예제 #2
0
        public virtual Booking[] GetTicketsForUser(string username)
        {
            var userRepository = new TicketMasterUserRepository(new UnitOfWork.UnitOfWork());
            var user           = userRepository.GetUserByName(username);

            return(DBContextFactory.GetDbContextInstance().Bookings.Where(p => p.UserId == user.UserId).ToArray());
        }
 public virtual bool Add(T instance)
 {
     try
     {
         DBContextFactory.GetDbContextInstance().Set <T>().Add(instance);
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
예제 #4
0
 public override bool Delete(int key)
 {
     try
     {
         DBContextFactory.GetDbContextInstance()
         .EntertainmentAddresses.Remove(
             DBContextFactory.GetDbContextInstance().EntertainmentAddresses.SingleOrDefault(k => k.AddressId == key));
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
 public override bool Delete(int key)
 {
     try
     {
         DBContextFactory.GetDbContextInstance()
         .TicketMasterUsers.Remove(
             DBContextFactory.GetDbContextInstance().TicketMasterUsers.SingleOrDefault(k => k.UserId == key));
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
 public override bool Update(TicketMasterUser instance)
 {
     try
     {
         var user =
             DBContextFactory.GetDbContextInstance()
             .TicketMasterUsers.SingleOrDefault(k => k.UserId == instance.UserId);
         user.UserName = instance.UserName;
         user.Email    = instance.Email;
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
예제 #7
0
 public override bool Update(Ticket instance)
 {
     try
     {
         var ticket =
             DBContextFactory.GetDbContextInstance()
             .Tickets.SingleOrDefault(k => k.TicketId == instance.TicketId);
         ticket.EventId    = instance.EventId;
         ticket.Price      = instance.Price;
         ticket.TicketGUID = instance.TicketGUID;
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
예제 #8
0
 public override bool Update(Booking instance)
 {
     try
     {
         var booking =
             DBContextFactory.GetDbContextInstance()
             .Bookings.SingleOrDefault(k => k.BookingId == instance.BookingId);
         booking.BookingDate     = instance.BookingDate;
         booking.EventId         = instance.EventId;
         booking.NumberOfTickets = instance.NumberOfTickets;
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
예제 #9
0
        public virtual EntertainmentAddress GetEntertainmentAddressByUsername(string username)
        {
            try
            {
                var user =
                    DBContextFactory.GetDbContextInstance()
                    .TicketMasterUsers.SingleOrDefault(p => p.UserName == username);

                if (user != null)
                {
                    var EntertainmentAddress = DBContextFactory.GetDbContextInstance().EntertainmentAddresses.SingleOrDefault(p => p.UserId == user.UserId);
                    return(EntertainmentAddress);
                }
            }
            catch (Exception e)
            {
            }
            return(null);
        }
예제 #10
0
        public virtual BookingTicketInfo[] GetTicketsForUserVerified()
        {
            var DBContext      = DBContextFactory.GetDbContextInstance();
            var userRepository = new TicketMasterUserRepository(new UnitOfWork.UnitOfWork());
            var tickets        = from t in DBContext.Tickets
                                 from b in DBContext.Bookings
                                 from u in DBContext.TicketMasterUsers
                                 where t.TicketId == b.TicketId && b.IsVerifiedPayment == true && u.UserId == b.UserId
                                 select new BookingTicketInfo
            {
                BookingId         = b.BookingId,
                EventName         = b.Ticket.Event.EventName,
                IsVerifiedPayment = true,
                NumberOfTickets   = (int)b.NumberOfTickets,
                Username          = u.UserName
            };

            return(tickets.ToArray());
        }
예제 #11
0
 public override bool Update(EntertainmentAddress instance)
 {
     try
     {
         var EntertainmentAddress =
             DBContextFactory.GetDbContextInstance()
             .EntertainmentAddresses.SingleOrDefault(k => k.UserId == instance.UserId);
         EntertainmentAddress.AddressLine1 = instance.AddressLine1;
         EntertainmentAddress.AddressLine2 = instance.AddressLine2;
         EntertainmentAddress.Town         = instance.Town;
         EntertainmentAddress.Country      = instance.Country;
         EntertainmentAddress.PostCode     = instance.PostCode;
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
예제 #12
0
        public virtual BookingStats[] GetStatsByMonth(DateTime fro, DateTime to)
        {
            var DBContext = DBContextFactory.GetDbContextInstance();

            var results = from b in DBContext.Bookings
                          from t in DBContext.Tickets
                          where b.EventId == t.EventId && b.BookingDate >= fro && b.BookingDate <= to
                          orderby b.Ticket.Event.EventName
                          group t by b.BookingDate.Value.Month
                          into gr
                          select
                          new BookingStats
            {
                NumberOfTickets = (int)gr.Count(),
                TotalAmount     = (decimal)gr.Select(p => p.Price * gr.Count()).FirstOrDefault(),
                BookingDate     = gr.Key
            };

            return(results.ToArray());
        }
예제 #13
0
        public virtual GroupedBooking[] GetBookingsByEvent(DateTime fro, DateTime to)
        {
            var DBContext = DBContextFactory.GetDbContextInstance();

            var results = from b in DBContext.Bookings
                          from t in DBContext.Tickets where b.EventId == t.EventId && b.BookingDate >= fro && b.BookingDate <= to
                          orderby b.Ticket.Event.EventName
                          group t by b
                          into gr
                          select
                          new GroupedBooking
            {
                BookingId       = (int)gr.Key.BookingId,
                EventName       = gr.Key.Ticket.Event.EventName,
                NumberOfTickets = (int)gr.Key.NumberOfTickets,
                TotalAmount     = (decimal)gr.Where(q => q.TicketId == gr.Key.TicketId).Select(p => p.Price * gr.Key.NumberOfTickets).FirstOrDefault(),
                BookingDate     = (DateTime)gr.Key.BookingDate
            };

            return(results.ToArray());
        }
 public override bool Update(Event instance)
 {
     try
     {
         var evt =
             DBContextFactory.GetDbContextInstance()
             .Events.SingleOrDefault(k => k.EventId == instance.EventId);
         evt.EventDescription = instance.EventDescription;
         evt.EventId          = instance.EventId;
         evt.NumberOfTickets  = instance.NumberOfTickets;
         evt.PricePerTicket   = instance.PricePerTicket;
         evt.EventName        = instance.EventName;
         evt.Location         = instance.Location;
         evt.Tickets          = instance.Tickets;
         evt.EventDate        = instance.EventDate;
         _unitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
 public decimal?GetUnitPriceOfTicketByEventId(int eventId)
 {
     return
         (DBContextFactory.GetDbContextInstance().Events.SingleOrDefault(p => p.EventId == eventId).PricePerTicket);
 }
 public override TicketMasterUser GetById(int key)
 {
     return(DBContextFactory.GetDbContextInstance().TicketMasterUsers.SingleOrDefault(p => p.UserId == key));
 }
 public virtual TicketMasterUser GetUserByName(string username)
 {
     return(DBContextFactory.GetDbContextInstance().TicketMasterUsers.SingleOrDefault(p => p.UserName == username));
 }
예제 #18
0
 public override EntertainmentAddress GetById(int key)
 {
     return(DBContextFactory.GetDbContextInstance().EntertainmentAddresses.SingleOrDefault(p => p.UserId == key));
 }
예제 #19
0
 public override Booking GetById(int key)
 {
     return(DBContextFactory.GetDbContextInstance().Bookings.SingleOrDefault(p => p.BookingId == key));
 }
 public virtual T[] GetAll()
 {
     return(DBContextFactory.GetDbContextInstance().Set <T>().ToArray <T>());
 }
 public override Event GetById(int key)
 {
     return(DBContextFactory.GetDbContextInstance().Events.SingleOrDefault(p => p.EventId == key));
 }
예제 #22
0
 public void SaveChanges()
 {
     DBContextFactory.GetDbContextInstance().SaveChanges();
 }