public IActionResult Create()
        {
            var viewModel = new CreateJobInputModel();

            viewModel.SubCategoryItems = this.jobSubCateroriesService.GetAllAsKeyValuePairs();
            return(this.View(viewModel));
        }
Example #2
0
        public async Task <IActionResult> Create(CreateJobInputModel input, [FromServices] IBaseService _baseService)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(Redirect("/Identity/Account/Errors/AccessDenied"));
            }

            input.AllLocations  = _locationService.GetAllSelectList();
            input.AllCategories = _categoriesService.GetAllSelectList();

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

            input.isArchived = false;
            var result = await _jobsService.Create(input, user);

            if (result.Success)
            {
                _baseService.ToastNotify(ToastMessageState.Warning, "Внимание", "Моля изчакайте заявката ви да се прегледа от администратор.", 7000);
                _baseService.ToastNotify(ToastMessageState.Success, "Успешно", "Обявата ви е добавена.", 5000);
                return(Redirect($"/identity/Jobs/Index"));
            }

            return(this.View(input));
        }
Example #3
0
        public void Update(CreateJobInputModel viewModel, int approved, User user)
        {
            Id = viewModel.Id;

            Guard.Against.NullOrEmpty(viewModel.Name, nameof(viewModel.Name));
            Name = viewModel.Name;

            Guard.Against.NullOrEmpty(viewModel.Description, nameof(viewModel.Description));
            Description = viewModel.Description;

            Guard.Against.NullOrEmpty(viewModel.Adress, nameof(viewModel.Adress));
            Adress = viewModel.Adress;

            WorkType        = viewModel.WorkType;
            ExprienceLevels = viewModel.ExprienceLevels;
            Visiblity       = viewModel.Visiblity;
            LocationId      = viewModel.LocationId;

            MinSalary  = viewModel.MinSalary;
            MaxSalary  = viewModel.MaxSalary;
            SalaryType = viewModel.SalaryType;

            CompanyId  = viewModel.CompanyId;
            CategoryId = viewModel.CategoryId;
            LanguageId = viewModel.LanguageId;
            TagsId     = viewModel.TagsId;

            PosterID   = user.Id;
            Date       = DateTime.Now;
            isApproved = approved;
        }
Example #4
0
        public async Task <IActionResult> Create([FromServices] IBaseService _baseService)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(Redirect("/Identity/Account/Errors/AccessDenied"));
            }
            if (user.AccountType == 0)
            {
                return(Redirect("/Identity/Account/Manage/Pricing"));
            }
            if (!user.profileConfirmed)
            {
                _baseService.ToastNotify(ToastMessageState.Error, "Грешка", "Моля попълнете личните си данни преди да продължите.", 7000);
                return(Redirect($"/Identity/Account/Manage/EditProfile"));
            }

            CreateJobInputModel viewModel = new CreateJobInputModel();

            viewModel.AllLocations  = _locationService.GetAllSelectList();
            viewModel.AllCategories = _categoriesService.GetAllSelectList();

            return(this.View(viewModel));
        }
Example #5
0
        public async Task <OperationResult> Update(CreateJobInputModel viewModel, User user)
        {
            Jobs existEntity = await jobsRepository.GetByIdAsync(viewModel.Id);

            existEntity.Update(viewModel, existEntity.isApproved, user);

            var entity = await jobsRepository.UpdateAsync(existEntity);

            return(entity);
        }
Example #6
0
        public async Task <OperationResult> Create(CreateJobInputModel viewModel, User user)
        {
            Jobs jobs = new Jobs();

            jobs.Update(viewModel, 0, user);

            var entity = await jobsRepository.AddAsync(jobs);

            return(entity);
        }
Example #7
0
        public async Task <OperationResult> Update(CreateJobInputModel viewModel, User user)
        {
            Jobs existEntity = await jobsRepository.GetByIdAsync(viewModel.Id);

            existEntity.Update(viewModel, ApproveType.Waiting, user);
            jobsRepository.Update(existEntity);

            var result = await jobsRepository.SaveChangesAsync();

            return(result);
        }
Example #8
0
        public async Task <OperationResult> Create(CreateJobInputModel viewModel, User user)
        {
            Jobs jobs = new Jobs();

            jobs.Update(viewModel, ApproveType.Waiting, user);

            await jobsRepository.AddAsync(jobs);

            var result = await jobsRepository.SaveChangesAsync();

            return(result);
        }
Example #9
0
        public async Task <IActionResult> Create(CreateJobInputModel input)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            ViewData["Categories"] = this._categoriesService.GetAllAsNoTrackingMapped().Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text  = x.TitleAndCountContestant,
            });

            ViewData["Locations"] = this._locationService.GetAllAsNoTrackingMapped().Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text  = x.City,
            });
            ViewData["Companies"] = this._companyService.GetAllAsNoTrackingMapped()?.Where(x => x.Admin1_Id == user.Id || x.Admin2_Id == user.Id || x.Admin3_Id == user.Id)?
                                    .Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text  = x.TitleAndCount,
            });

            ViewData["Worktypes"] = Enum.GetValues(typeof(WorkType)).Cast <WorkType>()
                                    .Select(x => new SelectListItem
            {
                Value = x.ToString(),
                Text  = Enum.GetName(typeof(WorkType), x)
            }).ToAsyncEnumerable();


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

            var result = await this._jobsService.Create(input, user);

            if (result.Success)
            {
                _baseService.ToastNotify(ToastMessageState.Warning, "Внимание", "Моля изчакайте заявката ви да се прегледа от администратор.", 7000);
                _baseService.ToastNotify(ToastMessageState.Success, "Успешно", "Обявата ви е добавена.", 5000);
                return(Redirect($"/identity/Jobs/Posts"));
            }

            return(this.View(input));
        }
        public IActionResult Create(CreateJobInputModel model)
        {
            if (!ModelState.IsValid || this.categoryService.IsCategoryValid(model.CategoryName) == false)
            {
                return(this.View(model));
            }


            var currentUserName = this.User.Identity.Name;

            this.jobService.CreateJob(model.Title, model.Description, model.Address, currentUserName
                                      , model.CategoryName);

            return(Redirect(Constants.myJobs));
        }
        public async Task <IActionResult> Create(CreateJobInputModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                inputModel.SubCategoryItems = this.jobSubCateroriesService.GetAllAsKeyValuePairs();
                return(this.View(inputModel));
            }

            var userId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value.ToString();
            var user   = await this.userManager.GetUserAsync(this.User);

            await this.jobsService.CreateAsync(inputModel, user.Id, $"{this.environment.WebRootPath}/images");

            inputModel.SubCategoryItems = this.jobSubCateroriesService.GetAllAsKeyValuePairs();
            return(this.View(inputModel));

            // TODO: Return user to page with created job
            return(this.Redirect("/"));
        }
        public async Task CreateAsync(CreateJobInputModel input, string userId, string imagePath)
        {
            var job = new Job
            {
                Name             = input.Name,
                JobMainCategory  = input.JobMainCategory,
                Town             = input.Town,
                Description      = input.Description,
                Reward           = input.Reward,
                StartDate        = input.StartDate,
                EndDate          = input.EndDate,
                JobSubCategoryId = input.JobSubCategoryId,
                UserId           = userId,
            };

            var allowedExtentions = new[] { "jpg", "png", "gif" };

            Directory.CreateDirectory($"{imagePath}/jobs/");

            foreach (var image in input.Images)
            {
                var extension = Path.GetExtension(image.FileName).TrimStart('.');
                if (!allowedExtentions.Any(x => extension.EndsWith(x)))
                {
                    throw new Exception($"Invalid image format {extension}");
                }

                var dbImage = new JobImage
                {
                    // UserId = userId,
                    Extension = extension,
                };
                job.JobImages.Add(dbImage);

                var phisicalPath = $"{imagePath}/jobs/{dbImage.Id}.{extension}";
                using Stream fileStream = new FileStream(phisicalPath, FileMode.Create);
                await image.CopyToAsync(fileStream);
            }

            await this.jobsRepository.AddAsync(job);

            await this.jobsRepository.SaveChangesAsync();
        }
Example #13
0
        public void Update(CreateJobInputModel viewModel, ApproveType approved, User user)
        {
            Id = viewModel.Id;

            Guard.Against.NullOrEmpty(viewModel.Name, nameof(viewModel.Name));
            Name = viewModel.Name;

            Guard.Against.NullOrEmpty(viewModel.Description, nameof(viewModel.Description));
            Description = viewModel.Description;

            Guard.Against.NullOrEmpty(viewModel.Adress, nameof(viewModel.Adress));
            Adress = viewModel.Adress;

            Guard.Against.NullOrEmpty(viewModel.WorkType, nameof(viewModel.WorkType));
            WorkType = viewModel.WorkType;

            ExprienceLevels = viewModel.ExprienceLevels;
            LocationId      = viewModel.LocationId;

            MinSalary  = viewModel.MinSalary;
            MaxSalary  = viewModel.MaxSalary;
            SalaryType = viewModel.SalaryType;

            Guard.Against.Negative(viewModel.CompanyId, nameof(viewModel.CompanyId));
            CompanyId = viewModel.CompanyId;

            CategoryId = viewModel.CategoryId;
            LanguageId = viewModel.LanguageId;
            TagsId     = viewModel.TagsId;

            PosterID   = user.Id;
            isApproved = approved;
            isArchived = viewModel.isArchived;

            CreatedOn = DateTime.Now;
            ExpiredOn = CreatedOn.AddMonths(1);
        }