Пример #1
0
        public async Task <string> GetHookByCameraId(int cameraId)
        {
            // validate request
            if (cameraId == 0)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "you must provide Camera Id  ";
                return(null);
            }
            // get user camera by camera id
            UserCamera userCamera = await userCameraLogic.GetCameraById(cameraId);

            if (userCamera == null || userCamera?.UserId == 0)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "Ilegale operation";
                return(null);
            }
            // get user  by user id
            User user = await userCRUDService.GetByUserId(userCamera.UserId);

            if (user == null || user.SlackWebHook == null)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "Ilegale operation";
                return(null);
            }
            return(user.SlackWebHook);
        }
Пример #2
0
        public async Task <bool> RemoveCamForUser(int userId, string oldCamDeviceId)
        {
            UserCamera oldCam = await _context.UserCameras
                                .Include(uc => uc.Camera)
                                .FirstOrDefaultAsync(uc => uc.UserId == userId && uc.Camera.DeviceId == oldCamDeviceId);

            if (oldCam == null)
            {
                return(true);
            }

            _context.Cameras.Remove(oldCam.Camera);
            return(await _context.SaveChangesAsync() > 0);
        }
Пример #3
0
        // Update camera working status
        public async Task <bool> ChangeWorkingStatus(int cameraId, string guid)
        {
            Response.IsSuccessful = true;
            // validate request values
            if (cameraId == 0 || string.IsNullOrEmpty(guid))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "you must provide camera Id and guid ";
                return(false);
            }
            // get user by guid and validate user permision
            User user = await userCRUDService.GetByUserGuid(guid);

            if (user == null || user?.IsAdmin == false)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "user is not exist or user  is not admin";
                return(false);
            }

            // get usercamera by camera id and validate camera is asigned to user
            UserCamera userCamera = await userCameraLogic.GetCameraById(cameraId);

            if (userCamera == null || (userCamera.UserId != user.UserId && userCamera.UserId != user.AdminId))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "camera is not exist or user  is own this camera";
                return(false);
            }

            // get camera by id
            Camera camera = await cameraCRUDService.GetCameraById(cameraId);

            if (camera == null)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "camera is not exist ";
                return(false);
            }
            // update camera working status by existing value
            if (camera.IsWorking)
            {
                return(await cameraCRUDService.ChangeWorkingStatus(false, cameraId));
            }
            return(await cameraCRUDService.ChangeWorkingStatus(true, cameraId));
        }
Пример #4
0
        public async Task UpdateCamera(UpdateCameraRequest request, string guid)
        {
            Response.IsSuccessful = true;
            // validate request values
            if (request.CameraId == 0 || string.IsNullOrEmpty(guid))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "you must provide all required fields ";
                return;
            }
            // get user by guid and validate user permision
            User user = await userCRUDService.GetByUserGuid(guid);

            if (user == null || user?.IsAdmin == false)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "user is not exist or user  is not admin";
                return;
            }
            // get usercamera by camera id and validate camera is asigned to user
            UserCamera userCamera = await userCameraLogic.GetCameraById(request.CameraId);

            if (userCamera == null || (userCamera.UserId != user.UserId && userCamera.UserId != user.AdminId))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "camera is not exist or user  is own this camera";
                return;
            }
            Camera newCamera = new Camera()
            {
                CameraId     = request.CameraId,
                DateAdded    = DateTime.UtcNow,
                IsWorking    = request.IsWorking,
                Latitude     = request.Latitude,
                Longitude    = request.Longitude,
                LocationName = request.LocationName
            };

            // update camera
            if (!await cameraCRUDService.UpdateCamera(newCamera))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "cannot update camera";
                return;
            }
        }
Пример #5
0
        public async Task <bool> AddCamForUser(int userId, Camera cam)
        {
            UserCamera existingCam = await _context.UserCameras
                                     .Include(uc => uc.Camera)
                                     .Where(uc => uc.Camera.DeviceId == cam.DeviceId)
                                     .FirstOrDefaultAsync();


            if (existingCam != null)
            {
                return(true);
            }

            var newCam = new UserCamera()
            {
                Camera = cam, UserId = userId
            };
            await _context.Cameras.AddAsync(cam);

            await _context.UserCameras.AddAsync(newCam);

            return(await _context.SaveChangesAsync() > 0);
        }
Пример #6
0
        public async Task DeleteCamera(Camera request, string guid)
        {
            Response.IsSuccessful = true;
            // validate request values
            if (request.CameraId == 0 || string.IsNullOrEmpty(guid))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "you must provide all required fields ";
                return;
            }
            // get user by guid and validate user permision
            User user = await userCRUDService.GetByUserGuid(guid);

            if (user == null || user?.IsAdmin == false)
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "user is not exist or user  is not admin";
                return;
            }
            // get usercamera by camera id and validate camera is asigned to user
            UserCamera userCamera = await userCameraLogic.GetCameraById(request.CameraId);

            if (userCamera == null || (userCamera.UserId != user.UserId && userCamera.UserId != user.AdminId))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "camera is not exist or user  is own this camera";
                return;
            }
            // delete camera
            if (!await cameraCRUDService.DeleteCamera(request.CameraId))
            {
                Response.IsSuccessful = false;
                Response.ErrorMessage = "cannot Delete camera";
                return;
            }
        }
 // Token: 0x0600197B RID: 6523
 public HUDMapController(HUDMapControllerAsset settings, SimMapDependencies mapDependencies, UserCamera camera, ICommandScheduler simScheduler, bool showBoundariesGame, bool showBoundariesSensors)
 {
     this.mHUDEnabled                   = true;
     this.mFOWSimEnabled                = true;
     this.mFOWRenderEnabled             = true;
     this.mBoundsEnabled                = true;
     this.mDefaultFOWVolumeBuffer       = new CommandBuffer();
     this.mFoWCubeMeshTransform         = Matrix4x4.identity;
     this.mSimScheduler                 = simScheduler;
     this.mMainCamera                   = camera.ActiveCamera;
     this.mFogBuffers                   = new Dictionary <HUDMapController.RenderModeType, CommandBuffer>(2, HUDMapController.sRenderModeTypeComparer);
     this.mBoundsEnabledForLevelGame    = showBoundariesGame;
     this.mBoundsEnabledForLevelSensors = showBoundariesSensors;
     this.mSettings = settings;
     if (this.mSettings != null)
     {
         if (mapDependencies != null)
         {
             Vector3 min = VectorHelper.SimVector2ToUnityVector3(mapDependencies.MinPathfindingBounds, -5000f);
             Vector3 max = VectorHelper.SimVector2ToUnityVector3(mapDependencies.MaxPathfindingBounds, 5000f);
             // MOD: fix sensors on non square maps
             float s = Math.Max(max.x - min.x, max.z - min.z);
             max.x = min.x + s;
             max.z = min.z + s;
             // MOD
             this.mMapBounds = default(Bounds);
             this.mMapBounds.SetMinMax(min, max);
             this.mFOWCamera = HUDMapController.InstantiateFOWCamera(settings.FOWCameraPrefab, this.mMapBounds, ShipbreakersMain.GetDynamicRoot(ShipbreakersMain.DynamicRootIndex.Misc));
             if (this.mMainCamera != null && this.mFOWCamera != null)
             {
                 if (this.mFOWCamera.targetTexture != null)
                 {
                     Log.Error(Log.Channel.Graphics, "RenderTexture asset incorrectly set as target for FoW camera, discarding!", new object[0]);
                     this.mFOWCamera.targetTexture.Release();
                 }
                 this.mFOWTexture              = HUDMapController.CreateFOWRenderTexture(this.mMapBounds);
                 this.mBlurMaterial            = new Material(settings.FOWBlurShader);
                 this.mFOWCamera.targetTexture = this.mFOWTexture;
                 this.mFOWCamera.AddCommandBuffer(CameraEvent.AfterForwardOpaque, HUDMapController.CreateFOWBlurCmdBuffer(this.mBlurMaterial, this.mFOWTexture));
                 this.mFOWMaterial = new Material(settings.FOWMaterial);
                 this.mFOWMaterial.SetTexture("_MainTex", this.mFOWTexture);
                 Vector3    size       = Vector3.one * 5000f + this.mMapBounds.size;
                 GameObject gameObject = HUDMapController.InstantiateFOWVolume(new Bounds(this.mMapBounds.center, size));
                 this.mFoWCubeMesh          = gameObject.GetComponent <MeshFilter>().mesh;
                 this.mFoWCubeMeshTransform = gameObject.transform.localToWorldMatrix;
                 HUDMapController.RebuildFOWVolumeCmdBuffer(this.mDefaultFOWVolumeBuffer, this.mFoWCubeMesh, this.mFoWCubeMeshTransform, this.mFOWMaterial, "FOW Combine (Default)");
                 this.mFogBuffers.Add(HUDMapController.RenderModeType.Default, this.mDefaultFOWVolumeBuffer);
                 UnityEngine.Object.Destroy(gameObject);
                 this.CreateMapBoundsBuffers(settings);
                 this.SetMode(HUDMapController.RenderModeType.Default);
                 this.mAnimFade = new FloatAnimFadeInOut(null, 1f, 1f, 0f);
                 this.mAnimFade.FadeOutCallback = new Action(this.OnAnimFadeOut);
                 this.mAnimFade.Value           = 1f;
                 ShipbreakersMain.PresentationEventSystem.AddHandler <SensorsManagerEvent>(new BBI.Core.Events.EventHandler <SensorsManagerEvent>(this.OnSensorsManagerEvent));
                 ShipbreakersMain.PresentationEventSystem.AddHandler <HUDMapToggleEvent>(new BBI.Core.Events.EventHandler <HUDMapToggleEvent>(this.OnHUDMapToggleEvent));
                 ShipbreakersMain.PresentationEventSystem.AddHandler <HUDMapSettingsEvent>(new BBI.Core.Events.EventHandler <HUDMapSettingsEvent>(this.OnHUDMapSettingsEvent));
                 ShipbreakersMain.PresentationEventSystem.AddHandler <QualitySettingsChangedEvent>(new BBI.Core.Events.EventHandler <QualitySettingsChangedEvent>(this.OnQualitySettingsChanged));
                 ShipbreakersMain.PresentationEventSystem.AddHandler <TacticalOverlayToggleEvent>(new BBI.Core.Events.EventHandler <TacticalOverlayToggleEvent>(this.OnTacticalOverlayToggleEvent));
                 ShipbreakersMain.SimToPresentationEventSystem.AddHandler <MatchGameOverEvent>(new BBI.Core.Events.EventHandler <MatchGameOverEvent>(this.OnMatchGameOverEvent));
                 ShipbreakersMain.SimToPresentationEventSystem.AddHandler <ReplayCompleteEvent>(new BBI.Core.Events.EventHandler <ReplayCompleteEvent>(this.OnReplayCompleteEvent));
             }
             else
             {
                 Log.Error(Log.Channel.Graphics, "Cannot find child Camera for provided UserCamera", new object[]
                 {
                     camera
                 });
             }
             DecalSystem.sFOWCamera = this.mFOWCamera;
             return;
         }
         Log.Error(Log.Channel.Graphics, "[FogOfWar] - Cannot initialize Presentaiton side FoW for level! Make sure it contains a SetRenderSettings and has particle occlusion baked!", new object[0]);
     }
 }