Ejemplo n.º 1
0
        public async Task <ActionResult> Index(OfferListViewModel model)
        {
            model.Filter.PageSize     = PageSize;
            Session[FilterSessionKey] = model.Filter;

            var result = await OfferFacade.ListOffersAsync(model.Filter);

            var newModel = await InitializeOfferListViewModel(result);

            return(View("OfferListView", newModel));
        }
        public new async Task <ActionResult> Profile()
        {
            var user = await userFacade.GetUserAccordingToUsernameAsync(User.Identity.Name);

            var idOffers = await offerFacade.ListOffersAsync(new OfferFilterDTO { SearchedAuthorsIds = new int[] { user.Id } });

            var idAppliedOffers = await offerFacade.ListOffersAsync(new OfferFilterDTO { SearchedAppliersIds = new int[] { user.Id } });

            var idRatings = await ratingFacade.ListRatingsAsync(new RatingFilterDTO { SearchedRatedUsersId = new int[] { user.Id } });

            if (user.UserRole == "Freelancer")
            {
                var freelancer = await userFacade.GetFreelancerAsync(user.Id);

                freelancer.Offers          = new List <OfferDTO>(idOffers.Items);
                freelancer.AppliedToOffers = new List <OfferDTO>(idAppliedOffers.Items);
                freelancer.Ratings         = await RatingHelper.MergeRatingsCreators(userFacade, idRatings.Items.ToList());

                freelancer.SumRating = RatingHelper.CountAverageRating(freelancer.RatingCount, freelancer.SumRating);

                return(View("Users/FreelancerDetailView", ToProfileModel(freelancer, user.UserName)));
            }
            else if (user.UserRole == "Corporation")
            {
                var corporation = await userFacade.GetCorporationAsync(user.Id);

                corporation.Offers          = new List <OfferDTO>(idOffers.Items);
                corporation.AppliedToOffers = new List <OfferDTO>(idAppliedOffers.Items);
                corporation.Ratings         = await RatingHelper.MergeRatingsCreators(userFacade, idRatings.Items.ToList());

                corporation.SumRating = RatingHelper.CountAverageRating(corporation.RatingCount, corporation.SumRating);

                return(View("Users/CorporationDetailView", corporation));
            }

            return(RedirectToAction("Index", "Home"));
        }