/// <summary> /// Method of editing a group of enterprises /// </summary> /// <param name = "data"> Data </param> /// <param name = "userId"> User Id </param> /// <returns> </returns> public async Task <Dictionary <string, string[]> > EditEnterpriseGroup(EnterpriseGroupEditM data, string userId) => await EditContext <EnterpriseGroup, EnterpriseGroupEditM>( data, m => m.RegId ?? 0, userId, (unit, oldUnit) => { if (_deletedStatusId != null && unit.UnitStatusId == _deletedStatusId) { _deleteService.CheckBeforeDelete(unit, true); } if (Common.HasAccess <EnterpriseGroup>(data.DataAccess, v => v.EnterpriseUnits)) { var enterprises = _dbContext.EnterpriseUnits.Where(x => data.EnterpriseUnits.Contains(x.RegId)); unit.EnterpriseUnits.Clear(); unit.HistoryEnterpriseUnitIds = null; foreach (var enterprise in enterprises) { unit.EnterpriseUnits.Add(enterprise); _addArrayStatisticalUnits.Add(Mapper.Map <IStatisticalUnit, ElasticStatUnit>(enterprise)); } if (data.EnterpriseUnits != null) { unit.HistoryEnterpriseUnitIds = string.Join(",", data.EnterpriseUnits); } } return(Task.CompletedTask); });
public async Task <IActionResult> EditEnterpriseGroup([FromBody] EnterpriseGroupEditM data) { var result = await _editService.EditEnterpriseGroup(data, User.GetUserId()); if (result != null && result.ContainsKey(nameof(UserAccess.UnauthorizedAccess))) { return(Forbid()); } return(result == null ? (IActionResult)NoContent() : BadRequest(result)); }