Esempio n. 1
0
        //creates a text string out of bootcamp's locations to be 
        //displayed on home page (i.e. 3 locations would be converted
        //to "<Location 1> + 2 others"
        public Bootcamp ConvertBootcampFormat(Bootcamp bootcamp)
        {
            var bootcamp2 = new Bootcamp
            {
                BootcampId = bootcamp.BootcampID,
                Name = bootcamp.Name,
                LogoLinkUrl = bootcamp.LogoLink
            };

            int locationsCount = _bootcampLocationsRepo.GetAllBootcampLocationsByBootcampId(bootcamp.BootcampID).Count;
            string str = "";
            if (locationsCount > 1)
            {
                if (locationsCount == 2)
                {
                    str = " + 1 other";
                }
                else
                {
                    str = " + " + ((locationsCount - 1)).ToString() + " others";
                }
            }
            var locationById = _locationRepo.GetLocationById(bootcamp.LocationID);
            bootcamp2.Location = locationById.City + ", " + locationById.Country + str;
            return bootcamp2;
        }
        //
        public BootcampSessionAddAng Get(int id)
        {
            //create a new view model, passing in the desired
            //session id and name
            BootcampSessionAddAng ang = new BootcampSessionAddAng
            {
                BootcampSessionId = id
            };

            ang.BootcampName = _bootcampRepo.GetBootcampByID(id).Name;

            //add all of the bootcamp's locations to the view model
            foreach (BootcampLocation location in _bootcampLocationsRepo.GetAllBootcampLocationsByBootcampId(id))
            {
                Location    locationById = _locationRepo.GetLocationById(location.LocationID);
                LocationAng item         = new LocationAng
                {
                    LocationId = location.LocationID,
                    Name       = locationById.City + ", " + locationById.Country
                };
                ang.Locations.Add(item);
            }

            //add all of the bootcamp's technologies to the view model
            foreach (BootcampTechnology technology in _bootcampTechRepo.GetAllBootcampTechnologiesByBootcampId(id))
            {
                TechnologyAng ang3 = new TechnologyAng
                {
                    TechnologyId = technology.TechnologyID.Value,
                    Name         = _techRepo.GetTechnologyById(technology.TechnologyID.Value).Name
                };
                ang.Technologies.Add(ang3);
            }
            return(ang);
        }
Esempio n. 3
0
        public ActionResult Index(string id)
        {
            //parse URL to get bootcamp ID
            string bootcampName = id.Replace("-", " ");
            int?   bootcampID   = _bootcampRepo.GetBootcampIDByName(bootcampName);

            //if bootcamp does not exist, redirect to the home page
            if (id == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //get bootcampID and locationID
            var bootcampByID = _bootcampRepo.GetBootcampByID((int)bootcampID);
            var locationById = _locationRepo.GetLocationById(bootcampByID.LocationID);

            //insert basic bootcamp info into view model
            var model = new BootcampViewModel
            {
                BootcampID = (int)bootcampID,
                Location   = locationById.City + ", " + locationById.Country,
                Name       = bootcampByID.Name,
                LogoLink   = bootcampByID.LogoLink,
                Url        = bootcampByID.Website,
                Price      = Helper.GetPriceString(bootcampByID.Price, _locationRepo.GetLocationById(bootcampByID.LocationID).Country)
            };


            //get all links info for bootcamp and add to view model
            foreach (var link in _linkRepo.GetAllLinksByBootcampId((int)bootcampID))
            {
                Site   siteById = _siteRepo.GetSiteById((int)link.SiteID);
                string linkText = link.LinkText;
                if (linkText.Length > 60)
                {
                    linkText = linkText.Substring(0, 60) + "...";
                }
                FutureCodr.UI.Models.Bootcamp.Link item = new FutureCodr.UI.Models.Bootcamp.Link
                {
                    URL         = link.URL,
                    SiteName    = siteById.SiteName,
                    SiteLogoURL = siteById.SiteLogoURL,
                    Title       = linkText,
                    Date        = link.Date
                };
                model.Links.Add(item);
            }

            //order links by most recent
            model.Links = (from m in model.Links
                           orderby m.Date descending
                           select m).ToList();

            //add bootcamp locations to view model
            foreach (var location2 in _bootcampLocationsRepo.GetAllBootcampLocationsByBootcampId((int)bootcampID))
            {
                FutureCodr.Models.Location             location3 = _locationRepo.GetLocationById(location2.LocationID);
                FutureCodr.UI.Models.Bootcamp.Location location4 = new FutureCodr.UI.Models.Bootcamp.Location
                {
                    City = location3.City,
                    Name = location3.City + ", " + location3.Country,
                    Id   = location2.LocationID
                };
                model.Locations.Add(location4);
            }

            //add bootcamp sessions to view model if they start in the future
            foreach (var session in _sessionRepo.GetBootcampSessionsByBootcampId((int)bootcampID))
            {
                if (session.StartDate > DateTime.Now)
                {
                    Session session2 = new Session
                    {
                        Technology = _technologyRepo.GetTechnologyById(session.TechnologyID.Value).Name,
                        Location   = _locationRepo.GetLocationById((int)session.LocationID).City +
                                     ", " +
                                     _locationRepo.GetLocationById(session.LocationID.Value).Country,
                        StartDate = session.StartDate,
                        EndDate   = session.EndDate
                    };
                    model.Sessions.Add(session2);
                }
            }

            //order sessions by soonest to start
            model.Sessions = (from m in model.Sessions
                              orderby m.StartDate
                              select m).ToList();

            //add bootcamp technologies to the view model
            foreach (var technology in _bootcampTechnologyRepo.GetAllBootcampTechnologiesByBootcampId((int)bootcampID))
            {
                FutureCodr.UI.Models.Bootcamp.Technology technology2 = new FutureCodr.UI.Models.Bootcamp.Technology
                {
                    Name = _technologyRepo.GetTechnologyById(technology.TechnologyID.Value).Name,
                    Id   = technology.TechnologyID.Value
                };
                model.Technologies.Add(technology2);
            }

            //return the strongly typed view with the view model passed in
            return(View(model));
        }