public ActionResult Recommended()
        {
            var model = new RecommendationViewModel();

            model = getData(model);
            return(View(model));
        }
        public RecommendationDTO AddNewRecommendation(int userId, RecommendationViewModel newRecommendation)
        {
            var user = (from u in _db.Users
                        where u.Id == userId
                        select u).SingleOrDefault();

            var book = (from b in _db.Books
                        where b.Id == newRecommendation.BookId
                        select b).SingleOrDefault();

            if (user == null || book == null)
            {
                return(null);
            }

            var newRec = new Recommendation
            {
                UserId = userId,
                BookId = newRecommendation.BookId
            };

            _db.Recommendations.Add(newRec);
            _db.SaveChanges();

            return(new RecommendationDTO
            {
                Id = newRec.Id,
                Title = book.Title,
                Author = book.Author
            });
        }
        public void LoadRecommendations()
        {
            var context = TaskScheduler.FromCurrentSynchronizationContext();

            IsBusy = true;

            Recommendations.Clear();

            Task.Factory.StartNew(() =>
            {
                var users = dataLoader.LoadFollowings(settings.Username);
                var token = Task.Factory.CancellationToken;
                foreach (
                    var recommendation in
                    readLaterManager.GetReadLaterRecommendations().Select(
                        recommendationId =>
                        dataLoader.GetRecommendationById(recommendationId)))
                {
                    var current = recommendation;
                    Task.Factory.StartNew(() => Recommendations.Add(
                                              RecommendationViewModel.FromModel(
                                                  current,
                                                  users.Followings.Single(
                                                      c => c.Id == current.UserId),
                                                  settings.Font)), token,
                                          TaskCreationOptions.None, context);
                }
            }).ContinueWith(_ => IsBusy = false, context);
        }
Example #4
0
        public async Task <ActionResult> VoteOnNomination(VoteViewModel voteViewModel)
        {
            if (voteViewModel.Vote.Id != 0)
            {
                VoteAPI.Update(voteViewModel.Vote);
            }
            else if (voteViewModel.Vote.Id == 0)
            {
                VoteAPI.Create(voteViewModel.Vote);
            }
            ;
            Nomination nomination = await NominationAPI.GetById(voteViewModel.Vote.NominationId);

            YearCategoryModel returnParameters   = new YearCategoryModel(nomination.Year, nomination.AwardCategory);
            Nomination        nominationVotedFor = await NominationAPI.GetById(voteViewModel.Vote.NominationId);

            RecommendationViewModel recommendationViewModel = new RecommendationViewModel()
            {
                Year     = nominationVotedFor.Year,
                Category = nominationVotedFor.AwardCategory
            };

            recommendationViewModel.Movie = await MovieAPI.GetById(nominationVotedFor.MovieId);

            recommendationViewModel.MovieId = recommendationViewModel.Movie.Id;
            return(RedirectToAction(nameof(MovieRecommendation), recommendationViewModel));
        }
        public ActionResult Index(RecommendationViewModel model)
        {
            Populate(model);

            if (!model.GenreQuery.Any() && !model.MoodQuery.Any() && !model.StyleQuery.Any() && !model.StartYearQuery.HasValue && !model.EndYearQuery.HasValue)
            {
                ModelState.AddModelError("Query", "Please select something!");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var args = new RecommendationQueryArgs
            {
                Genre     = model.GenreQuery,
                Mood      = model.MoodQuery,
                Style     = model.StyleQuery,
                StartYear = model.StartYearQuery,
                EndYear   = model.EndYearQuery
            };

            model.Artists  = _service.GetArtists(args);
            model.Songs    = _service.GetSongs(args);
            model.IsSearch = true;

            return(View(model));
        }
        public IActionResult Recommendation(RecommendationViewModel vm)
        {
            recommendationLogic.CreateRecommendation(vm.CreateRecommendation);


            return(RedirectToAction("Recommendation", "Recommendation", new { serieid = vm.CreateRecommendation.Serie1.Id }));
        }
        public ActionResult Index()
        {
            var model = new RecommendationViewModel();

            Populate(model);

            return(View(model));
        }
Example #8
0
 public void MarkForLaterReading(RecommendationViewModel context)
 {
     if (context == null)
     {
         return;
     }
     ServiceLocator.Current.GetInstance <IReadLaterManager>().MarkForLaterReading(context.Id);
 }
Example #9
0
        public async Task <JsonCamelCaseResult> SaveRecommendation(RecommendationViewModel recommendation)
        {
            // Save Recommendation.
            var update = await Factory.SaveAsync(Mapper.Map <ITroubleCodeRecommendationDto>(recommendation));

            // Return.
            return(new JsonCamelCaseResult(update));
        }
        public IActionResult Recommendation(int serieid)
        {
            RecommendationViewModel vm = new RecommendationViewModel();

            vm.GetRecommendations = recommendationLogic.GetRecommendatinsBySerieId(serieid);
            vm.GetSerieNames      = serieLogic.Series();
            vm.Serieid            = serieid;
            return(View(vm));
        }
        private RecommendationViewModel getData(RecommendationViewModel model)
        {
            model.allTopics = TopM.getAllTopics();
            string currentUserId = User.Identity.GetUserId();

            model.TeamMembers         = UserManager.Users.Where(x => x.teamLead.Id == currentUserId).ToList();
            model.myRecommendedTopics = TopM.getRecommendedTopics(currentUserId);
            return(model);
        }
        public void MarkAsRead(RecommendationViewModel context)
        {
            if (context == null)
            {
                return;
            }

            readLaterManager.DeleteReadLaterEntry(context.Id);
            Recommendations.Remove(context);
        }
        public async Task <IActionResult> IndexAsync()
        {
            RecommendationViewModel recommendationViewModel = new RecommendationViewModel();

            recommendationViewModel.RecommendedComputer = null;

            ViewData["CategoryId"] = new SelectList(await _context.Category.ToListAsync(), "Id", "Name");

            return(View(recommendationViewModel));
        }
        public async Task <IActionResult> Index(RecommendationViewModel recommendationViewModel)
        {
            if (ModelState.IsValid)
            {
                Computer requestedComputer = recommendationViewModel.RequestedComputer;

                int    requestedCores         = recommendationViewModel.CoresNotImportant ? 0 : requestedComputer.Cores;
                double requestedCpuClockSpeed = recommendationViewModel.ClockSpeedNotImportant ? 0 : requestedComputer.ClockSpeed;
                int    requestedRAM           = recommendationViewModel.RAMNotImportant ? 0 : requestedComputer.RAM;
                int    requestedStorage       = recommendationViewModel.StorageNotImportant ? 0 : requestedComputer.Storage;
                double requestedPrice         = recommendationViewModel.PriceNotImportant ? 0 : requestedComputer.Price;

                double coresPriority      = recommendationViewModel.CoresNotImportant ? 0 : recommendationViewModel.CorePriority;
                double clockSpeedPriority = recommendationViewModel.ClockSpeedNotImportant ? 0 : recommendationViewModel.ClockSpeedPriority;
                double ramPriority        = recommendationViewModel.RAMNotImportant ? 0 : recommendationViewModel.RAMPriority;
                double storagePriority    = recommendationViewModel.StorageNotImportant ? 0 : recommendationViewModel.StoragePriority;
                double pricePriority      = recommendationViewModel.PriceNotImportant ? 0 : recommendationViewModel.PricePriority;

                IList <Computer> computers = await _context.Computer
                                             .Where(c => c.CategoryId == requestedComputer.CategoryId)
                                             .ToListAsync();

                RecommendationStats recommendationStats = _context.RecommendationStats.FirstOrDefault();
                recommendationStats.RecommendedCount += 1;

                _context.RecommendationStats.Update(recommendationStats);
                _context.Entry(recommendationStats).Property("BoughtCount").IsModified = false;
                await _context.SaveChangesAsync();

                IDictionary <double, Computer> offers = new Dictionary <double, Computer>();

                foreach (Computer computer in computers)
                {
                    double distance = Math.Sqrt(coresPriority * Math.Pow(requestedCores - computer.Cores, 2)
                                                + clockSpeedPriority * Math.Pow(requestedCpuClockSpeed - computer.ClockSpeed, 2)
                                                + ramPriority * Math.Pow(requestedRAM - computer.RAM, 2)
                                                + storagePriority * Math.Pow(requestedStorage - computer.Storage, 2)
                                                + pricePriority * Math.Pow(requestedPrice - computer.Price, 2));

                    offers.Add(distance, computer);
                }

                IOrderedEnumerable <KeyValuePair <double, Computer> > sortedOffers = offers.OrderBy(key => key.Key);

                Computer bestOffer = sortedOffers.FirstOrDefault().Value;
                bestOffer.Category = _context.Category.Where(c => c.Id == bestOffer.CategoryId).FirstOrDefault();

                recommendationViewModel.RecommendedComputer = bestOffer;
            }

            ViewData["CategoryId"] = new SelectList(await _context.Category.ToListAsync(), "Id", "Name");

            return(View(recommendationViewModel));
        }
        //public ActionResult Create( RecommendationViewModel RVM,int id)
        //{
        //    //Recomendation R = new Recomendation();


        //    //R.IdRecom = RVM.IdRecom;
        //    //R.ParticipantId = int.Parse(User.Identity.GetUserId());

        //    //R.MailRecomd = "test";
        //    //R.RefRecommendation = RVM.RefRecommendation;
        //    //R.EtaRec = Domain.Entities.EtatRecom.inprogress;
        //    //R.EventId = RVM.EventId=id;
        //    //SendingMail("*****@*****.**", R.MailRecomd, "recommendation", "test recommendation ");
        //    //RS.Add(R);
        //    //RS.Commit();
        //    //return View(RVM);
        //}



        public ActionResult Create(RecommendationViewModel rvm, int id)
        {
            Recomendation r = new Recomendation();

            r.ID               = rvm.ID;
            r.IdParticipant    = int.Parse(User.Identity.GetUserId());
            r.IdEvent          = rvm.IdEvent = id;
            r.Nom              = us.GetUserById(r.IdParticipant).FirstName;
            r.Prenom           = us.GetUserById(r.IdParticipant).LastName;
            r.EmailParticipent = rvm.EmailParticipent;
            SendingMail("*****@*****.**", r.EmailParticipent, "[Recommendation for an Event]", "check this link :http://localhost:59686/Evenement/details/" + id);
            RS.Add(r);
            RS.Commit();

            return(RedirectToAction("DetailsParticipant", "Evenement"));
        }
Example #16
0
        public ActionResult Recommend()
        {
            var           artistsA = Request.Form.GetValues("artists");
            var           tracksA  = Request.Form.GetValues("tracks");
            List <Artist> artists  = artistsA.Any() ? JsonConvert.DeserializeObject <List <Artist> >(artistsA[0]) : null;
            List <Track>  tracks   = tracksA.Any() ? JsonConvert.DeserializeObject <List <Track> >(tracksA[0]) : null;
            var           result   = service.GetRecommendations(artists, tracks);

            if (result != null)
            {
                var vm = new RecommendationViewModel
                {
                    Tracks = result
                };
                return(View(vm));
            }
            return(RedirectToAction("Error"));
        }
        // GET: Recommendation
        public ActionResult Index(int id)
        {
            List <RecommendationViewModel> list = new List <RecommendationViewModel>();
            var r = RS.GetAll();

            foreach (var i in r)
            {
                RecommendationViewModel recommendationModel = new RecommendationViewModel();
                if (i.IdEvent == id)
                {
                    recommendationModel.EmailParticipent = i.EmailParticipent;
                    recommendationModel.Nom    = i.Nom;
                    recommendationModel.Prenom = i.Prenom;
                    list.Add(recommendationModel);
                }
            }
            return(View(list));
        }
        public async Task <ActionResult> Recommended(RecommendationViewModel model)
        {
            model = getData(model);
            ModelState.Remove("newTopicParentId");
            if (UserManager.Users.Single(x => x.Id == model.selectedTeamMemberId) == null)
            {
                ModelState.AddModelError("", "Team Member not found");
            }

            if (ModelState.IsValid)
            {
                Debug.WriteLine("Parent id " + model.newTopicParentId);
                Debug.WriteLine("Testing recommend " + model.selectFromList);
                if (model.selectFromList == true)
                {
                    Debug.WriteLine("Testing recommend " + model.recommendedTopicId);
                    if (TopM.recommendTopic(model.recommendedTopicId, model.selectedTeamMemberId))
                    {
                        ViewBag.Confirmation = "The Topic was successfuly recommended";
                    }
                    else
                    {
                        ModelState.AddModelError("", "Topic recommendation failed, try again");
                    }
                }
                else
                {
                    Topic topic;
                    topic = TopM.createTopic(model.newTopicTitle, model.newTopicDescription, model.newTopicParentId);
                    if (TopM.recommendTopic(topic.TopicsId, model.selectedTeamMemberId))
                    {
                        ViewBag.Confirmation = "The Topic was successfuly recommended";
                    }
                    else
                    {
                        ModelState.AddModelError("", "The user already has this Topic in his recommendations");
                    }
                }
                return(View(model));
            }
            ViewBag.Confirmation = "";
            return(View(model));
        }
        public IActionResult AddRecommendation(int userId, RecommendationViewModel newRecommendation)
        {
            if (newRecommendation == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(StatusCode(412));
            }

            var recommendation = _recommendationService.AddNewRecommendation(userId, newRecommendation);

            if (recommendation == null)
            {
                return(NotFound());
            }

            return(Ok(recommendation));
        }
        public async Task <IActionResult> ViewRecommendation(RecommendationViewModel recommendationViewModels)
        {
            var username = HttpContext.Session.GetString("username");

            var customerData = await _customerProfileService.CustomerProfile(username);

            List <Promotion> promotionsbyregion = await _promotionService.RetrievePromotionByRegionAsync(customerData.Region);

            //to add recommendation based on new promotions
            IEnumerable <Promotion> allnewpromotions = await _promotionService.RetrieveNewestPromotionsAsync();

            //popular promotions
            List <Claim> allpopularpromotions = await _recommendationService.GetClaimCountByPromotion();

            var promotionViewModel = new RecommendationViewModel();

            int mostClaimed = allpopularpromotions.Count > 0 ? allpopularpromotions.Max(s => s.TotalClaim) : 0;

            var ItemsList = new List <Promotion>();

            foreach (var claimedpromo in allpopularpromotions)
            {
                if (claimedpromo.TotalClaim == mostClaimed)
                {
                    var toppromo = await _promotionService.RetrievePromotionAsync(claimedpromo.PromotionId);

                    ItemsList.Add(new Promotion {
                        PromotionId = toppromo.PromotionId, ShopProfileId = toppromo.ShopProfileId, Description = toppromo.Description, EndDate = toppromo.EndDate, Header = toppromo.Header, IsActive = toppromo.IsActive, Qty = toppromo.Qty, Region = toppromo.Region, StartDate = toppromo.StartDate, Type = toppromo.Type
                    });
                }
            }

            promotionViewModel.AllPopularPromotions  = ItemsList;
            promotionViewModel.AllPromotionsByRegion = promotionsbyregion;

            //to add recommendation based on new promotions
            promotionViewModel.AllNewPromotions = allnewpromotions.ToList();

            return(View(promotionViewModel));
        }
Example #21
0
        public async Task <ActionResult> MovieRecommendation(string year, string category, int?movieId)
        {
            Movie movieVotedFor = await MovieAPI.GetById(movieId.Value);

            List <Movie> movies = await MovieAPI.GetAll();

            movies = movies.Where(m => m.Title != movieVotedFor.Title && m.Actors != null).Distinct().ToList();
            Dictionary <Movie, int> movieRecommendations = BuildMovieDictionary(movies);
            RecommendationViewModel recommendation       = new RecommendationViewModel()
            {
                Year     = year,
                Category = category
            };

            foreach (Movie potentialRecommendation in movies)
            {
                movieRecommendations[potentialRecommendation] = GetMovieRecommendationScore(potentialRecommendation, movieVotedFor);
            }
            List <Movie> moviesWithHighestScore = FindMovieDictionaryItemsWithGreatestScore(movieRecommendations);

            recommendation.Movie = PickRandomMovieFromList(moviesWithHighestScore);
            return(View(recommendation));
        }
        public async Task ExecuteAsync()
        {
            try
            {
                #region GetAll Data

                var getAllProviderNew = await _providerNewRepository.FindAllAsync(x => x.DateCreated < DateTime.Now &&
                                                                                  x.DateCreated >= DateTime.Now.AddDays(-1) && x.Status == Model.Enums.Status.Active);

                var getAllService = await _serviceRepository.FindAllAsync(x => x.DateCreated <DateTime.Now &&
                                                                                              x.DateCreated> DateTime.Now.AddDays(-1) && x.Status == Model.Enums.Status.Active);

                var getAllFollowing = await _providerFollowingRepository.FindAllAsync();

                var getAllUser = await _userManager.Users.ToListAsync();

                var getAllProvider = await _providerRepository.FindAllAsync(x => x.Status == Model.Enums.Status.Active);

                var getAllProviderService = await _providerServiceRepository.FindAllAsync();

                #endregion GetAll Data

                // User-->UserFollowing-->Provider-->ProviderNews
                var joinAllInformation = (from user in getAllUser.ToList()
                                          join following in getAllFollowing.ToList()
                                          on user.Id equals following.UserId
                                          join provider in getAllProvider.ToList()
                                          on following.ProviderId equals provider.Id
                                          join news in getAllProviderNew.ToList()
                                          on provider.Id equals news.ProviderId
                                          where (following.IsReceiveEmail == true && news.Status == Model.Enums.Status.Active)
                                          orderby user.Id
                                          select new
                {
                    IdUser = user.Id,
                    Information = news.Id.ToString()
                }).ToList().
                                         Union(from user in getAllUser.ToList()
                                               join following in getAllFollowing.ToList()
                                               on user.Id equals following.UserId
                                               join providerService in getAllProviderService.ToList()
                                               on following.ProviderId equals providerService.ProviderId
                                               join service in getAllService.ToList()
                                               on providerService.ServiceId equals service.Id
                                               where (following.IsReceiveEmail == true && service.Status == Model.Enums.Status.Active)
                                               select new
                {
                    IdUser      = user.Id,
                    Information = service.Id.ToString()
                }).ToList();

                if (joinAllInformation.Count > 0)
                {
                    var groupInformatin = joinAllInformation.GroupBy(p => p.IdUser).Select(x => new
                    {
                        IdUser      = x.Key,
                        Information = x.Select(t => new { t.Information }).ToList()
                    });

                    //Create List for add.
                    List <RecommendationViewModel> listRecommendService = new List <RecommendationViewModel>();
                    foreach (var item in groupInformatin)
                    {
                        RecommendationViewModel recommendService = new RecommendationViewModel();
                        recommendService.EmailUser = _userManager.FindByIdAsync(item.IdUser.ToString()).Result.Email;
                        foreach (var detail in item.Information)
                        {
                            var number = 0;
                            if (Int32.TryParse(detail.Information, out number))
                            {
                                var resultNews = await _getByIdProviderNewService.ExecuteAsync(number);

                                recommendService.NewsProviderViewModel.Add(resultNews.myModel);
                            }
                            else
                            {
                                var resultProvider = await _getPostServiceByIdQuery.ExecuteAsync(detail.Information);

                                recommendService.PostServiceViewModel.Add(resultProvider);
                            }
                        }
                        listRecommendService.Add(recommendService);
                    }
                    foreach (var item in listRecommendService)
                    {
                        ContentEmail(_configEmail.Value.SendGridKey, "Email recommendation",
                                     item.NewsProviderViewModel.ToString() + "</br>" + item.PostServiceViewModel.ToString(), item.EmailUser).Wait();
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #23
0
 public RecommendationPage()
 {
     InitializeComponent();
     BindingContext = viewModel = new RecommendationViewModel();
 }
Example #24
0
        private void AddModel(Recommendation recommendation, bool isRead)
        {
            var currentUser = User.Followings.Single(c => c.Id == recommendation.UserId);

            Recommendations.Add(RecommendationViewModel.FromModel(recommendation, currentUser, settings.Font, isRead));
        }
Example #25
0
        public RecommendationDTO AddNewRecommendation(int userId, RecommendationViewModel newRecommendation)
        {
            var recommendation = _repo.AddNewRecommendation(userId, newRecommendation);

            return(recommendation);
        }
 private void Populate(RecommendationViewModel model)
 {
     model.Genres = _service.GetAllGenres();
     model.Moods  = _service.GetAllMoods();
     model.Styles = _service.GetAllStyles();
 }