public SoftwareDetails(string id, ObservableCollection <Software> viewModelSoftwareList,
                               MainWindowViewModel mainWindowViewModel)
        {
            _mainWindowViewModel = mainWindowViewModel;
            _adding       = false;
            _softwareList = viewModelSoftwareList;
            _viewModel    = new SoftwareDetailsViewModel(id);

            DataContext = _viewModel;
            InitializeComponent();
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null || id == 0)
            {
                return(NotFound());
            }

            var Software = await _context.Softwares.Include(t => t.Tipi)
                           .Include(u => u.AppUser).ThenInclude(t => t.Team).ThenInclude(d => d.Department)
                           .Include(ta => ta.TechArea)
                           .Include(t => t.Tipi)
                           .Include(it => it.ItOwner)
                           .Include(p => p.Purpose)
                           .Include(R => R.Reseller)
                           .Include(sbot => sbot.SoftwareBusinessOwnerTeams)
                           .FirstOrDefaultAsync(s => s.SoftwareId == id);

            var         softwareBusinessOwnerTeams = _context.SoftwareBusinessOwnerTeams.Where(sbot => sbot.SoftwareId == id).ToList();
            List <Team> businessOwnerTeams         = new List <Team>();

            foreach (var bot in softwareBusinessOwnerTeams)
            {
                var tempTeam = await _context.Teams.Where(t => t.TeamId == bot.BusinessOwnerTeamId).FirstOrDefaultAsync();

                businessOwnerTeams.Add(tempTeam);
            }
            Software.BusinessOwnerTeams = businessOwnerTeams;

            if (Software.Reseller == null)
            {
                Software.Reseller = new Reseller
                {
                    Name = ""
                };
            }

            var vm = new SoftwareDetailsViewModel();

            //Color
            vm.Software = Software;
            if (Software.DaysLeft() < 30)
            {
                vm.BackgroundColor = "bg-red";
                vm.FontColor       = "col-deep-orange";
            }
            else if (Software.DaysLeft() > 30 && Software.DaysLeft() < 60)
            {
                vm.BackgroundColor = "bg-orange";
                vm.FontColor       = "col-blue-grey";
            }
            else
            {
                vm.BackgroundColor = "bg-teal";
                vm.FontColor       = "col-teal";
            }

            List <Software> softwareToBeRemoved = _context.Softwares.Where(s => s.SoftwareId == id).ToList();
            //See also
            var SeeAlsoSoftwares = await _context.Softwares
                                   .Include(t => t.Tipi)
                                   .Where(s => s.TipiId == Software.TipiId).Except(softwareToBeRemoved).Take(5).ToListAsync();

            vm.SeeAlso = SeeAlsoSoftwares;

            var Graph = new TestGraph();

            Graph.DaysLeft   = Software.DaysLeft();
            Graph.DaysPassed = Software.DaysPassed();
            Graph.TotalDays  = Software.TotalDays();
            //Percentage stuff
            vm.Graph = Graph;

            return(View(vm));
        }