public async Task <IActionResult> CreateEnterpriseGroup([FromBody] EnterpriseGroupCreateM data) { var result = await _createService.CreateEnterpriseGroup(data, User.GetUserId()); if (result != null && result.ContainsKey(nameof(UserAccess.UnauthorizedAccess))) { return(Forbid()); } return(result == null ? (IActionResult)NoContent() : BadRequest(result)); }
/// <summary> /// Method for creating an enterprise group /// </summary> /// <param name="data">Data</param> /// <param name="userId">User Id</param> /// <returns></returns> public async Task <Dictionary <string, string[]> > CreateEnterpriseGroup(EnterpriseGroupCreateM data, string userId) => await CreateContext <EnterpriseGroup, EnterpriseGroupCreateM>(data, userId, unit => { var helper = new StatUnitCheckPermissionsHelper(_dbContext); helper.CheckRegionOrActivityContains(userId, data.Address?.RegionId, data.ActualAddress?.RegionId, data.PostalAddress?.RegionId, new List <int>()); if (Common.HasAccess <EnterpriseGroup>(data.DataAccess, v => v.EnterpriseUnits)) { var enterprises = _dbContext.EnterpriseUnits.Where(x => data.EnterpriseUnits.Contains(x.RegId)) .ToList(); foreach (var enterprise in enterprises) { unit.EnterpriseUnits.Add(enterprise); } if (data.EnterpriseUnits != null) { unit.HistoryEnterpriseUnitIds = string.Join(",", data.EnterpriseUnits); } } return(Task.CompletedTask); });