Exemple #1
0
        // POST: api/Tickets
        //[ResponseType(typeof(void))]
        public IHttpActionResult PostTicket(PomModelForAddTicketPayPal pom)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Ticket ticket = new Ticket();

            AppUser      appUser = _unitOfWork.AppUsers.Find(user => user.Email == pom.pomModelForBuyTicket.Email).FirstOrDefault();
            TypeOfTicket tt      = _unitOfWork.TypeOfTickets.Find(s => s.Name == pom.pomModelForBuyTicket.TypeOfTicket).FirstOrDefault();

            PriceList pList = _unitOfWork.PriceLists.GetAllPricelists().ToList().FindLast(a => a.FromTime <= DateTime.Now && a.ToTime >= DateTime.Now);


            TicketPrice ticketPrice = _unitOfWork.TicketPrices.Find(a => a.TypeOfTicketId == tt.Id && pList.Id == a.PriceListId).FirstOrDefault();

            double coeff = _unitOfWork.PassangerTypes.Find(dd => dd.Id == appUser.PassangerTypeId).FirstOrDefault().RoleCoefficient;
            double c     = ticketPrice.Price - (ticketPrice.Price * coeff);

            ticket.PriceOfTicket = c;

            ticket.AppUserId      = appUser.Id;
            ticket.TicketPriceId  = ticketPrice.Id;
            ticket.Valid          = true;
            ticket.PurchaseDate   = DateTime.Now;
            ticket.TypeOfTicketId = tt.Id;
            ticket.Email          = pom.pomModelForBuyTicket.Email;
            ticket.PayPalModelId  = pom.PayPalModelId;

            _unitOfWork.Tickets.Add(ticket);
            _unitOfWork.Complete();

            return(Ok(ticket.Id));
        }
Exemple #2
0
        public string PriceForPayPal(PomModelForBuyTicket pom)
        {
            //Pokusaj za dobijenje cijena aktivnog cjenovnika
            double       c           = 0;
            TypeOfTicket tt          = new TypeOfTicket();
            TicketPrice  ticketPrice = new TicketPrice();
            PriceList    pList       = new PriceList();

            if (pom.Email != "")
            {
                AppUser appUser = _unitOfWork.AppUsers.Find(user => user.Email == pom.Email).FirstOrDefault();
                tt = _unitOfWork.TypeOfTickets.Find(s => s.Name == pom.TypeOfTicket).FirstOrDefault(); //1 - TimeLimited


                //pList = _unitOfWork.PriceLists.Find(a => a.ToTime >= DateTime.Now).FirstOrDefault();
                pList = _unitOfWork.PriceLists.GetAllPricelists().ToList().FindLast(a => a.FromTime <= DateTime.Now && a.ToTime >= DateTime.Now);

                if (pList == null)
                {
                    return("null");
                }

                ticketPrice = _unitOfWork.TicketPrices.Find(aa => aa.PriceListId == pList.Id && aa.TypeOfTicketId == tt.Id).FirstOrDefault();


                double coeff = _unitOfWork.PassangerTypes.Find(dd => dd.Id == appUser.PassangerTypeId).FirstOrDefault().RoleCoefficient;
                c = ticketPrice.Price - (ticketPrice.Price * coeff);
            }
            else
            {
                tt = _unitOfWork.TypeOfTickets.Find(s => s.Name == pom.TypeOfTicket).FirstOrDefault(); //1 - TimeLimited

                pList = _unitOfWork.PriceLists.GetAllPricelists().ToList().FindLast(a => a.FromTime <= DateTime.Now && a.ToTime >= DateTime.Now);

                if (pList == null)
                {
                    return("null");
                }

                ticketPrice = _unitOfWork.TicketPrices.Find(aa => aa.PriceListId == pList.Id && aa.TypeOfTicketId == tt.Id).FirstOrDefault();

                c = ticketPrice.Price;
            }



            return(c.ToString());
        }
Exemple #3
0
        public string SendMail(PomModelForAddTicketPayPal ticket)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState).ToString());
            }

            PriceList pList = _unitOfWork.PriceLists.GetAllPricelists().ToList().FindLast(a => a.FromTime <= DateTime.Now && a.ToTime >= DateTime.Now);

            if (pList == null)
            {
                return("null");
            }

            TypeOfTicket tt = _unitOfWork.TypeOfTickets.Find(s => s.Name == ticket.pomModelForBuyTicket.TypeOfTicket).FirstOrDefault();

            TicketPrice ticketPrice = _unitOfWork.TicketPrices.Find(a => pList.Id == a.PriceListId && a.TypeOfTicketId == tt.Id).FirstOrDefault();


            string subject = "Ticket purchase";
            string desc    = $"Dear {ticket.pomModelForBuyTicket.Email},\nYour purchase is successfull.\n " +
                             $"Ticket price: {ticketPrice.Price} din\n " +
                             $"Type of ticket:Time Limited\n" +
                             $"Time of purchase: {DateTime.Now}\n" +
                             $"Ticket is valid for the next hour.\n\n" +
                             $"Thank you.";

            var email = ticket.pomModelForBuyTicket.Email;
            //TicketPrice ticketPrice = _unitOfWork.TicketPrices.Find(a => a.TypeOfTicketId == tt.Id).FirstOrDefault();

            Ticket storeTicket = new Ticket();

            storeTicket.Email          = email;
            storeTicket.PriceOfTicket  = ticketPrice.Price;
            storeTicket.PurchaseDate   = DateTime.Now;
            storeTicket.TypeOfTicketId = tt.Id;
            storeTicket.Valid          = true;
            storeTicket.TicketPriceId  = ticketPrice.Id;
            storeTicket.PayPalModelId  = ticket.PayPalModelId;

            _unitOfWork.Tickets.NotifyViaEmail(email, subject, desc);
            _unitOfWork.Tickets.Add(storeTicket);
            _unitOfWork.Complete();

            return("Ok");
        }
Exemple #4
0
        public PomModelTicketPrices GetValidPrices(int id)
        {
            PomModelTicketPrices ticketPrice = new PomModelTicketPrices();
            var p = _unitOfWork.TicketPrices.Find(x => x.PriceListId == id);

            TypeOfTicket typeOfTicket = _unitOfWork.TypeOfTickets.Find(m => m.Name == "Daily").FirstOrDefault();

            ticketPrice.Daily       = (int)p.First(x => x.TypeOfTicketId == typeOfTicket.Id).Price;
            typeOfTicket            = _unitOfWork.TypeOfTickets.Find(m => m.Name == "Monthly").FirstOrDefault();
            ticketPrice.Monthly     = (int)p.First(x => x.TypeOfTicketId == typeOfTicket.Id).Price;
            typeOfTicket            = _unitOfWork.TypeOfTickets.Find(m => m.Name == "Annual").FirstOrDefault();
            ticketPrice.Annual      = (int)p.First(x => x.TypeOfTicketId == typeOfTicket.Id).Price;
            typeOfTicket            = _unitOfWork.TypeOfTickets.Find(m => m.Name == "TimeLimited").FirstOrDefault();
            ticketPrice.TimeLimited = (int)p.First(x => x.TypeOfTicketId == typeOfTicket.Id).Price;
            ticketPrice.IdPriceList = id;

            return(ticketPrice);
        }
        protected override void Seed(WebApp.Persistence.ApplicationDbContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Admin"
                };

                manager.Create(role);
            }

            if (!context.Roles.Any(r => r.Name == "Controller"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Controller"
                };

                manager.Create(role);
            }

            if (!context.Roles.Any(r => r.Name == "AppUser"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "AppUser"
                };

                manager.Create(role);
            }

            var userStore   = new UserStore <ApplicationUser>(context);
            var userManager = new UserManager <ApplicationUser>(userStore);

            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var user = new ApplicationUser()
                {
                    Id = "admin", UserName = "******", Email = "*****@*****.**", PasswordHash = ApplicationUser.HashPassword("Admin123!")
                };
                AppUser appUser = new AppUser();
                appUser.Activated  = true;
                appUser.Id         = user.Id;
                appUser.UserTypeId = 1;
                appUser.Email      = user.Email;

                //user.AppUserId = appUser.Id;
                userManager.Create(user);
                userManager.AddToRole(user.Id, "Admin");
            }

            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var user = new ApplicationUser()
                {
                    Id = "appu", UserName = "******", Email = "*****@*****.**", PasswordHash = ApplicationUser.HashPassword("Appu123!")
                };
                userManager.Create(user);
                userManager.AddToRole(user.Id, "AppUser");
            }
            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var user = new ApplicationUser()
                {
                    Id = "controller", UserName = "******", Email = "*****@*****.**", PasswordHash = ApplicationUser.HashPassword("Controller123!")
                };
                userManager.Create(user);
                userManager.AddToRole(user.Id, "Controller");
            }


            if (!context.PassangerTypes.Any(u => u.Name == "Student"))
            {
                PassangerType p = new PassangerType("Student");
                p.RoleCoefficient = 0.6;
                context.PassangerTypes.Add(p);

                //context.RoleCoefficients.Add(new RoleCoefficient(0.5));
            }
            if (!context.PassangerTypes.Any(u => u.Name == "Pensioner"))
            {
                PassangerType p = new PassangerType("Pensioner");
                p.RoleCoefficient = 0.5;

                context.PassangerTypes.Add(p);
                //context.RoleCoefficients.Add(new RoleCoefficient(0.6));
            }
            if (!context.PassangerTypes.Any(u => u.Name == "Default"))
            {
                PassangerType p = new PassangerType("Default");
                p.RoleCoefficient = 0;

                context.PassangerTypes.Add(p);
                //context.RoleCoefficients.Add(new RoleCoefficient(1));
            }
            if (!context.PassangerTypes.Any(u => u.Name == "None"))
            {
                PassangerType p = new PassangerType("None");
                p.RoleCoefficient = 0;

                context.PassangerTypes.Add(p);
                //context.RoleCoefficients.Add(new RoleCoefficient(1));

                //context.RoleCoefficients.Add(r);
            }

            if (!context.UserTypes.Any(u => u.Name == "Admin"))
            {
                UserType p = new UserType("Admin");
                context.UserTypes.Add(p);
            }

            if (!context.UserTypes.Any(u => u.Name == "Controller"))
            {
                UserType p = new UserType("Controller");
                context.UserTypes.Add(p);
            }

            if (!context.UserTypes.Any(u => u.Name == "AppUser"))
            {
                UserType p = new UserType("AppUser");
                context.UserTypes.Add(p);
            }


            if (!context.Days.Any(u => u.Name == "Workday"))
            {
                Day d = new Day("Workday");
                context.Days.Add(d);
            }
            if (!context.Days.Any(u => u.Name == "Saturday"))
            {
                Day d = new Day("Saturday");
                context.Days.Add(d);
            }
            if (!context.Days.Any(u => u.Name == "Sunday"))
            {
                Day d = new Day("Sunday");
                context.Days.Add(d);
            }

            /*
             * TimeLimited,
             *  Daily,
             *  Monthly,
             *  Annual
             */

            if (!context.TypeOfTickets.Any(u => u.Name == "TimeLimited"))
            {
                TypeOfTicket tt = new TypeOfTicket("TimeLimited");
                context.TypeOfTickets.Add(tt);
            }
            if (!context.TypeOfTickets.Any(u => u.Name == "Daily"))
            {
                TypeOfTicket tt = new TypeOfTicket("Daily");
                context.TypeOfTickets.Add(tt);
            }
            if (!context.TypeOfTickets.Any(u => u.Name == "Monthly"))
            {
                TypeOfTicket tt = new TypeOfTicket("Monthly");
                context.TypeOfTickets.Add(tt);
            }
            if (!context.TypeOfTickets.Any(u => u.Name == "Annual"))
            {
                TypeOfTicket tt = new TypeOfTicket("Annual");
                context.TypeOfTickets.Add(tt);
            }
        }