Пример #1
0
        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());
        }
Пример #2
0
        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));
        }