// GET: Tickets/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(this.NotFound( )); } TicketDetailsViewModel vm = new TicketDetailsViewModel( ); Ticket ticket = await this.context.Tickets.IncludeOptimized(t => t.DeveloperUser) .IncludeOptimized(t => t.OwnerUser) .IncludeOptimized(t => t.Project) .IncludeOptimized(t => t.TicketPriority) .IncludeOptimized(t => t.TicketStatus) .IncludeOptimized(t => t.TicketType) .IncludeOptimized(t => t.Attachments) .IncludeOptimized(t => t.Comments) .FirstOrDefaultAsync(m => m.Id == id) .ConfigureAwait(false); if (ticket == null) { return(this.NotFound( )); } vm.Ticket = ticket; return(this.View(vm)); }
public void TicketDetailsView_SystemWays() { ChangeTracker.Setup(x => x.CurrentUser).Returns(new AnonymousUser("211", 100)); ways = 2; ChangeTracker.Object.CurrentTicket.bets = new BetWS[1] { new BetWS() { betType = Bet.BET_TYPE_SYSTEMPATH } }; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti = new TipWS[] { new TipWS() { }, new TipWS() { }, new TipWS() { }, new TipWS() { } }; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].bankGroupID = 1; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].bankGroupID = 1; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[2].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[2].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[2].bankGroupID = 2; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[3].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[3].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[3].bankGroupID = 2; ChangeTracker.Object.CurrentTicket.bets[0].systemX = 2; ChangeTracker.Object.CurrentTicket.bets[0].systemY = 4; ChangeTracker.Object.CurrentTicket.bets[0].bankTips = new TipWS[] { new TipWS() { }, new TipWS() { }, new TipWS() { }, new TipWS() { } }; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[1].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[1].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[2].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[2].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[3].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[3].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].rows = 24; ChangeTracker.Object.CurrentTicket.isAnonymous = true; var model = new TicketDetailsViewModel(); model.OnNavigationCompleted(); ValidateTicketDetailsView(model); }
public TicketDetailsPage(Data.Model.Schedule item) { InitializeComponent(); BindingContext = model = new TicketDetailsViewModel() { ScheduleModel = item }; }
public async Task GetAllAsyncReturnsAllTicketsForTheUser() { await this.AddTestingUserToDb(); await this.AddTestingCountryToDb(); await this.AddTestingActivityToDb(); this.DbContext.Tickets.Add(new Ticket { Id = 1, UserId = testingUserId, ActivityId = TestingActivityId, }); this.DbContext.Tickets.Add(new Ticket { Id = 2, UserId = testingUserId, ActivityId = TestingActivityId, }); await this.DbContext.SaveChangesAsync(); var expected = new TicketDetailsViewModel[] { new TicketDetailsViewModel { Id = 1, UserId = testingUserId, ActivityId = TestingActivityId, }, new TicketDetailsViewModel() { Id = 2, UserId = testingUserId, ActivityId = TestingActivityId, } }; var actual = await this.TicketsServiceMock.GetAllAsync(TestUsername); Assert.Collection(actual, elem1 => { Assert.Equal(expected[0].Id, elem1.Id); Assert.Equal(expected[0].UserId, elem1.UserId); Assert.Equal(expected[0].ActivityId, elem1.ActivityId); }, elem2 => { Assert.Equal(expected[1].Id, elem2.Id); Assert.Equal(expected[1].UserId, elem2.UserId); Assert.Equal(expected[1].ActivityId, elem2.ActivityId); }); Assert.Equal(expected.Length, actual.Count()); }
private List <TicketDetailsViewModel> transformTickets(List <Ticket> lists) { var ticketDetailsList = new List <TicketDetailsViewModel>(); foreach (var ticket in lists) { var tdTicket = new TicketDetailsViewModel(ticket); ticketDetailsList.Add(tdTicket); } return(ticketDetailsList); }
public ActionResult Details(int id) { var model = new TicketDetailsViewModel() { Id = id }; if (!this.ticketService.GetById(id).Any()) { this.TempData[GlobalMessages.Warning] = "Ticket not found!"; return this.RedirectToAction("Index", "Home", new { area = string.Empty }); } return this.View(model); }
// GET: Tickets/Details/<ticket_id> public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var ticket = await _context.Ticket .SingleOrDefaultAsync(m => m.Id == id); if (ticket == null) { return(NotFound()); } var pairDetails = new List <PairDetails>(); var pairIds = ticket.Pairs.Split(',').Select(int.Parse).ToList(); foreach (var pairId in pairIds) { var pair = _context.Pair .SingleOrDefault(m => m.Id == pairId); if (pair == null) { return(NotFound()); } var match = _context.Match.SingleOrDefault(m => m.Id == pair.MatchId); if (match == null) { return(NotFound()); } pairDetails.Add( new PairDetails { Pair = pair, Match = match }); } var ticketMatches = new TicketDetailsViewModel { Wager = ticket.Wager, Bonus = ticket.Bonus, PossibleGain = ticket.PossibleGain, Date = ticket.Date, PairDetails = pairDetails }; return(View(ticketMatches)); }
public ActionResult TicketDetails(int?id) { var ticket = bugTrackerHelper.GetCurrentTicketById(id.Value); var model = new TicketDetailsViewModel(); model = Mapper.Map <TicketDetailsViewModel>(ticket); model.CanCreate = (bool)ViewData["CanCreate"]; model.TicketAttachments = bugTrackerHelper.GetListAttachments(ticket); model.TicketComments = bugTrackerHelper.GetListComments(ticket); model.TicketHistories = bugTrackerHelper.GetListHistories(ticket); return(View(model)); }
public async Task GetAllAsyncDoesNotReturnAnotherUsersTickets() { await this.AddTestingUserToDb(); await this.AddTestingCountryToDb(); await this.AddTestingActivityToDb(); this.DbContext.Tickets.Add(new Ticket { Id = 1, UserId = testingUserId, ActivityId = TestingActivityId, }); this.DbContext.Tickets.Add(new Ticket { Id = 2, UserId = Guid.NewGuid().ToString(), ActivityId = TestingActivityId, }); this.DbContext.Tickets.Add(new Ticket { Id = 3, UserId = Guid.NewGuid().ToString(), ActivityId = TestingActivityId, }); await this.DbContext.SaveChangesAsync(); var expected = new TicketDetailsViewModel[] { new TicketDetailsViewModel { Id = 1, UserId = testingUserId, ActivityId = TestingActivityId, }, }; var actual = await this.TicketsServiceMock.GetAllAsync(TestUsername); Assert.Collection(actual, elem1 => { Assert.Equal(expected[0].Id, elem1.Id); Assert.Equal(expected[0].UserId, elem1.UserId); Assert.Equal(expected[0].ActivityId, elem1.ActivityId); }); Assert.Equal(expected.Length, actual.Count()); }
public ActionResult Details(int id) { var model = new TicketDetailsViewModel() { Id = id }; if (!this.ticketService.GetById(id).Any()) { this.TempData[GlobalMessages.Warning] = "Ticket not found!"; return(this.RedirectToAction("Index", "Home", new { area = string.Empty })); } return(this.View(model)); }
public ActionResult Ticket(Guid ProjectId, Guid TicketId) { var project = _repo.GetById(ProjectId); var ticket = project.Tickets.Where(x => x.Id == TicketId).FirstOrDefault(); var model = new TicketDetailsViewModel { Id = ticket.Id, Name = ticket.Name, Description = ticket.Description, Status = ticket.TicketState.ToString(), AssingTo = ticket.AssignTo }; return(View(model)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var model = new TicketDetailsViewModel(ticket); return(View(model)); }
public async Task <IActionResult> TicketDetails(Guid teamId, Guid ticketId) { var comments = await _communicationService .GetAsync <IEnumerable <CommentApiModel> >($"user/teams/{teamId}/tickets/{ticketId}/comments", null, FormHeaders(JsonType), "ticketapi"); var commentViewModels = _mapper.Map <IList <CommentViewModel> >(comments); foreach (var comment in commentViewModels) { comment.TeamId = teamId; comment.TicketId = ticketId; } var ticket = await _communicationService .GetAsync <TicketApiModel>($"user/teams/{teamId}/tickets/{ticketId}", null, FormHeaders(JsonType), "ticketapi"); var ticketViewModel = _mapper.Map <TicketViewModel>(ticket); ticketViewModel.TeamId = teamId; var wathcers = await _communicationService.GetAsync <IEnumerable <UserApiModel> >( $"user/teams/{teamId}/tickets/{ticketViewModel.Id}/watchers", null, FormHeaders(JsonType), "notifyapi"); ticketViewModel.Watchers = _mapper.Map <IEnumerable <UserViewModel> >(wathcers); var linkedTickets = await _communicationService.GetAsync <IEnumerable <TicketApiModel> >( $"user/teams/{teamId}/tickets/{ticketId}/linked", null, FormHeaders(JsonType), "ticketapi"); var linkedTicketsViewModel = _mapper.Map <IEnumerable <TicketViewModel> >(linkedTickets); ticketViewModel.LinkedTickets = linkedTicketsViewModel; var ticketDetails = new TicketDetailsViewModel { Comments = commentViewModels, Ticket = ticketViewModel }; return(Json(ticketDetails)); }
public ActionResult Details(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(TicketController.Index))); } var model = new TicketDetailsViewModel(); var ticket = Db .Tickets .Include(p => p.TicketStatus) .Include(p => p.TicketType) .Include(p => p.TicketPriority) .FirstOrDefault(p => p.Id == id); if (ticket == null) { return(RedirectToAction(nameof(TicketController.Index))); } if (ticket.AssignedToUserId != null) { model.DeveloperId = ticket.AssignedToUser.ScreenName; } model.Id = ticket.Id; model.Title = ticket.Title; model.DateCreated = ticket.DateCreated; model.DateUpdated = ticket.DateUpdated; model.Description = ticket.Description; model.OwnerName = ticket.OwnerUser.ScreenName; model.TicketPriority = ticket.TicketPriority.Name; model.TicketStatus = ticket.TicketStatus.Name; model.TicketType = ticket.TicketType.Name; model.DeveloperList = getSelectList.OfDeveloper(); model.CommentList = ticket.Comments.Where(p => p.TicketId == ticket.Id).OrderByDescending(p => p.Id).ToList(); model.AttachmentList = ticket.Attachments.Where(p => p.TicketId == ticket.Id).ToList(); model.Histories = ticket.Histories.Where(p => p.TicketId == ticket.Id).OrderByDescending(p => p.Id).ToList(); ViewBag.notifyUser = ticket.NotifyUsers.Select(p => p.UserName).ToList(); return(View(model)); }
// GET: Tickets/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } TicketDetailsViewModel TicketDetailsVM = new TicketDetailsViewModel(); TicketDetailsVM.Histories = db.TicketHistories.Where(tH => tH.TicketId == id).ToList(); return(View(ticket)); }
public ActionResult Details(int id) { var ticket = this.Data.Tickets.All().Include(t => t.Category).Include(t => t.Comments).FirstOrDefault(t => t.Id == id); var ticketViewModel = new TicketDetailsViewModel() { Id = ticket.Id, Author = ticket.Author.UserName, Category = ticket.Category.Name, Description = ticket.Description, ScreenshotUrl = ticket.ScreenshotUrl, Title = ticket.Title, Priority = ticket.Priority.ToString(), Comments = ticket.Comments.AsQueryable().Select(CommentBasicViewModel.FromComment).ToList() }; return View(ticketViewModel); }
public async Task <IActionResult> Details(Guid id, CancellationToken cancellationToken) { var request = new TicketDetailsRequest { Id = id }; var ticket = await _mediator.Send(request, cancellationToken); if (ticket == null) { return(NotFound()); } var viewModel = new TicketDetailsViewModel(ticket); return(View(viewModel)); }
public void TicketDetailsView_MultiWays() { ChangeTracker.Setup(x => x.CurrentUser).Returns(new AnonymousUser("211", 211)); ways = 1; ChangeTracker.Object.CurrentTicket.calculated = true; ChangeTracker.Object.CurrentTicket.won = true; ChangeTracker.Object.CurrentTicket.wonExpireTime = DateTime.Now.AddSeconds(-1); ChangeTracker.Object.CurrentTicket.bets = new BetWS[1] { new BetWS() { betType = Bet.BET_TYPE_COMBIPATH } }; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti = new TipWS[] { new TipWS() { }, new TipWS() { } }; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[0].bankGroupID = 1; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti[1].bankGroupID = 1; ChangeTracker.Object.CurrentTicket.bets[0].bankTips = new TipWS[] { new TipWS() { } }; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].rows = 2; ChangeTracker.Object.CurrentTicket.isAnonymous = true; ChangeTracker.Object.CurrentTicket.superBonus = 1.1m; ChangeTracker.Object.CurrentTicket.superBonusValue = ChangeTracker.Object.CurrentTicket.stake * odds * ChangeTracker.Object.CurrentTicket.superBonus; ChangeTracker.Object.CurrentTicket.manipulationFee = 0.1m; ChangeTracker.Object.CurrentTicket.manipulationFeeValue = ChangeTracker.Object.CurrentTicket.stake * ChangeTracker.Object.CurrentTicket.manipulationFee; var model = new TicketDetailsViewModel(); model.OnNavigationCompleted(); ValidateTicketDetailsView(model); }
public ActionResult Details(int?id) { var userId = User.Identity.GetUserId(); if (db.tickets.Where(t => t.Id == id).Where(t => t.AssignedId == userId).FirstOrDefault() == null && User.IsInRole("Developer")) { TempData["Attempted"] = "Failure"; return(RedirectToAction("Index", "Profile")); } if (db.tickets.Where(t => t.Id == id).Where(t => t.OwnerId == userId).FirstOrDefault() == null && User.IsInRole("Submitter")) { TempData["Attempted"] = "Failure"; return(RedirectToAction("Index", "Profile")); } if (db.tickets.Where(t => t.Id == id).Where(t => t.Project.projectUsers.Select(u => u.Id).Contains(userId)).FirstOrDefault() == null && User.IsInRole("ProjectManager")) { TempData["Attempted"] = "Failure"; return(RedirectToAction("Index", "Profile")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var model = new TicketDetailsViewModel { tickets = db.tickets.Find(id), user = db.Users.Find(User.Identity.GetUserId()), ticketAttachments = db.ticketAttachments.Where(a => a.TicketId == id).ToList(), ticketComments = db.ticketComments.Where(c => c.TicketId == id).ToList(), ticketHistories = db.ticketHistories.Where(h => h.TicketId == id).ToList() }; if (model.tickets == null || model.user == null) { return(HttpNotFound()); } return(View(model)); }
public ActionResult Details(int id) { var ticket = this.Db.Tickets.GetById(id); var ticketModel = new TicketDetailsViewModel() { Title = ticket.Title, Id = ticket.Id, Author = ticket.Author.UserName, Category = ticket.Category.Name, Description = ticket.Description, Priority = ticket.Priority.ToString(), ScreenshotUrl = ticket.ScreenshotUrl, Comments = ticket.Comments.Select(comment => new CommentViewModel() { Author = comment.Author.UserName, Content = comment.Content }).ToList() }; return(View(ticketModel)); }
public async Task CheckIfGetTicketViewModelByIdAsyncWorksCorrectly() { await this.SeedTickets(); var expectedModel = new TicketDetailsViewModel { Row = this.firstTicket.Row, Seat = this.firstTicket.Seat, Price = this.firstTicket.Price, TimeSlot = this.firstTicket.TimeSlot, TicketType = this.firstTicket.TicketType, Quantity = this.firstTicket.Quantity, }; var viewModel = await this.ticketsService.GetViewModelByIdAsync <TicketDetailsViewModel>(this.firstTicket.Id); var expectedObj = JsonConvert.SerializeObject(expectedModel); var actualResultObj = JsonConvert.SerializeObject(viewModel); Assert.Equal(expectedObj, actualResultObj); }
public ActionResult AddAttachment(int id, TicketDetailsViewModel form) { var ticket = Db.Tickets.Where(p => !p.Project.IsArchived).FirstOrDefault(p => p.Id == id); var mailHelper = new MailSender(userManager, ticket); var currentUserId = User.Identity.GetUserId(); if (ticket != null && form.MediaUrl != null) { const string FOLDER = "~/Vault/"; var userId = User.Identity.GetUserId(); var fileName = form.MediaUrl.FileName; var mappedPath = System.Web.HttpContext.Current.Server.MapPath(FOLDER); var filePathWithName = mappedPath + fileName; if (!Directory.Exists(FOLDER)) { Directory.CreateDirectory(mappedPath); } form.MediaUrl.SaveAs(filePathWithName); var model = new Attachment(); model.Description = form.AttachmentsDetails; model.TicketId = id; model.UserId = userId; model.FilePath = FOLDER + fileName; Db.Attachments.Add(model); Db.SaveChanges(); mailHelper.Send(currentUserId); } return(RedirectToAction(nameof(TicketController.Details), nameof(TicketController).ToControllerName(), new { id = id })); }
// GET: Tickets/Details/5 public async Task <IActionResult> Details(long?id) { if (id == null) { return(NotFound()); } var ticket = await _context.Tickets .Include(t => t.AssignedUser) .Include(t => t.CreatedUser) .Include(t => t.Project) .FirstOrDefaultAsync(m => m.Id == id); if (ticket == null) { return(NotFound()); } ticket.Comments = await _context.Comments.Where(m => m.TicketId == id).Include(c => c.ApplicationUser).ToListAsync(); ticket.Documents = await _context.Documents.Where(d => d.TicketId == id).ToListAsync(); var model = new TicketDetailsViewModel { Ticket = ticket, Documents = ticket.Documents, Comment = new Comment { TicketId = ticket.Id, } }; //Pass the LoggedInUser when closing the Ticket. loggedInUser = await userManager.GetUserAsync(User); TempData["loggedInUser"] = loggedInUser.Email; return(View(model)); }
public IActionResult Details(int id) { var ticket = _ticketsFinder.Find(id); if (ticket == null) { return(NotFound()); } if (ticket.AuthorId != User.GetUserId() && !User.IsInRole("Admin")) { return(Forbid()); } var viewModel = new TicketDetailsViewModel { Id = ticket.Id, Title = ticket.Title, Description = ticket.Description, Deadline = ticket.Deadline, Author = ticket.Author, CreatedAt = ticket.CreatedAt, CompletedAt = ticket.CompletedAt, IsCompleted = ticket.IsCompleted, Category = ticket.Category.Name, Images = ticket.GetImages().Select(i => new ImageViewModel() { DataBase64 = Convert.ToBase64String(i.Data) }).ToList(), Comments = ticket.GetComments().Select(c => new CommentListViewModel { Id = c.Id, Content = c.Content, }).ToList() }; return(View(nameof(Details), viewModel)); }
public TicketDetailsViewModel DetailsTicketViewModel(Ticket ticket, IEnumerable <ModelError> allErrors = null) { var viewModel = new TicketDetailsViewModel { CreatorId = ticket.Creator.Id, TicketId = ticket.TicketId, Title = ticket.Title, CreatedDate = ticket.CreatedDate, UpdatedDate = ticket.UpdatedDate, CreatorName = $"{ticket.Creator.FirstName} {ticket.Creator.LastName}", Assigned = _userTicketService.UserTicketToNames(ticket.Assigned), Type = ticket.Type, Status = ticket.Status, Priority = ticket.Priority, Content = ticket.Content, ProjectTitle = ticket.Project.Title }; if (ticket.CommentThreads != null) { viewModel.CommentThreads = new List <CommentThread>(); foreach (var commentThread in ticket.CommentThreads) { viewModel.CommentThreads.Add(commentThread); } } if (allErrors != null) { viewModel.Errors = new List <string>(); foreach (var error in allErrors) { viewModel.Errors.Add(error.ErrorMessage); } } return(viewModel); }
public IHttpResponse Details(int id) { var ticket = this.Db.Tickets.FirstOrDefault(t => t.Id == id); if (ticket == null) { return(this.BadRequestError("Ticket do not exist.")); } var ticketDetailViewModel = new TicketDetailsViewModel { Id = id, Destination = ticket.Seat.Flight.Destination, Origin = ticket.Seat.Flight.Origin, Date = ticket.Seat.Flight.Date, Time = ticket.Seat.Flight.Time, Quantity = ticket.Quantity, Class = ticket.Seat.Class, Price = ticket.Seat.Price }; return(this.View(ticketDetailViewModel)); }
public void TicketDetailsView_SystemBonus() { ChangeTracker.Setup(x => x.CurrentUser).Returns(new AnonymousUser("211", 211)); ChangeTracker.Object.CurrentTicket.cancelled = false; ChangeTracker.Object.CurrentTicket.bets = new BetWS[1] { new BetWS() { betType = Bet.BET_TYPE_SYSTEM } }; ChangeTracker.Object.CurrentTicket.bets[0].bankTips = new TipWS[] { new TipWS() { }, new TipWS() { }, new TipWS() { } }; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[0].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[1].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[1].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].bankTips[2].tipDetailsWS = new TipDetailsWS(); ChangeTracker.Object.CurrentTicket.bets[0].bankTips[2].tipDetailsWS.betDomainName = "{0}sdg"; ChangeTracker.Object.CurrentTicket.bets[0].tips2BetMulti = new TipWS[0]; ChangeTracker.Object.CurrentTicket.bets[0].systemX = 2; ChangeTracker.Object.CurrentTicket.bets[0].systemY = 3; ChangeTracker.Object.CurrentTicket.bets[0].bankTips = new TipWS[0]; ChangeTracker.Object.CurrentTicket.bets[0].rows = 3; ChangeTracker.Object.CurrentTicket.isAnonymous = true; ChangeTracker.Object.CurrentTicket.superBonus = 1.1m; ChangeTracker.Object.CurrentTicket.superBonusValue = ChangeTracker.Object.CurrentTicket.stake * odds * ChangeTracker.Object.CurrentTicket.superBonus; var model = new TicketDetailsViewModel(); model.OnNavigationCompleted(); ValidateTicketDetailsView(model); }
public ActionResult Details(int id) { //var ticket = this.Data.Tickets.All().Include(t => t.Category).Include(t => t.Comments).Include(t => t.Tickets).Include(t => t.Assignee).FirstOrDefault(t => t.Id == id); var ticket = this.Data.Tickets.GetById(id); var allChild = this.Data.Tickets.All().Where(t => t.Tickets.Id == id).Select(TicketBasicViewModel.FromTicket).ToList(); var ticketViewModel = new TicketDetailsViewModel() { Id = ticket.Id, Author = ticket.Author.UserName, Category = ticket.Category.Name, Description = ticket.Description, ScreenshotUrl = ticket.ScreenshotUrl, Title = ticket.Title, Priority = ticket.Priority.ToString(), Comments = ticket.Comments.AsQueryable().Select(CommentBasicViewModel.FromComment).ToList(), Tickets = allChild, Assignee = ticket.Assignee == null ? string.Empty : ticket.Assignee.UserName, TaskState = ticket.TaskState, CreateDate = ticket.CreateDate, EndDate = ticket.EndDate }; return(View(ticketViewModel)); }
public ActionResult Details(int?id, TicketDetailsViewModel form) { if (!id.HasValue) { return(RedirectToAction(nameof(TicketController.Index))); } var ticket = Db.Tickets.FirstOrDefault(p => p.Id == id); var developer = Db.Users.FirstOrDefault(p => p.Id == form.DeveloperId); if (ticket == null || developer == null) { return(RedirectToAction(nameof(TicketController.Index))); } //only admin or pm can change developer if (User.IsInRole("Admin") || User.IsInRole("Project Manager")) { ticket.AssignedToUserId = developer.Id; string deatilsUrl = $"http://*****:*****@ {ticket.Title}"; string body = $"You are assigned to this <b><i>{ticket.Title}</i></b> ticket. " + $" Please visit the <a href=\"" + deatilsUrl + "\">link</a> to see the details"; userManager.SendEmail(ticket.AssignedToUserId, subject, body); } Db.SaveChanges(); return(RedirectToAction(nameof(TicketController.Details))); }
public async Task <IActionResult> Edit(long id, TicketDetailsViewModel model, string submit) { model.Ticket.RealPriority = model.Ticket.CustomerPriority; model.Ticket.LastUpdated = DateTime.Now; switch (submit) { case "Skicka in": model.Ticket.Status = Status.Inskickat; model.Ticket.CreatedDate = DateTime.Now; model.Ticket.DueDate = DateTimeExtensions.SetDueDate(model.Ticket.CustomerPriority); var ticketProject = await _context.Projects.FirstOrDefaultAsync(g => g.Id == model.Ticket.ProjectId); ticketProjectDevelopers = new List <ApplicationUser>(); if (ticketProject.Developer1 != null) { ticketProjectDevelopers.Add(await userManager.FindByIdAsync(ticketProject.Developer1)); model.Ticket.AssignedTo = ticketProject.Developer1; } if (ticketProject.Developer2 != null) { ticketProjectDevelopers.Add(await userManager.FindByIdAsync(ticketProject.Developer2)); } break; case "Spara som Utkast": break; default: throw new Exception(); } if (id != model.Ticket.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(model.Ticket); await _context.SaveChangesAsync(); if (model.File != null) { Fileupload(model.File, model.Ticket.Id, model.Ticket.CreatedBy, model.Ticket.RefNo); } } catch (DbUpdateConcurrencyException) { if (!TicketExists(model.Ticket.Id)) { return(NotFound()); } } if (model.Ticket.Status.Equals(Status.Inskickat)) { Company loggedInUserCompany = _context.Companies.Find(loggedInUser.CompanyId); var callbackUrl = Url.Action("Details", "Tickets", new { id = model.Ticket.Id }, protocol: Request.Scheme); var ticketRefNo = model.Ticket.RefNo; return(await SubmittedTicketEmail(loggedInUserCompany, callbackUrl, ticketRefNo, true)); } return(RedirectToAction(nameof(Index))); } return(View(model)); }
// GET: Tickets/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var ticket = _context.Tickets .Include(m => m.TicketPriority) .Include(m => m.TicketStatus) .Include(m => m.TicketType) .Include(m => m.TicketComments) .Single(m => m.Id == id); ; if (ticket == null) { return(NotFound()); } //Ticket Properties var ticketDetails = new TicketDetailsViewModel { Id = ticket.Id, Title = ticket.Title, Created = ticket.Created, Updated = ticket.Updated, Description = ticket.Description, PercentComplete = ticket.PercentComplete, TicketComments = ticket.TicketComments }; //ticketDetails.TicketStatus = status.Name; if (ticket.TicketStatusId != null) { ticketDetails.TicketStatus = ticket.TicketStatus.Name; } if (ticket.TicketPriorityId != null) { ticketDetails.TicketPriority = ticket.TicketPriority.Name; } if (ticket.TicketTypeId != null) { ticketDetails.TicketType = ticket.TicketType.Name; } var ownerName = _context.Users.Find(ticket.OwnerUserId); ticketDetails.OwnerName = ownerName.UserName; //Project Properties var project = await _context.Projects .AsNoTracking() .FirstOrDefaultAsync(m => m.Id == ticket.ProjectId).ConfigureAwait(false); ticketDetails.ProjectTitle = project.Title; ticketDetails.ProjectId = project.Id; return(View(ticketDetails)); }
private void ValidateTicketDetailsView(TicketDetailsViewModel model) { PrintTestTicketInfo(); var ticket = ChangeTracker.Object.CurrentTicket; string betType = ticket.bets[0].betType; if (ticket.bets[0].betType == Bet.BET_TYPE_SYSTEM || ticket.bets[0].betType == Bet.BET_TYPE_SYSTEMPATH) { betType += " " + ticket.bets[0].systemX + "/" + ticket.bets[0].systemY; if (bankers != 0) { betType += "+" + bankers + "B"; } if (ways != 0) { betType += "+" + ways + "W"; } } string status = "open"; if (ticket.calculated && ticket.won) { status = "won"; } else if (ticket.calculated) { status = "lost"; } else if (ticket.cancelled) { status = "cancelled"; } if (ticket.wonExpired) { status = "EXPIRED"; } string showStakePerRow = ""; if (ticket.bets[0].rows > 1) { showStakePerRow = "1"; } Assert.AreEqual(status, model.TabText); Assert.AreEqual(station, model.Station); Assert.AreEqual(ticket.acceptedTime, model.Date); Assert.AreEqual(ticket.paid ? "Yes" : "No", model.Paid); Assert.AreEqual(ticket.ticketNbr, model.TicketNumber); Assert.AreEqual(betType, model.BetType); Assert.AreEqual(ticket.paid ? string.Format("{0:dd.MM.yyyy HH:mm}", ticket.paidTime) : "-", model.PaidAt); Assert.AreEqual(ticket.stake, model.Stake); Assert.AreEqual(ticket.manipulationFee != 0, model.ShowManipulationFee); Assert.AreEqual(ticket.superBonusValue != 0, model.ShowSuperBonus); decimal bonusPercent = (ticket.superBonus - 1) * 100m; Assert.AreEqual(bonusPercent, model.SuperBonusPercent); Assert.AreEqual(showStakePerRow, model.ShowStakePerRow); Assert.AreEqual(ticket.stake / ticket.bets[0].rows, model.StakePerRow); bool showTransferButton = !ticket.wonExpired && ticket.won && ticket.isAnonymous && !ticket.paid && (StationRepository.Object.LocationID == ticket.locationId) && (StationRepository.Object.FranchisorID == ticket.franchisorId) && (ticket.wonExpireTime > DateTime.Now); Assert.AreEqual(showTransferButton, model.ShowTranferToAccountButton); bool showCreditButton = showTransferButton && (ChangeTracker.Object.CurrentUser is AnonymousUser); Assert.AreEqual(showCreditButton, model.ShowCreditNoteButton); }