/// <summary> /// Enterprise editing method /// </summary> /// <param name = "data"> Data </param> /// <param name = "userId"> User Id </param> /// <returns> </returns> public async Task <Dictionary <string, string[]> > EditEnterpriseUnit(EnterpriseUnitEditM data, string userId) => await EditUnitContext <EnterpriseUnit, EnterpriseUnitEditM>( data, m => m.RegId ?? 0, userId, unit => { if (_deletedStatusId != null && unit.UnitStatusId == _deletedStatusId) { _deleteService.CheckBeforeDelete(unit, true); } if (_liquidateStatusId != null && unit.UnitStatusId == _liquidateStatusId) { throw new BadRequestException(nameof(Resource.LiquidateEntrUnit)); } if (Common.HasAccess <EnterpriseUnit>(data.DataAccess, v => v.LegalUnits)) { var legalUnits = _dbContext.LegalUnits.Where(x => data.LegalUnits.Contains(x.RegId)); unit.LegalUnits.Clear(); unit.HistoryLegalUnitIds = null; foreach (var legalUnit in legalUnits) { unit.LegalUnits.Add(legalUnit); _addArrayStatisticalUnits.Add(Mapper.Map <IStatisticalUnit, ElasticStatUnit>(legalUnit)); } if (data.LegalUnits != null) { unit.HistoryLegalUnitIds = string.Join(",", data.LegalUnits); } } return(Task.CompletedTask); });
public async Task <IActionResult> EditEnterpriseUnit([FromBody] EnterpriseUnitEditM data) { var result = await _editService.EditEnterpriseUnit(data, User.GetUserId()); if (result != null && result.ContainsKey(nameof(UserAccess.UnauthorizedAccess))) { return(Forbid()); } return(result == null ? (IActionResult)NoContent() : BadRequest(result)); }