private async Task <IActionResult> ProceedCommand(long id, UpdateInputModel inputModel)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToPage("View", new { id }));
            }

            var user = await _userService.GetUserAsync(User);

            var ar = await _projectService.IsUserHasAccess(id, user.Id);

            if (!ar)
            {
                return(Forbid());
            }

            var update = await _projectService.CreateUpdate(id, inputModel, user);

            if (update is null)
            {
                return(Forbid());
            }

            return(RedirectToPage("View", new { id }));
        }
예제 #2
0
        public async Task UpdateAdAsync_ShouldAdjustTheAdCorrectly()
        {
            AutoMapperConfig.RegisterMappings(typeof(UpdateInputModel).Assembly);
            var newDescription = "Бих искал да си наема кон!";
            var newTitle       = "Търся брокер за отдаване под наем";
            var newCategoryId  = 2;
            var newBudget      = "500 лева";

            var model = new UpdateInputModel
            {
                Id             = "2",
                Description    = newDescription,
                Title          = newTitle,
                JobCategoryId  = newCategoryId,
                PreparedBudget = newBudget,
                CityId         = 1,
                UserId         = "1",
            };

            var desiredAdId = "2";

            await this.service.UpdateAdAsync(model);

            var updatedAd = await this.service.GetAdDetailsByIdAsync <UpdateInputModel>(desiredAdId);

            Assert.Equal(newBudget, updatedAd.PreparedBudget);
            Assert.Equal(newTitle, updatedAd.Title);
            Assert.Equal(newDescription, updatedAd.Description);
            Assert.Equal(newCategoryId, updatedAd.JobCategoryId);
        }
예제 #3
0
        public async Task <IActionResult> Update(UpdateInputModel input)
        {
            Guid guidPostId = input.PostId != null?Guid.Parse(input.PostId) : Guid.Empty;

            var result = await _postService.Update(guidPostId, input.Title,
                                                   input.Description, DateTime.UtcNow);

            if (result == Status.Ok)
            {
                return(Ok(new Response
                {
                    Status = result,
                    Error = ""
                }));
            }
            else if (result == Status.InvalidData)
            {
                return(BadRequest(new Response
                {
                    Status = result,
                    Error = ""
                }));
            }
            else
            {
                return(StatusCode(500, (new Response
                {
                    Status = result,
                    Error = ""
                })));
            }
        }
예제 #4
0
        public async Task UpdateAdAsync(UpdateInputModel model)
        {
            var ad = this.adsRepository.All().FirstOrDefault(x => x.Id == model.Id);

            ad.CityId         = model.CityId;
            ad.Description    = model.Description;
            ad.Title          = model.Title;
            ad.PreparedBudget = model.PreparedBudget;
            ad.JobCategoryId  = model.JobCategoryId;

            this.adsRepository.Update(ad);
            await this.adsRepository.SaveChangesAsync();
        }
        private async Task <IActionResult> ProceedCreate(UpdateInputModel initial)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToPage());
            }

            var user = await _userService.GetUserAsync(User);

            var project = await _projectService.CreateProject(user, (ICreateFileInputModel)initial);

            await _projectService.CreateUpdate(project.ProjectId, initial, user);

            return(RedirectToPage("View", new { id = project.ProjectId }));
        }
예제 #6
0
        public async Task <IActionResult> Edit(UpdateInputModel inputModel)
        {
            if (this.userManager.GetUserId(this.User) == inputModel.UserId)
            {
                return(this.CustomAccessDenied());
            }

            if (!this.ModelState.IsValid)
            {
                inputModel.Cities = await this.citiesService.GetAllCitiesAsync <CitySimpleViewModel>();

                inputModel.Categories = await this.categoriesService.GetAllCategoriesAsync <CategorySimpleViewModel>();

                return(this.View(inputModel));
            }

            await this.adsService.UpdateAdAsync(inputModel);

            // TODO Find a way to show this meesage only after the ad's been adjusted
            // this.TempData["Message"] = "Успешно коригирахте своята обява!";
            return(this.RedirectToAction(nameof(this.MyAds)));
        }
        public async Task <IActionResult> SetInput([FromBody] UpdateInputModel model)
        {
            try
            {
                await _configurationService.UpdateRuleInputAsync(
                    model.MerchantId,
                    model.RuleId,
                    model.RuleInput.ToString());

                return(Ok());
            }
            catch (EntityNotFoundException e)
            {
                _log.Error(e, $"PartitionKey = {e.PartitionKey}, RowKey = {e.RowKey}");

                return(NotFound(ErrorResponse.Create($"Configuration not found for rule {model.RuleId}")));
            }
            catch (ValidationRuleNotFoundException e)
            {
                _log.Error(e, model.ToDetails());

                return(NotFound(ErrorResponse.Create($"Rule with id {model.RuleId} not found")));
            }
            catch (InvalidInputException e)
            {
                _log.Error(e, model.ToDetails());

                return(BadRequest(e.ToErrorResponse()));
            }
            catch (InputNotRequiredException e)
            {
                _log.Error(e, e.Message, $"ruleId = {e.RuleId}");

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
        }