public async Task <IActionResult> PutCompany(Company company) { Company tmpCompany; tmpCompany = await _context.Companies .Include(c => c.Assignments) .Include(c => c.ContactInfo) .Include(c => c.Location) .Include(c => c.Reviews) .Include(c => c.UserCompanies).ThenInclude(uc => uc.User) .Include(c => c.TagCompanies).ThenInclude(tc => tc.Tag).FirstOrDefaultAsync(c => c.CompanyID == company.CompanyID); tmpCompany.CompanyName = company.CompanyName; tmpCompany.Location.Country = company.Location.Country; tmpCompany.Location.Address = company.Location.Address; tmpCompany.Location.Postcode = company.Location.Postcode; tmpCompany.About = company.About; tmpCompany.ContactInfo.LinkedIn = company.ContactInfo.LinkedIn; tmpCompany.ContactInfo.MobileNumber = company.ContactInfo.MobileNumber; foreach (TagCompany tc in company.TagCompanies) { TagCompany tmpTagCompany = _context.TagCompanies.Include(t => t.Tag).SingleOrDefault(t => t.Tag.TagName == tc.Tag.TagName && t.TagCompanyID == tc.TagCompanyID); if (tmpTagCompany == null || tmpTagCompany.Equals(null)) { //tag is nog niet toegevoegd aan assignment Tag tmpTag = _context.Tags.SingleOrDefault(t => t.TagName == tc.Tag.TagName); if (tmpTag == null || tmpTag.Equals(null)) { //tag bestaat niet tmpCompany.TagCompanies.Add(new TagCompany() { Tag = new Tag() { TagName = tc.Tag.TagName }, Company = tmpCompany }); } else { //tag bestaat niet tmpCompany.TagCompanies.Add(new TagCompany() { Tag = tmpTag, Company = tmpCompany }); } } } _context.Entry(tmpCompany).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok()); }
public async Task <ActionResult <Company> > PostCompany(Company company) { var userid = long.Parse(this.User.Claims.First(i => i.Type == "UserID").Value); User user = _context.Users.Find(userid); List <TagCompany> tagCompanies = new List <TagCompany>(); foreach (TagCompany tagCompany in company.TagCompanies) { if (_context.Tags.FirstOrDefault(t => t.TagName == tagCompany.Tag.TagName) == null) { tagCompanies.Add(tagCompany); } else { TagCompany tmpTagCompany = new TagCompany(); tmpTagCompany.Company = company; Tag tmpTag = _context.Tags.FirstOrDefault(t => t.TagName == tagCompany.Tag.TagName); tmpTagCompany.Tag = tmpTag; tagCompanies.Add(tmpTagCompany); } } company.TagCompanies = tagCompanies; UserCompany com = new UserCompany() { Company = company, User = user, Accepted = true, }; company.UserCompanies = new List <UserCompany>(); company.UserCompanies.Add(com); _context.Companies.Add(company); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCompany", new { id = company.CompanyID }, company)); }