예제 #1
0
        /// <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);
        });
예제 #2
0
        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));
        }