public IActionResult Create() { var viewModel = new CreateJobInputModel(); viewModel.SubCategoryItems = this.jobSubCateroriesService.GetAllAsKeyValuePairs(); return(this.View(viewModel)); }
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)); }
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; }
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)); }
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); }
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); }
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); }
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); }
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(); }
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); }