// API View Model
public class CompanyViewModel
{
public long Companyid { get; set; }
public long[] SelectedWasteTypes { get; set; }
public ICollection<CompanyWastetype> CompanyWastetypes { get; set; }
}
await insertCompanyWastetype(company, companyVM.SelectedWasteTypes);
// add record in CompanyWasteType
private async Task<IActionResult> insertCompanyWastetype(Company company, long[] selectedWasteTypes)
{
foreach (int wastetypeid in selectedWasteTypes)
{
CompanyWastetype companyWastetype = new CompanyWastetype();
companyWastetype.Companyid = company.Companyid;
companyWastetype.Wastetypeid = wastetypeid;
await _companyWasteTypeRepository.AddAsync(companyWastetype);
if (await _unitOfWork.SaveAsyc() < 0)
return BadRequest("Could not create CompanyWastetype");
}
return Ok(); //company
}
// remove all record in CompanyWasteType
private async Task<IActionResult> deleteCompanyWastetype(Company company, long[] selectedWasteTypes)
{
foreach (int wastetypeid in selectedWasteTypes)
{
var record = await _companyWasteTypeRepository.GetWhereAsync(a => a.Companyid == company.Companyid && a.Wastetypeid == wastetypeid);
if (record == null)
return NotFound();
try
{
if (record.Count() > 0)
{
_companyWasteTypeRepository.Remove((CompanyWastetype)record);
if (await _unitOfWork.SaveAsyc() <= 0)
{
_logger.LogWarning($"Company id = {wastetypeid} has deleted ");
// return NoContent();
return BadRequest($"Could not update company id= {company.Companyid}");
}
}
}
catch (Exception ex)
{
_logger.LogInformation($"Exception: " + ex.Message);
}
}
return Ok();
}