Esempio n. 1
0
        /// <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);
        });
Esempio n. 2
0
        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));
        }