//currently supports updating archived posts, seek clarification
        async Task <ServiceResponse <List <GetCompanyAdminDto> > > ICompanyService.UpdateCompany(string companyId, UpdateCompanyDto updatedCompanyDto)
        {
            ServiceResponse <List <GetCompanyAdminDto> > response = new ServiceResponse <List <GetCompanyAdminDto> >();
            Company update = await _context.Companies.FirstOrDefaultAsync(a => a.companyId == companyId);

            if (update == null)
            {
                response.Success = false;
                response.Message = "This company does not exist";
                return(response);
            }

            string oldname = update.companyName;

            update.companyName        = updatedCompanyDto.companyName;
            update.companyTier        = updatedCompanyDto.companyTier;
            update.companyDescription = updatedCompanyDto.companyDescription;

            if (oldname != update.companyName)
            {
                List <CompanyPost> posts = await _context.CompanyPosts.Where(a => a.companyId == companyId).ToListAsync();

                if (posts.Count != 0)
                {
                    posts.ForEach(a => a.companyUpdated(updatedCompanyDto.companyName));
                    _context.CompanyPosts.UpdateRange(posts);
                }
                List <CompanyPostRequest> requests = await _context.CompanyPostRequests.Where(a => a.companyId == companyId).ToListAsync();

                if (requests.Count != 0)
                {
                    requests.ForEach(a => a.companyUpdated(updatedCompanyDto.companyName));
                    _context.CompanyPostRequests.UpdateRange(requests);
                }
            }

            _context.Companies.Update(update);
            await _context.SaveChangesAsync();

            List <Company> comps = await _context.Companies.ToListAsync();

            List <GetCompanyAdminDto> dataList = comps.Select(a => _mapper.Map <GetCompanyAdminDto>(a)).ToList();

            response.Data = dataList;
            return(response);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateCompany([FromBody] UpdateCompanyDto updateCompany)
        {
            await _companyService.UpdateCompany(updateCompany);

            return(Ok());
        }