public async Task <DetectorModel> Create(AuthorizedDto <DetectorDto> dto) { return(await Execute(async() => { using (UnitOfWork db = new UnitOfWork()) { DetectorEntity detectorEntity = dto.Data.ToModel <DetectorModel>().ToEntity <DetectorEntity>(); DetectorPrefabEntity detectorPrefabEntity = await db.GetRepo <DetectorPrefabEntity>().Get(detectorEntity.detector_prefab_id); detectorEntity.DetectorSettingsValues = null; detectorEntity.DetectorFaultPrefabs = detectorEntity.DetectorFaultPrefabs.Select( faultPrefab => detectorPrefabEntity.DetectorFaultPrefabs.FirstOrDefault(fp => fp.id == faultPrefab.id) ).Where(fp => fp != null).ToList(); await db.GetRepo <DetectorEntity>().Create(detectorEntity); await db.Save(); RoleEntity ownerRole = await RoleService.GetCompanyOwnerRole(detectorPrefabEntity.company_id, db); ownerRole.DetectorPermissions.Add(detectorEntity); RoleEntity creatorRole = await RoleService.GetCompanyWorkerRole(dto.Session.UserId, db); creatorRole?.DetectorPermissions.Add(detectorEntity); await db.Save(); return detectorEntity.ToModel <DetectorModel>(); } })); }
public async Task <DetectorPrefabModel> CreateDetectorPrefab(AuthorizedDto <DetectorPrefabDto> dto) { return(await Execute(async() => { using (UnitOfWork db = new UnitOfWork()) { DetectorPrefabEntity detectorPrefabEntity = dto.Data.ToModel <DetectorPrefabModel>().ToEntity <DetectorPrefabEntity>(); await db.GetRepo <DetectorPrefabEntity>().Create(detectorPrefabEntity); await db.Save(); return detectorPrefabEntity.ToModel <DetectorPrefabModel>(); } })); }