// 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
     };
 }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        // 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));
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        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));
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        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));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 22
0
        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 }));
        }
Exemplo n.º 23
0
        // 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));
        }
Exemplo n.º 24
0
        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));
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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);
        }
Exemplo n.º 28
0
        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));
        }
Exemplo n.º 29
0
        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)));
        }
Exemplo n.º 30
0
        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));
        }
Exemplo n.º 31
0
        // 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);
        }