示例#1
0
        public void TestCreateJob_ShouldCreateJobWithCorrectParameters()
        {
            var expectedJob = ReturnCreatedJobTestData();

            var postJobInputViewModel = new PostJobInputModel
            {
                Company     = "FB",
                Description = "AmazingJob",
                JobTitle    = "Developer",
                JobType     = JobType.FullTime,
                Location    = "Nyc"
            };

            var companyInputModel = new CompanyInputViewModel()
            {
                Name    = "FB",
                Address = "Nyc"
            };

            this._jobService.CreateJob(postJobInputViewModel, companyInputModel);
            this._context.SaveChanges();

            var actualJobTitle       = this._context.JobAdds.FirstOrDefault(x => x.JobTitle == "Developer").JobTitle;
            var actualJobDescription = this._context.JobAdds.FirstOrDefault(x => x.Description == "AmazingJob").Description;

            Assert.Equal(actualJobTitle, expectedJob.JobTitle);
            Assert.Equal(actualJobDescription, expectedJob.Description);
        }
示例#2
0
        public void CreateJob(PostJobInputModel model, CompanyInputViewModel companyModel)
        {
            Company company = null;

            company = this.context.Companies.FirstOrDefault(x => x.Name == model.Company);

            if (company == null)
            {
                this._companyService.CreateCompany(companyModel, model);
                company = this.context.Companies.FirstOrDefault(x => x.Name == model.Company);
            }

            var jobAdd = new JobAdd
            {
                JobTitle    = model.JobTitle,
                JobType     = model.JobType,
                Salary      = model.Salary,
                CompanyId   = company.Id,
                Company     = company,
                Description = model.Description,
                Location    = model.Location,
                CreatedOn   = DateTime.UtcNow,
            };

            var currentCompany = this.context.Companies.FirstOrDefault(x => x.Name == model.Company);

            this.context.JobAdds.Add(jobAdd);
            this.context.SaveChanges();
            if (currentCompany != null)
            {
                currentCompany.JobAdds.Add(jobAdd);
                this.context.SaveChanges();
            }
        }
示例#3
0
        public void TestCreateCompany_ShouldCreateCorrectCompany()
        {
            var companyModel = new CompanyInputViewModel()
            {
                Address = "NYC",
                Name    = "FB"
            };

            var jobModel = new PostJobInputModel()
            {
                Description = "job",
                Company     = "FB",
                Location    = "NYC",
                JobTitle    = "job",
                JobType     = JobType.FullTime
            };

            this._companyService.CreateCompany(companyModel, jobModel);
            this._context.SaveChanges();

            var expected = this._context.Companies.FirstOrDefault(x => x.Name == "FB");

            var actualMappedCompany = new Company()
            {
                Address = companyModel.Address,
                Name    = companyModel.Name
            };

            Assert.Equal(expected.Address, actualMappedCompany.Address);
            Assert.Equal(expected.Name, actualMappedCompany.Name);
        }
示例#4
0
        public IList <CompanyInputViewModel> GetAllCompanies()
        {
            var allCompanies         = this.conpanies.All();
            var allTowns             = this.townService.GetAllTowns().ToList();
            var allUseFullCategories = this.useFullCategoryService.GetAllUseFullCategories().ToList();

            IList <CompanyInputViewModel> companyNames = new List <CompanyInputViewModel>();

            foreach (var company in allCompanies)
            {
                string townName     = allTowns.FirstOrDefault(x => x.Id == company.Town.Id).Name;
                string categoryName = allUseFullCategories.FirstOrDefault(x => x.Id == company.UseFullCategory.Id).Name;
                CompanyInputViewModel companyView = new CompanyInputViewModel()
                {
                    Name         = company.Name,
                    TownName     = townName,
                    Address      = company.Address,
                    Phone        = company.Phone,
                    CategoryName = categoryName,
                };

                companyNames.Add(companyView);
            }

            return(companyNames);
        }
示例#5
0
        public async Task <IActionResult> Create(CompanyInputViewModel companyModel)
        {
            if (!this.User.IsInRole(GlobalConstants.AdministratorRoleName))
            {
                return(this.Redirect("/Identity/Account/AccessDenied"));
            }

            if (!this.ModelState.IsValid)
            {
                var error = new CompanyError {
                    ErrorMessage = GlobalConstants.CompanyInvalidModelMessage
                };
                return(this.RedirectToAction("Error", "Order", error));
            }

            bool checkIfCompanyExists = await this.company.IfCompanyExistsAsync(companyModel.Name,
                                                                                companyModel.TownName,
                                                                                companyModel.CategoryName);

            if (checkIfCompanyExists)
            {
                var error = new CompanyError {
                    ErrorMessage = GlobalConstants.CompanyExistsMessage
                };
                return(this.RedirectToAction("Error", "Order", error));
            }

            var companyModelDto = CompanyCreateInputHandMapper.Map(companyModel);

            await this.company.CreateCompanyAsync(companyModelDto);

            return(this.Redirect("/Company/All"));
        }
示例#6
0
        public IActionResult PostJob(PostJobInputModel model, CompanyInputViewModel companyModel)
        {
            if (ModelState.IsValid)
            {
                this._jobService.CreateJob(model, companyModel);
                return(Redirect("/"));
            }

            return(this.View());
        }
示例#7
0
        public static CompanyInputViewDtoModel Map(CompanyInputViewModel companyModel)
        {
            var companyModelDto = new CompanyInputViewDtoModel
            {
                Name         = companyModel.Name,
                TownName     = companyModel.TownName,
                Address      = companyModel.Address,
                CategoryName = companyModel.CategoryName,
                Phone        = companyModel.Phone
            };

            return(companyModelDto);
        }
示例#8
0
        public void CreateCompany(CompanyInputViewModel model, PostJobInputModel postJobModel)
        {
            var companyModel = new CompanyInputViewModel()
            {
                Address = postJobModel.Location,
                Name    = postJobModel.Company
            };

            var company = new Company
            {
                Address = companyModel.Address,
                Name    = companyModel.Name,
            };

            this._context.Companies.Add(company);
            this._context.SaveChanges();
        }
示例#9
0
        public async Task CreateCompanyAsync(CompanyInputViewModel company)
        {
            UseFullCategory useFullCategory = await this.useFullCategories.All()
                                              .FirstOrDefaultAsync(x => x.Name == company.CategoryName);

            Town town = await this.towns.All().FirstOrDefaultAsync(x => x.Name == company.TownName);

            Company currentCompany = new Company()
            {
                Name            = company.Name,
                Town            = town,
                Address         = company.Address,
                Phone           = company.Phone,
                UseFullCategory = useFullCategory,
            };

            await this.conpanies.AddAsync(currentCompany);

            await this.conpanies.SaveChangesAsync();
        }
示例#10
0
        public IList <CompanyInputViewModel> GetCompaniesByTownAndCategory(string townName, string categoryName)
        {
            int townId          = this.towns.All().FirstOrDefault(x => x.Name == townName).Id;
            int categoryId      = this.useFullCategories.All().FirstOrDefault(x => x.Name == categoryName).Id;
            var neededCompanies = this.conpanies.All().Where(x => x.TownId == townId && x.UseFullCategoryId == categoryId);

            List <CompanyInputViewModel> companiesByTown = new List <CompanyInputViewModel>();

            foreach (var company in neededCompanies)
            {
                CompanyInputViewModel currentCompany = new CompanyInputViewModel()
                {
                    Name         = company.Name,
                    TownName     = townName,
                    Address      = company.Address,
                    Phone        = company.Phone,
                    CategoryName = categoryName,
                };

                companiesByTown.Add(currentCompany);
            }

            return(companiesByTown);
        }