public IActionResult AssignUserLevel([FromBody] AssignUserLevelViewModel model) { try { var user = _repo.Find(model.UserId); _repo.ClearAssignments(model.UserId); user.UserLevel = model.UserLevel; if (model.UserLevel == "Admin" || model.UserLevel == "NSM" || model.UserLevel == "RSM" || model.UserLevel == "HO") { foreach (var id in model.RegionIds) { var region = _tRepo.FindRegion(id); region.UserId = model.UserId; _tRepo.UpdateRegion(region); } } else if (model.UserLevel == "ZSM") { foreach (var id in model.CityIds) { var city = _tRepo.FindCity(id); city.UserId = model.UserId; _tRepo.UpdateCity(city); } } else if (model.UserLevel == "ASM") { foreach (var id in model.AreaIds) { var area = _tRepo.FindArea(id); area.UserId = model.UserId; _tRepo.UpdateArea(area); } } else if (model.UserLevel == "TSO/KPO") { foreach (var id in model.TerritoryIds) { var territory = _tRepo.Find(id); territory.UserId = model.UserId; _tRepo.Update(territory); } } else if (model.UserLevel == "DSF") { var assignedSecUser = _repo.GetFirst(u => u.SectionId == model.SectionId); if (assignedSecUser != null) { assignedSecUser.SectionId = null; _repo.Update(assignedSecUser); } var section = _tRepo.FindSection(model.SectionId); section.UserId = model.UserId; _tRepo.UpdateSection(section); user.SectionId = model.SectionId; } _repo.Update(user); return(new OkObjectResult(new { UserId = model.UserId })); } catch (Exception e) { throw; } }