public async Task <IActionResult> PutUserTickets(int id, UserTickets userTickets) { if (id != userTickets.UserId) { return(BadRequest()); } _context.Entry(userTickets).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserTicketsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public static string GetUserTicket(RestCommand command, int ticketID) { UserTicket userTicket = UserTickets.GetUserTicket(command.LoginUser, ticketID); if (userTicket.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(userTicket.GetXml("UserTicket", true)); }
public static void CreateTicketUserAssociation(int userId, int ticketId, HelpDeskContext _context) { // Create association with user UserTickets userTicket = new UserTickets() { UserId = userId, TicketId = ticketId }; // Add association to database _context.UserTickets.Add(userTicket); _context.SaveChanges(); }
public static string GetUserTickets(RestCommand command) { UserTickets userTickets = new UserTickets(command.LoginUser); userTickets.LoadByOrganizationID(command.Organization.OrganizationID); if (command.Format == RestFormat.XML) { return(userTickets.GetXml("UserTickets", "UserTicket", true, command.Filters)); } else { throw new RestException(HttpStatusCode.BadRequest, "Invalid data format"); } }
public async Task <ActionResult <UserTickets> > PostUserTickets(UserTickets userTickets) { _context.UserTickets.Add(userTickets); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (UserTicketsExists(userTickets.UserId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetUserTickets", new { id = userTickets.UserId }, userTickets)); }
public async Task <Object> ChangeReservationTicket(string ticketID, string typeChange) { string defaultTime = "1/1/0001 00:00:00"; var ticket = await _context.Tickets.FindAsync(int.Parse(ticketID)); if (ticket == null) { return(NotFound("Changing failed. Server not found ticket in data base.")); } var userTicket = new UserTickets(); var userTickets = _context.UserTickets; foreach (var ut in userTickets) { if (ut.TicketID.Equals(long.Parse(ticketID))) { userTicket = ut; break; } } if (typeChange.Equals("yes")) { long jmbg = -1; foreach (var tic in userTickets) { if (tic.TicketID == long.Parse(ticketID)) { jmbg = tic.UserName; } } userTicket.FriendConfirmed = true; _context.UserTickets.Update(userTicket); _context.SaveChanges(); // povecanje poena var user = await _userManager.FindByIdAsync(jmbg.ToString()); user.Points += 70; await _userManager.UpdateAsync(user); // avikompanija smanjuje svoj broj prodatih karata AirlineNumberOfTicketMethod(ticketID, "plus"); } else { long jmbg = -1; foreach (var tic in userTickets) { if (tic.TicketID == long.Parse(ticketID)) { jmbg = tic.UserName; } } ticket.IsTicketPurchased = false; ticket.TimeOfTicketPurchase = DateTime.Parse(defaultTime); _context.Tickets.Update(ticket); _context.SaveChanges(); _context.UserTickets.Remove(userTicket); _context.SaveChanges(); // umanjenje poena i smanjenje broja prodatih arat, kod odbijanja ne treba..jer nikom nista !!! } return(Ok()); }
public async Task <Object> FriendAndMeBookingFlight(FriendsAndMeModel model) { string[] friends = model.Friends.Split('|'); List <string> ticketIDs = model.Tickets.Split('|').ToList(); #region 10.1 - Prvo sebe unesem u bazu // prvo sebe unesem u bazu..metoda isti kod kao prethodna var userI = await _userManager.FindByNameAsync(model.Username); if (userI == null) { return(NotFound("Booking flight failed. Server not found user in database.")); } var reservedTickets = _context.UserTickets; foreach (var ticket in reservedTickets) { if (ticket.UserName.Equals(long.Parse(userI.Id)) && ticket.TicketID.Equals(long.Parse(ticketIDs[0]))) { return(NotFound("Booking flight failed. User already have this ticket in his reservated tickets.")); } } UserTickets userTicket = new UserTickets() { UserName = long.Parse(userI.Id), TicketID = long.Parse(ticketIDs[0]), FriendConfirmed = true }; // sam sebi sam prijatelj _context.UserTickets.Add(userTicket); _context.SaveChanges(); // sada je potrebno tu kartu postaviti da je rezervisana try { var findTicket = await _context.Tickets.FindAsync(int.Parse(ticketIDs[0])); findTicket.IsTicketPurchased = true; findTicket.TimeOfTicketPurchase = DateTime.Now; try { _context.Tickets.Update(findTicket); _context.SaveChanges(); var user = await _userManager.FindByNameAsync(model.Username); user.Points += 70; var result = await _userManager.UpdateAsync(user); // avikompanija povecava svoj broj prodatih karata AirlineNumberOfTicketMethod(ticketIDs[0], "plus"); } catch (Exception e) { throw e; } } catch (Exception e) { throw e; } #endregion #region 10.2 - Zatim ubacim i prijatelje // prvo izbacim mene ticketIDs.RemoveAt(0); for (int i = 0; i < ticketIDs.Count; i++) { var userFriend = await _userManager.FindByNameAsync(friends[i]); if (userFriend == null) { return(NotFound("Booking flight failed. Server not found friend in database.")); } //var reservedTickets = _context.UserTickets; foreach (var ticket in reservedTickets) { if (ticket.UserName.Equals(long.Parse(userFriend.Id)) && ticket.TicketID.Equals(long.Parse(ticketIDs[i]))) { return(NotFound("Booking flight failed. Friend already have this ticket in his reservated tickets.")); } } UserTickets newTicket = new UserTickets() { UserName = long.Parse(userFriend.Id), TicketID = long.Parse(ticketIDs[i]), FriendConfirmed = false }; // prijatelji ce trebati potvrditi. i pored toga...karta ce biti na cekanju i samim tim je za sada zauzeta _context.UserTickets.Add(newTicket); _context.SaveChanges(); // sada je potrebno tu kartu postaviti da je rezervisana try { var findTicket = await _context.Tickets.FindAsync(int.Parse(ticketIDs[i])); findTicket.IsTicketPurchased = true; findTicket.TimeOfTicketPurchase = DateTime.Now; try { _context.Tickets.Update(findTicket); _context.SaveChanges(); //ako je sve u redu..pronadjem mejl od korisnika tj prijatelja i poslajem mu mejl await SendEmailAsync(model.Username, userFriend.Email, findTicket); } catch (Exception e) { throw e; } } catch (Exception e) { throw e; } } #endregion return(Ok()); }
public async Task <Object> BookAFlight(string username, string ticketID) { var userI = await _userManager.FindByNameAsync(username); if (userI == null) { return(NotFound("Booking flight failed. Server not found user in database.")); } var reservedTickets = _context.UserTickets; foreach (var ticket in reservedTickets) { if (ticket.UserName.Equals(long.Parse(userI.Id)) && ticket.TicketID.Equals(long.Parse(ticketID))) { return(NotFound("Booking flight failed. User already have this ticket in his reservated tickets.")); } } UserTickets userTicket = new UserTickets() { UserName = long.Parse(userI.Id), TicketID = long.Parse(ticketID), FriendConfirmed = true }; // sam sebi sam prijatelj _context.UserTickets.Add(userTicket); _context.SaveChanges(); // sada je potrebno tu kartu postaviti da je rezervisana try { var findTicket = await _context.Tickets.FindAsync(int.Parse(ticketID)); findTicket.IsTicketPurchased = true; findTicket.TimeOfTicketPurchase = DateTime.Now; try { _context.Tickets.Update(findTicket); _context.SaveChanges(); // poeni se dodeljuju useru //PlusPointsForUser(username, "only_flight"); var user = await _userManager.FindByNameAsync(username); user.Points += 70; var result = await _userManager.UpdateAsync(user); // avikompanija povecava svoj broj prodatih karata AirlineNumberOfTicketMethod(ticketID, "plus"); return(Ok()); } catch (Exception e) { throw e; } } catch (Exception e) { throw e; } }