コード例 #1
0
        public async Task <ActionResult> Enroll(int id, bool authenticated)
        {
            var offer = await OfferFacade.GetOfferAsync(id);

            string name = "";

            if (offer.CreatorRole == UserRole.Corporation)
            {
                var corporation = await UserFacade.GetCorporationAsync(offer.CreatorId);

                name = corporation.Name;
            }
            if (offer.CreatorRole == UserRole.Freelancer)
            {
                var freelancer = await UserFacade.GetFreelancerAsync(offer.CreatorId);

                name = freelancer.Name;
            }

            if (!authenticated)
            {
                var model = new OfferEnrollUnregisteredViewModel {
                    Offer = offer, CreatorId = offer.CreatorId, Creator = name, OfferId = offer.Id
                };
                return(View("OfferEnrollUnregisteredView", model));
            }

            UserDTO loggedInUser = await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name);

            var offerEnrollModel = new OfferEnrollRegisteredViewModel {
                Offer = offer, CreatorId = offer.CreatorId, Creator = name, OfferId = offer.Id, User = loggedInUser
            };

            return(View("OfferEnrollRegisteredView", offerEnrollModel));
        }
コード例 #2
0
        // GET: OffersController/Details/5
        public async Task <ActionResult> Details(int id)
        {
            var model = await OfferFacade.GetOfferAsync(id);

            var newModel = await InitializeOfferDetailViewModel(model);

            return(View("OfferDetailView", newModel));
        }
コード例 #3
0
        public async Task <ActionResult> EnrollUnregistered(FormCollection collection, int id)
        {
            try
            {
                UnregisteredUserDTO newUnregistered = new UnregisteredUserDTO();

                foreach (string key in collection.AllKeys)
                {
                    switch (key)
                    {
                    case "Name":
                        newUnregistered.Name = collection[key];
                        break;

                    case "Email":
                        newUnregistered.Email = collection[key];
                        break;

                    case "PhoneNumber":
                        newUnregistered.PhoneNumber = collection[key];
                        break;

                    case "Info":
                        newUnregistered.Info = collection[key];
                        break;

                    case "Location":
                        newUnregistered.Location = collection[key];
                        break;
                    }
                }

                await UserFacade.CreateUnregisteredAsync(newUnregistered);


                // Tuto cast kodu prosim zignorujme. DB nam pri Create vzdy vracala Id 0, hoci objekt ho ma v DB ako napr. 47.
                // Inak neviem ako ziskat toho uzivatela
                var unregisteredUsersLikeThis = await UserFacade.GetUnregisteredsAsync(new UnregisteredUserFilterDTO {
                    SearchedName     = newUnregistered.Name,
                    SearchedLocation = newUnregistered.Location
                });

                var offer = await OfferFacade.GetOfferAsync(id);

                offer.ApplierId   = unregisteredUsersLikeThis.Items.Last().Id;
                offer.ApplierRole = UserRole.Unregistered;
                offer.State       = State.InProgress;

                await OfferFacade.EditOfferAsync(offer);

                return(View("EnrollmentCompleteView"));
            }
            catch
            {
                return(View("~/Views/Home/GeneralExceptionView.cshtml"));
            }
        }
コード例 #4
0
        public async Task <ActionResult> FinishOffer(int id)
        {
            var offer = await OfferFacade.GetOfferAsync(id);

            offer.State = State.Finished;

            await OfferFacade.EditOfferAsync(offer);

            return(RedirectToAction("Details", new { id = id }));
        }
コード例 #5
0
        public async Task <ActionResult> EnrollRegistered(int id, int userId, string userRole)
        {
            var offer = await OfferFacade.GetOfferAsync(id);

            offer.ApplierId = userId;
            if (Enum.TryParse <UserRole>(userRole, out UserRole role))
            {
                offer.ApplierRole = role;
            }

            offer.State = State.InProgress;
            await OfferFacade.EditOfferAsync(offer);

            return(View("EnrollmentCompleteView"));
        }
コード例 #6
0
        // GET: OffersController/Edit/5
        public async Task <ActionResult> Edit(int id)
        {
            var model = await OfferFacade.GetOfferAsync(id);

            return(View("OfferEditView", model));
        }