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