Exemple #1
0
 public IActionResult GetPassFavorite()
 {
     try
     {
         var listUserPass = _iUserPassService.GetAllUserPass().GroupBy(_ => _.PassId).Select(_ => new { passId = _.Key, count = _.Count() }).OrderBy(_ => _.count).Take(5);
         var listPass     = new List <Pass>();
         listUserPass.ToList().ForEach(_ =>
         {
             var pass = _iPassService.GetPassById(_.passId);
             if (pass != null)
             {
                 listPass.Add(pass);
             }
         });
         return(Ok(listPass));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
        public async Task <IActionResult> GetPassById(int id)
        {
            var result = await _service.GetPassById(id);

            return(Ok(_mapper.Map <PassOutputDTO>(result)));
        }
Exemple #3
0
        public async Task <IActionResult> CreateUserPass(UserPassCM userPassCM)
        {
            try
            {
                var user = _iUserService.GetUserById(userPassCM.UserUid);
                if (user == null)
                {
                    user = new User()
                    {
                        Uid = userPassCM.UserUid
                    };
                    _iUserService.AddUser(user);
                }
                var userPass = _mapper.Map <UserPass>(userPassCM);
                userPass.UserUid = user.Uid;
                var pass = _iPassService.GetPassById(userPassCM.PassId);
                if (!pass.IsSelling)
                {
                    pass.IsSelling = true;
                    _iPassService.UpdatePass(pass);
                }
                if (pass == null)
                {
                    return(NotFound("User Pass not found"));
                }
                userPass.BoughtAt     = DateTime.Now;
                userPass.WillExpireAt = DateTime.Now.AddDays(pass.ExpireDuration);

                List <UserPass> listAdd       = new List <UserPass>();
                var             childrenPrice = pass.ChildrenPrice;
                var             adultPrice    = pass.Price;

                for (int i = 0; i < userPassCM.QuantiyAdult; i++)
                {
                    UserPass passAdd = CloneGeneric.Clone <UserPass>(userPass);
                    passAdd.IsChildren      = false;
                    passAdd.PriceWhenBought = adultPrice;
                    _iUserPassService.AddUserPass(passAdd);
                    List <Ticket> listTicketType = new List <Ticket>();
                    userPassCM.TicketTypeIds.ForEach(_ =>
                    {
                        listTicketType.Add(new Ticket()
                        {
                            TicketTypeId = _,
                            UserPassId   = passAdd.Id
                        });
                    });
                    _iTicketService.AddRangeTicket(listTicketType);
                }
                for (int i = 0; i < userPassCM.QuantiyChildren; i++)
                {
                    UserPass passAdd = CloneGeneric.Clone <UserPass>(userPass);
                    passAdd.IsChildren      = true;
                    passAdd.PriceWhenBought = childrenPrice;
                    _iUserPassService.AddUserPass(passAdd);
                    List <Ticket> listTicketType = new List <Ticket>();
                    userPassCM.TicketTypeIds.ForEach(_ =>
                    {
                        listTicketType.Add(new Ticket()
                        {
                            TicketTypeId = _,
                            UserPassId   = passAdd.Id
                        });
                    });
                    _iTicketService.AddRangeTicket(listTicketType);
                }
                var result = await _iUserPassService.SaveUserPass();

                if (!result)
                {
                    return(BadRequest("Can not create user pass"));
                }
                return(StatusCode(201));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public async Task <IActionResult> GetPassById(int id)
        {
            var result = await _service.GetPassById(id);

            return(Ok(result));
        }