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))); }
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)); }