示例#1
0
        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>();
                }
            }));
        }
示例#2
0
        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>();
                }
            }));
        }