コード例 #1
0
        public async Task <ActionResult> Create(int id, FormCollection collection)
        {
            try
            {
                var creator = await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name);

                UserRole creatorUserRole;

                if (!Enum.TryParse <UserRole>(creator.UserRole, out creatorUserRole))
                {
                    return(View("~/Views/Home/GeneralExceptionView.cshtml"));
                }

                var ratedUser = await UserFacade.GetUserAsync(id);

                UserRole ratedUserRole;

                if (!Enum.TryParse <UserRole>(ratedUser.UserRole, out ratedUserRole))
                {
                    return(View("~/Views/Home/GeneralExceptionView.cshtml"));
                }

                int ratingId = await RatingFacade.CreateRatingAsync(CreateRating(id, creator.Id, creatorUserRole, ratedUserRole, collection));

                return(RedirectToAction("Details", ratedUserRole + "s", new { id = id }));
            }
            catch
            {
                return(View("~/Views/Home/GeneralExceptionView.cshtml"));
            }
        }
コード例 #2
0
        private async void RemoveUserRating(RatingDTO rating)
        {
            var ratings = await RatingFacade.ListRatingsAsync(new RatingFilterDTO { SearchedRatedUsersId = new[] { rating.RatedUserId } });

            int ratingsCount = ratings.Items.Count();

            if (rating.RatedUserRole == UserRole.Corporation)
            {
                var corporation = await UserFacade.GetCorporationAsync(rating.RatedUserId);

                corporation.SumRating    = DecreaseRating(corporation.SumRating.Value, ratingsCount, rating.Score);
                corporation.RatingCount -= 1;

                await UserFacade.EditCorporationAsync(corporation);
            }
            else
            {
                var freelancer = await UserFacade.GetFreelancerAsync(rating.RatedUserId);

                freelancer.SumRating    = DecreaseRating(freelancer.SumRating.Value, ratingsCount, rating.Score);
                freelancer.RatingCount -= 1;

                await UserFacade.EditFreelancerAsync(freelancer);
            }
        }
コード例 #3
0
        // GET: Ratings/Details/5
        public async Task <ActionResult> Details(int id, string ratedUserName)
        {
            var rating = await RatingFacade.GetRatingsAsync(id);

            var creator = await UserFacade.GetUserAsync(rating.CreatorId);

            return(View("RatingDetailView", InitializeRatingViewModel(rating, creator.UserName, ratedUserName, rating.RatedUserId, rating.RatedUserRole.ToString())));
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //facade
            DataManager   dataManager   = new DataManager();
            ReviewManager reviewManager = new ReviewManager();
            RatingFacade  ratingPortal  = new RatingFacade(dataManager, reviewManager);

            ratingPortal.Start();


            //proxy
            List <string> resourses = new() { "EBEC", "Chess tournament", "WIPZ KR" };
            UserRequest   request   = new UserRequest();

            System.Console.WriteLine("\nSimulating work for unregistered User");
            foreach (var res in resourses)
            {
                RealResource realResource = new RealResource(res);
                Proxy        proxy        = new Proxy(realResource, 0); //unregistered user, wirh accessLevel = 0
                request.Get(proxy);
            }
            System.Console.WriteLine("\nSimulating work for registered User");
            foreach (var res in resourses)
            {
                RealResource realResource = new RealResource(res);
                Proxy        proxy        = new Proxy(realResource, 1); //unregistered user, wirh accessLevel = 0
                request.Get(proxy);
            }


            //composite
            //student requesting info for PZ
            Client client = new Client();

            //PZ construction
            System.Console.WriteLine("\n\nInfo about PZ\n");
            Composite PZ = new Composite();

            Composite Title = new Composite();

            Title.Add(new Leaf("Title: Prog Zabezp"));
            Composite Rating = new Composite();

            Rating.Add(new Leaf("Rating: 10/12"));
            Composite Content = new Composite();

            Content.Add(new Leaf("Content: Nice stuff"));
            Composite Comments = new Composite();

            Comments.Add(new Leaf("Comments: How about Levus?"));
            PZ.Add(new List <Component> {
                Title, Rating, Content, Comments
            });
            //client.GetContent(PZ);
            client.AddNewComponent(Comments, new Leaf("\tComment: not well..."));
            client.GetContent(PZ);
        }
    }
コード例 #5
0
        public RatingFacadeTests()
        {
            var dbContextFactory = new DbContextInMemoryFactory(nameof(ActorFacadeTest));
            var unitOfWork       = new UnitOfWork(dbContextFactory);

            repository = new Repository <RatingEntity>(unitOfWork);
            mapper     = new RatingMapper();

            facadeTestUnit = new RatingFacade(unitOfWork, repository, mapper);
        }
コード例 #6
0
        // GET: Ratings/Delete/5
        public async Task <ActionResult> Delete(int id)
        {
            var rating = await RatingFacade.GetRatingsAsync(id);

            RemoveUserRating(rating);

            await RatingFacade.DeleteRatingAsync(id);

            string userRoleListRoute = "~/Views/" + rating.RatedUserRole + "s/" + rating.RatedUserRole + "DetailView.cshtml";

            return(RedirectToAction("Details", rating.RatedUserRole + "s", new { id = rating.RatedUserId }));
        }
コード例 #7
0
        public async Task <ActionResult> Delete(int id, FormCollection collection)
        {
            try
            {
                var rating = await RatingFacade.GetRatingsAsync(id);

                return(RedirectToAction("Index", "", null));
            }
            catch
            {
                return(View("~/Views/Home/GeneralExceptionView.cshtml"));
            }
        }
コード例 #8
0
        public FilmDetailViewModel(IMediator mediator,
                                   FilmFacade filmFacade,
                                   FilmActorFacade filmActorFacade,
                                   FilmDirectorFacade filmDirectorFacade,
                                   RatingFacade ratingFacade,
                                   IConnectionService connectionService,
                                   ISelectActorViewModel selectActorViewModel,
                                   ISelectDirectorViewModel selectDirectorViewModel,
                                   IRatingCreationService ratingCreationService,
                                   IFileBrowserService fileBrowserService)
        {
            usedMediator                = mediator;
            usedFilmFacade              = filmFacade;
            usedFilmActorFacade         = filmActorFacade;
            usedFilmDirectorFacade      = filmDirectorFacade;
            usedRatingFacade            = ratingFacade;
            usedConnectionService       = connectionService;
            usedSelectActorViewModel    = selectActorViewModel;
            usedSelectDirectorViewModel = selectDirectorViewModel;
            usedRatingCreationService   = ratingCreationService;
            usedFileBrowserService      = fileBrowserService;

            mediator.Register <NewMessage <FilmWrappedModel> >(CreateNewWrappedModel);
            mediator.Register <SelectedMessage <FilmWrappedModel> >(PrepareFilm);
            mediator.Register <MoveToDetailMessage <FilmActorWrappedModel> >(PrepareFilm);
            mediator.Register <MoveToDetailMessage <FilmDirectorWrappedModel> >(PrepareFilm);
            mediator.Register <MoveToDetailMessage <FilmWrappedModel> >(PrepareFilm);
            mediator.Register <AddPersonToFilmMessage <ActorWrappedModel> >(AddActorToFilm);
            mediator.Register <AddPersonToFilmMessage <DirectorWrappedModel> >(AddDirectorToFilm);
            mediator.Register <AddRatingToFilmMessage <RatingWrappedListModel> >(AddRatingToFilm);

            EditButtonCommand              = new RelayCommand(EnableEditing);
            SaveButtonCommand              = new RelayCommand(Save, CanSave);
            ActorSelectedCommand           = new RelayCommand <FilmActorWrappedModel>(ActorSelected);
            RemoveActorButtonCommand       = new RelayCommand(RemoveActorFromList, RemoveActorEnabled);
            AddActorButtonCommand          = new RelayCommand(ShowActors);
            DirectorSelectedCommand        = new RelayCommand <FilmDirectorWrappedModel>(DirectorSelected);
            RemoveDirectorButtonCommand    = new RelayCommand(RemoveDirectorFromList, RemoveDirectorEnabled);
            AddDirectorButtonCommand       = new RelayCommand(ShowDirectors);
            RatingSelectedCommand          = new RelayCommand <RatingWrappedModel>(RatingSelected);
            RemoveRatingButtonCommand      = new RelayCommand(RemoveRatingFromList, RemoveRatingEnabled);
            AddRatingButtonCommand         = new RelayCommand(ShowRatingCreationWindow);
            ActorListDoubleClickCommand    = new RelayCommand <FilmActorWrappedModel>(MoveToActorDetail);
            DirectorListDoubleClickCommand = new RelayCommand <FilmDirectorWrappedModel>(MoveToDirectorDetail);
            UpdatePhotoButtonCommand       = new RelayCommand(UpdatePhoto, UpdatePhotoEnabled);

            GenreOptions = EnumExtensions.ConvertEnumToList <Genre>();
        }
コード例 #9
0
        // GET: Corporations/Details/5
        public async Task <ActionResult> Details(int id)
        {
            var model = await UserFacade.GetCorporationAsync(id);

            var idOffers = await OfferFacade.ListOffersAsync(new OfferFilterDTO { SearchedAuthorsIds = new int[] { id } });

            model.Offers = new List <OfferDTO>(idOffers.Items);

            var appliedOffers = await OfferFacade.ListOffersAsync(new OfferFilterDTO { SearchedAppliersIds = new int[] { id } });

            model.AppliedToOffers = new List <OfferDTO>(appliedOffers.Items);

            var ratings = await RatingFacade.ListRatingsAsync(new RatingFilterDTO { SearchedRatedUsersId = new int[] { id } });

            model.Ratings = await RatingHelper.MergeRatingsCreators(UserFacade, ratings.Items.ToList());

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

            return(View("CorporationDetailView", model));
        }
コード例 #10
0
        // GET: FreelancerController/Details/5
        public async Task <ActionResult> Details(int id)
        {
            var model = await UserFacade.GetFreelancerAsync(id);

            var user = await UserFacade.GetUserAsync(id);

            var offers = await OfferFacade.ListOffersAsync(new OfferFilterDTO { SearchedAuthorsIds = new int[] { id } });

            model.Offers = new List <OfferDTO>(offers.Items);

            var appliedOffers = await OfferFacade.ListOffersAsync(new OfferFilterDTO { SearchedAppliersIds = new int[] { id } });

            model.AppliedToOffers = new List <OfferDTO>(appliedOffers.Items);

            var ratings = await RatingFacade.ListRatingsAsync(new RatingFilterDTO { SearchedRatedUsersId = new int[] { id } });

            model.Ratings = await RatingHelper.MergeRatingsCreators(UserFacade, ratings.Items.ToList());

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

            return(View("FreelancerDetailView", InitializeFreelancerDetailViewModel(model, user.UserName)));
        }
コード例 #11
0
        public async Task <ActionResult> Edit(int id, FormCollection collection)
        {
            try
            {
                var newRating = await RatingFacade.GetRatingsAsync(id);

                foreach (string key in collection.Keys)
                {
                    switch (key)
                    {
                    case "Score":
                        int newScore;
                        if (Int32.TryParse(collection[key], out newScore))
                        {
                            newRating.Score = newScore;
                        }
                        break;

                    case "Comment":
                        newRating.Comment = collection[key];
                        break;
                    }
                }

                bool success = await RatingFacade.EditRatingAsync(newRating);

                if (!success)
                {
                    // THROW ERROR
                }

                return(RedirectToAction("Details", new { id = id }));
            }
            catch
            {
                return(View());
            }
        }
コード例 #12
0
 public AccountsController(UserFacade userFacade, OfferFacade offerFacade, RatingFacade ratingFacade)
 {
     this.userFacade   = userFacade;
     this.offerFacade  = offerFacade;
     this.ratingFacade = ratingFacade;
 }
コード例 #13
0
        // GET: Ratings/Edit/5
        public async Task <ActionResult> Edit(int id)
        {
            var rating = await RatingFacade.GetRatingsAsync(id);

            return(View("RatingEditView", rating));
        }