예제 #1
0
        public ActionResult Device(Device device)
        {
            UserDataService userDataService = new UserDataService();

            var user = userDataService.GetByUserId(User.Identity.GetUserId());

            DeviceDataService deviceDataService = new DeviceDataService();

            Device newDevice = new Device
            {
                DeviceId = device.DeviceId,
                Geofence = new Geofence
                {
                    North = 180,
                    South = -180,
                    East  = 90,
                    West  = -90,
                },
                Title  = device.Title,
                UserId = user.Id
            };

            deviceDataService.Add(newDevice);


            return(RedirectToAction("Index"));
        }
예제 #2
0
        public ActionResult Geofence(int id)
        {
            DeviceDataService deviceDataService = new DeviceDataService();
            var device = deviceDataService.Get(id);

            return(View(device));
        }
예제 #3
0
        public InstructionImporter(SettingsProvider settingsProvider, DeviceDataService deviceDataService,
                                   InstructionDataService instructionDataService)
        {
            _deviceDataService      = deviceDataService;
            _instructionDataService = instructionDataService;

            _instructionFolderName = settingsProvider.GetSetting(SettingName.InstructionFolderName).Value;
        }
예제 #4
0
        public ServiceReportImporter(SettingsProvider settingsProvider, DeviceDataService deviceDataService,
                                     ServiceReportDataService serviceReportDataService)
        {
            _deviceDataService        = deviceDataService;
            _serviceReportDataService = serviceReportDataService;

            _serviceReportFolderName = settingsProvider.GetSetting(SettingName.ServiceReportFolderName).Value;
        }
        public IHttpActionResult AddLocation(LocationModel locatioModel)
        {
            // To call this method: http://localhost:12345/Api/LocationData/AddLocation

            DeviceDataService deviceDataService = new DeviceDataService();

            var device = deviceDataService.Get(locatioModel.DeviceId);

            if (device == null)
            {
                return(Json("Toks įrenginys neegzistuoja"));
            }
            else
            {
                LocationDataService locationDataService = new LocationDataService();

                Location location = new Location
                {
                    Longitude = locatioModel.Longitude,
                    Latitude  = locatioModel.Latitude,
                    TimeStamp = locatioModel.TimeStamp,
                    DeviceId  = device.Id
                };

                locationDataService.Add(location);

                var jsonLocation = new
                {
                    latitude  = locatioModel.Latitude,
                    longitude = locatioModel.Longitude
                };

                var options = new PusherOptions
                {
                    Cluster   = "eu",
                    Encrypted = true
                };

                var _pusher = new Pusher(
                    "526323",
                    "e3eb2284cbb62f35599f",
                    "52decc2ad70da06be4d0",
                    options);


                _pusher.TriggerAsync("location_channel", "new_location", jsonLocation);

                GeofencingServices geofencingServices = new GeofencingServices();

                geofencingServices.CheckGeofence(locatioModel.Longitude, locatioModel.Latitude, locatioModel.DeviceId);

                return(Json(new { status = "success", data = location }));
            }
        }
예제 #6
0
        public void CheckGeofence(float latitude, float longitude, int devideId)
        {
            DeviceDataService deviceDataService = new DeviceDataService();

            var device = deviceDataService.Get(devideId);

            if (latitude > device.Geofence.North || latitude < device.Geofence.South || longitude > device.Geofence.East || longitude < device.Geofence.West)
            {
                SendEmail(device.Title);
            }
            return;
        }
예제 #7
0
        public ActionResult Index(int id)
        {
            DeviceDataService deviceDataService = new DeviceDataService();
            var device = deviceDataService.Get(id);
            LocationDataService locationDataService = new LocationDataService();
            var locations = locationDataService.GetAllByDevice(device.Id);

            if (locations.Count == 0)
            {
                return(View("NoLocationsAvailable"));
            }
            else
            {
                return(View(locations));
            }
        }
            public async Task ChooseCorrectItem()
            {
                const string userId              = "userId";
                const string deviceId            = "devId";
                const string feedId              = "feed";
                DateTime     now                 = DateTime.Now;
                var          deviceSyncStoreMock = new Mock <IDeviceSyncStore>(MockBehavior.Strict);

                deviceSyncStoreMock.Setup(d => d.DeviceClaimedByAsync(deviceId)).Returns(Task.FromResult(userId));
                var digitPushServiceClientMock = new Mock <IDigitPushServiceClient>(MockBehavior.Strict);
                var calendarServiceMock        = new Mock <ICalendarServiceClient>(MockBehavior.Strict);
                var travelServiceMock          = new Mock <ITravelServiceClient>(MockBehavior.Strict);
                var focusStoreMock             = new Mock <IFocusStore>(MockBehavior.Strict);

                focusStoreMock.Setup(v => v.GetActiveAsync(userId)).Returns(Task.FromResult(new[] {
                    new FocusItem()
                    {
                        CalendarEventFeedId = feedId,
                        CalendarEventId     = "evt1",
                        IndicateTime        = now.AddMinutes(30)
                    },
                    new FocusItem()
                    {
                        CalendarEventFeedId = feedId,
                        CalendarEventId     = "evt2",
                        IndicateTime        = now.AddMinutes(-5)
                    },
                    new FocusItem()
                    {
                        CalendarEventFeedId = feedId,
                        CalendarEventId     = "evt3",
                        IndicateTime        = now.AddMinutes(-10)
                    }
                }));
                calendarServiceMock.Setup(v => v.Users[userId].Feeds[feedId].Events.Get(It.IsAny <string>()))
                .Returns <string>(d => Task.FromResult(new Event()
                {
                    Subject = d + "Subject"
                }));
                var service = new DeviceDataService(focusStoreMock.Object,
                                                    deviceSyncStoreMock.Object, calendarServiceMock.Object, travelServiceMock.Object);
                var data = await service.GetDeviceData(userId, deviceId);

                Assert.Equal("evt2Subject", data.Event.Subject);
            }
예제 #9
0
        // GET: Client
        public ActionResult Index()
        {
            string userID = User.Identity.GetUserId();

            User user = new User
            {
                UserId  = userID,
                Name    = User.Identity.Name,
                Surname = User.Identity.Name,
            };

            UserDataService userDataService = new UserDataService();

            userDataService.AddNotExisting(userID, user);


            DeviceDataService deviceDataService = new DeviceDataService();

            var deviceList = deviceDataService.GetDevicesByUserId(userID);

            return(View(deviceList));
        }
예제 #10
0
 public DeviceImporter(FacilityDataService facilityDataService,
                       DeviceDataService deviceDataService)
 {
     _facilityDataService = facilityDataService;
     _deviceDataService   = deviceDataService;
 }
예제 #11
0
 public AlarmScanJob()
 {
     deviceRepository     = new DeviceRepository();
     appSettingRepository = new AppSettingRepository();
     dtuDataService       = new DeviceDataService();
 }
            public async Task MapCorrectly()
            {
                const string userId              = "userId";
                const string deviceId            = "devId";
                const string feedId              = "feed";
                const string evtId               = "evt";
                const string directionsKey       = "dirs";
                DateTime     now                 = DateTime.Now;
                var          deviceSyncStoreMock = new Mock <IDeviceSyncStore>(MockBehavior.Strict);

                deviceSyncStoreMock.Setup(d => d.DeviceClaimedByAsync(deviceId)).Returns(Task.FromResult(userId));
                var digitPushServiceClientMock = new Mock <IDigitPushServiceClient>(MockBehavior.Strict);
                var calendarServiceMock        = new Mock <ICalendarServiceClient>(MockBehavior.Strict);
                var travelServiceMock          = new Mock <ITravelServiceClient>(MockBehavior.Strict);
                var focusStoreMock             = new Mock <IFocusStore>(MockBehavior.Strict);

                focusStoreMock.Setup(v => v.GetActiveAsync(userId)).Returns(Task.FromResult(new[] {
                    new FocusItem()
                    {
                        CalendarEventFeedId = feedId,
                        DirectionsMetadata  = new DirectionsMetadata()
                        {
                            Key = directionsKey
                        },
                        CalendarEventId = evtId,
                        IndicateTime    = now.AddMinutes(-5)
                    }
                }));
                calendarServiceMock.Setup(v => v.Users[userId].Feeds[feedId].Events.Get(evtId))
                .Returns(Task.FromResult(new Event()
                {
                    Subject = "subject",
                    Start   = now.AddMinutes(35)
                }));
                travelServiceMock.Setup(v => v.Directions[directionsKey].GetAsync())
                .Returns(Task.FromResult(new DirectionsResult()
                {
                    TransitDirections = new TransitDirections()
                    {
                        Routes = new[] {
                            new Route()
                            {
                                DepatureTime = now.AddMinutes(2),
                                ArrivalTime  = now.AddMinutes(32),
                                Steps        = new [] {
                                    new Step()
                                    {
                                        DepartureStop = new Stop()
                                        {
                                            Name = "Departure1"
                                        },
                                        ArrivalStop = new Stop()
                                        {
                                            Name = "Arrival1"
                                        },
                                        DepartureTime = now.AddMinutes(3),
                                        Line          = new Line()
                                        {
                                            ShortName = "Line1"
                                        },
                                        Headsign = "Direction1"
                                    },
                                    new Step()
                                    {
                                        DepartureStop = new Stop()
                                        {
                                            Name = "Departure2"
                                        },
                                        ArrivalStop = new Stop()
                                        {
                                            Name = "Arrival3"
                                        },
                                        DepartureTime = now.AddMinutes(16),
                                        Line          = new Line()
                                        {
                                            ShortName = "Line2"
                                        },
                                        Headsign = "Direction2"
                                    }
                                }
                            }
                        }
                    }
                }));
                var service = new DeviceDataService(focusStoreMock.Object,
                                                    deviceSyncStoreMock.Object,
                                                    calendarServiceMock.Object,
                                                    travelServiceMock.Object);
                var data = await service.GetDeviceData(userId, deviceId);

                Assert.Equal("subject", data.Event.Subject);
                Assert.Equal(now.AddMinutes(35), data.Event.Start);
                Assert.Equal(now.AddMinutes(2), data.Directions.DepartureTime);
                Assert.Equal(now.AddMinutes(32), data.Directions.ArrivalTime);
                Assert.Equal(2, data.Directions.Legs.Length);

                Assert.Equal(now.AddMinutes(3), data.Directions.Legs[0].DepartureTime);
                Assert.Equal("Line1", data.Directions.Legs[0].Line);
                Assert.Equal("Direction1", data.Directions.Legs[0].Direction);
                Assert.Equal("Departure1", data.Directions.Legs[0].DepartureStop);
                Assert.Equal("Arrival1", data.Directions.Legs[0].ArrivalStop);

                Assert.Equal(now.AddMinutes(16), data.Directions.Legs[1].DepartureTime);
                Assert.Equal("Line2", data.Directions.Legs[1].Line);
                Assert.Equal("Direction2", data.Directions.Legs[1].Direction);
                Assert.Equal("Departure2", data.Directions.Legs[1].DepartureStop);
                Assert.Equal("Arrival3", data.Directions.Legs[1].ArrivalStop);
            }