/// <summary> /// Legal unit creation method /// </summary> /// <param name="data">Data</param> /// <param name="userId">User Id</param> /// <returns></returns> public async Task <Dictionary <string, string[]> > CreateLegalUnit(LegalUnitCreateM data, string userId) => await CreateUnitContext <LegalUnit, LegalUnitCreateM>(data, userId, unit => { var helper = new StatUnitCheckPermissionsHelper(_dbContext); helper.CheckRegionOrActivityContains(userId, data.Address?.RegionId, data.ActualAddress?.RegionId, data.PostalAddress?.RegionId, data.Activities.Select(x => x.ActivityCategoryId).ToList()); if (Common.HasAccess <LegalUnit>(data.DataAccess, v => v.LocalUnits)) { if (data.LocalUnits == null) { return(Task.CompletedTask); } var localUnits = _dbContext.LocalUnits.Where(x => data.LocalUnits.Contains(x.RegId)); foreach (var localUnit in localUnits) { unit.LocalUnits.Add(localUnit); } if (data.LocalUnits != null) { unit.HistoryLocalUnitIds = string.Join(",", data.LocalUnits); } } return(Task.CompletedTask); });
public async Task <IActionResult> CreateLegalUnit([FromBody] LegalUnitCreateM data) { var result = await _createService.CreateLegalUnit(data, User.GetUserId()); if (result != null && result.ContainsKey(nameof(UserAccess.UnauthorizedAccess))) { return(Forbid()); } return(result == null ? (IActionResult)NoContent() : BadRequest(result)); }