public IHttpActionResult Put(ChangeDeviceViewModel device) { UserDeviceService userDeviceService = new UserDeviceService(); if (device == null) { return(BadRequest("Input is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var oldDevice = userDeviceService.GetById(device.Id); oldDevice.CacheData = device.CacheData; var result = userDeviceService.Update(oldDevice); if (result) { return(Ok()); } else { return(BadRequest("Entity cannot be modified")); } } catch (Exception e) { return(InternalServerError(e)); } }
public IHttpActionResult Post(AddNewDeviceViewModel addNewDeviceViewModel) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); if (addNewDeviceViewModel == null) { return(BadRequest("Input is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Device device = new Device() { AppUserId = userId, CacheData = addNewDeviceViewModel.CacheData.GetValueOrDefault(), Name = addNewDeviceViewModel.Name, SecretKey = Guid.NewGuid().ToString("n") }; try { userDeviceService.Create(device); } catch (Exception e) { return(InternalServerError(e)); } return(Ok(device)); }
public IHttpActionResult Get() { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); return Ok(userDeviceService.GetAllUserDevices(userId)); }
public IHttpActionResult Get() { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); return(Ok(userDeviceService.GetAllUserDevices(userId))); }
public IHttpActionResult GetDeviceDetails(string deviceId) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); Device device = userDeviceService.GetById(deviceId); if (device != null) { if (device.AppUserId == userId) { DeviceDetailsViewModel deviceDetailsViewModel = new DeviceDetailsViewModel() { ConnectionState = device.ConnectionState, LastPing = device.LastPing, Id = device.Id, ActualState = device.ActualState, Name = device.Name, SecretKey = device.SecretKey }; return(Ok(deviceDetailsViewModel)); } return(BadRequest("Device does not available")); } return(BadRequest("Device does not exist")); }
public IHttpActionResult GetDeviceStatesHistory(string deviceId, int startIndex = 0, int limit = 30) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); Device device = userDeviceService.GetById(deviceId); if (device != null) { if (device.AppUserId == userId) { var deviceStatesHistoryES = new EntityService <DeviceHistoricalState>(); var deviceStatesHistory = deviceStatesHistoryES.Collection.AsQueryable(). Where(x => x.DeviceId == deviceId). OrderByDescending(x => x.StateTransitionDateTime). Skip(startIndex). Take(limit). ToList(); return(Ok(deviceStatesHistory)); } return(BadRequest("Device does not available")); } return(BadRequest("Device does not exist")); }
public IHttpActionResult Post(AddNewNotificationRuleModel addNewNotificationRuleModel) { var userId = User.Identity.GetUserId(); NotificationRuleService notificationRuleService = new NotificationRuleService(); UserDeviceService userDeviceService = new UserDeviceService(); var sourceDevice = userDeviceService.Collection.Find( x => x.AppUserId == userId && x.Name == addNewNotificationRuleModel.SourceDeviceName).FirstOrDefault(); var targetDevice = userDeviceService.Collection.Find( x => x.AppUserId == userId && x.Name == addNewNotificationRuleModel.TargetDeviceName).FirstOrDefault(); if (sourceDevice != null && targetDevice != null) { var newRule = new NotificationRule() { AppUserId = userId, Id = ObjectId.GenerateNewId().ToString(), SourceDeviceId = sourceDevice.Id, SourceDeviceName = sourceDevice.Name, TargetDeviceId = targetDevice.Id, TargetDeviceName = targetDevice.Name, SourceMessage = addNewNotificationRuleModel.SourceMessage, TargetMessage = addNewNotificationRuleModel.TargetMessage }; notificationRuleService.Create(newRule); return Ok(newRule); } return BadRequest("Devices with such name do not exists"); }
public IHttpActionResult Post(AddNewNotificationRuleModel addNewNotificationRuleModel) { var userId = User.Identity.GetUserId(); NotificationRuleService notificationRuleService = new NotificationRuleService(); UserDeviceService userDeviceService = new UserDeviceService(); var sourceDevice = userDeviceService.Collection.Find( x => x.AppUserId == userId && x.Name == addNewNotificationRuleModel.SourceDeviceName).FirstOrDefault(); var targetDevice = userDeviceService.Collection.Find( x => x.AppUserId == userId && x.Name == addNewNotificationRuleModel.TargetDeviceName).FirstOrDefault(); if (sourceDevice != null && targetDevice != null) { var newRule = new NotificationRule() { AppUserId = userId, Id = ObjectId.GenerateNewId().ToString(), SourceDeviceId = sourceDevice.Id, SourceDeviceName = sourceDevice.Name, TargetDeviceId = targetDevice.Id, TargetDeviceName = targetDevice.Name, SourceMessage = addNewNotificationRuleModel.SourceMessage, TargetMessage = addNewNotificationRuleModel.TargetMessage }; notificationRuleService.Create(newRule); return(Ok(newRule)); } return(BadRequest("Devices with such name do not exists")); }
public IHttpActionResult SetDeviceState(SetDeviceStateData setDeviceStateData) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); if (setDeviceStateData == null) { return(BadRequest("Input is null")); } var device = userDeviceService.GetBySecretKey(setDeviceStateData.SecretKey); if (device != null) { DeviceHistoricalState deviceHistoricalState = new DeviceHistoricalState() { State = device.ActualState, StateTransitionDateTime = DateTime.Now, DeviceId = device.Id }; if (userDeviceService.UpdateDeviceState(device, setDeviceStateData.DeviceState)) { var historialStateES = new EntityService <DeviceHistoricalState>(); historialStateES.Create(deviceHistoricalState); IKernel kernel = new StandardKernel(new ConnectYourselfNinjectModule()); var deviceEventsContainer = kernel.Get <IDevicesEventsContainer>(); deviceEventsContainer.RegisterDeviceStateChangeEvent(new DeviceStateChangedEvent { DeviceId = device.Id, DateTime = deviceHistoricalState.StateTransitionDateTime, State = setDeviceStateData.DeviceState, AppUserId = device.AppUserId }); //send state change message to device if (device.ConnectionState == DeviveConnectionState.FullDuplex && !String.IsNullOrEmpty(device.ConnectionId)) { var devicesHub = GlobalHost.ConnectionManager.GetHubContext <DevicesHub>(); devicesHub.Clients.Client(device.ConnectionId).RemoteSetState(setDeviceStateData.DeviceState); } return(Ok()); } else { return(BadRequest("Failed to update state device")); } } else { return(BadRequest("Device does not exists")); } }
public async Task <ActionResult> ActivateDevice(long deviceId, string searchBadge, string searchModel, string searchOS, string sortField, string sortDirection, int?page, string showActive = "True", bool activate = true) { using (var service = new UserDeviceService(PrincipalName)) { if (activate) { await service.ActivateDevice(deviceId); } else { await service.InActivateDevice(deviceId); } } return(RedirectToAction("Index", new { searchBadge, searchModel, searchOS, sortField, sortDirection, page, showActive })); }
public static void OnUserDeviceMessageReceived(DeviceMessageEvent deviceMessageEvent) { var context = GlobalHost.ConnectionManager.GetHubContext<UsersHub>(); if (UsersConnections.ContainsKey(deviceMessageEvent.AppUserId)) { UserDeviceService userDeviceService = new UserDeviceService(); var device = userDeviceService.GetById(deviceMessageEvent.DeviceId); if (device != null) { var connection = UsersConnections[deviceMessageEvent.AppUserId]; context.Clients.Client(connection.ConnectionId).notifyAboutDeviceMessageReceived(new DeviceMessageReceivedNotification() { DateTime = deviceMessageEvent.DateTime, Message = deviceMessageEvent.Message, DeviceName = device.Name, Id = device.Id }); } } }
public static void OnUserDeviceMessageReceived(DeviceMessageEvent deviceMessageEvent) { var notificationRulesService = new NotificationRuleService(); var rules = notificationRulesService.Collection.Find( x => x.AppUserId == deviceMessageEvent.AppUserId && x.SourceDeviceId == deviceMessageEvent.DeviceId).ToList(); if (rules.Any()) { var deviceService = new UserDeviceService(); foreach (var notificationRule in rules) { if (notificationRule.SourceMessage == deviceMessageEvent.Message) { var device = deviceService.GetById(notificationRule.TargetDeviceId); if (device.ConnectionState == DeviveConnectionState.FullDuplex && !String.IsNullOrEmpty(device.ConnectionId)) { var devicesHub = GlobalHost.ConnectionManager.GetHubContext<DevicesHub>(); devicesHub.Clients.Client(device.ConnectionId).NotificationRule(notificationRule.TargetMessage); } } } } }
public async Task <ActionResult> Index(string deviceGuid, string searchModel, string searchOS, string sortField, string sortDirection, int page = 1, string showActive = "True") { IPagedList <Device> pagedDevices; //Persit information for next page load ViewBag.SearchDevice = deviceGuid; ViewBag.SearchModel = searchModel; ViewBag.SearchOS = searchOS; ViewBag.SortField = sortField ?? Namefieldname; ViewBag.ShowActive = showActive; ViewBag.SortDirection = sortDirection ?? Ascending; ViewBag.Page = page; bool?active; if (showActive.Equals("All", StringComparison.CurrentCultureIgnoreCase)) { active = null; } else { active = showActive == "True"; } using (var service = new UserDeviceService()) { pagedDevices = await service.GetDevicesAsync(new DeviceSearchContext { DeviceGuid = deviceGuid, Model = searchModel, Os = searchOS, Active = active, SortField = sortField, SortDirection = sortDirection == "descending" ? SortDirection.Descending : SortDirection.Ascending, PageNumber = page }); } return(View(pagedDevices)); }
public IHttpActionResult Delete(string id) { UserDeviceService userDeviceService = new UserDeviceService(); if (id.IsNullOrWhiteSpace()) { return(BadRequest("Input is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { userDeviceService.Delete(id); return(Ok()); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <ActionResult> Index(string searchBadge, string searchModel, string searchOS, string sortField, string sortDirection, string showActive = "True") { IEnumerable <UserDevice> userDevices; //Persit information for next page load ViewBag.SearchBadge = searchBadge; ViewBag.SearchModel = searchModel; ViewBag.SearchOS = searchOS; ViewBag.SortField = sortField ?? Namefieldname; ViewBag.ShowActive = showActive; ViewBag.SortDirection = sortDirection ?? Ascending; bool?active; if (showActive.Equals("All", StringComparison.CurrentCultureIgnoreCase)) { active = null; } else { active = showActive == "True"; } using (var service = new UserDeviceService()) { userDevices = await service.GetUserDevicesAsync(new UserDeviceSearchContext { Badge = searchBadge, Model = searchModel, Os = searchOS, Active = active, SortField = sortField, SortDirection = sortDirection == "descending" ? SortDirection.Descending : SortDirection.Ascending, }); } return(View(userDevices)); }
public IHttpActionResult GetDeviceStatesHistory(string deviceId, int startIndex = 0, int limit = 30) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); Device device = userDeviceService.GetById(deviceId); if (device != null) { if (device.AppUserId == userId) { var deviceStatesHistoryES = new EntityService<DeviceHistoricalState>(); var deviceStatesHistory = deviceStatesHistoryES.Collection.AsQueryable(). Where(x => x.DeviceId == deviceId). OrderByDescending(x => x.StateTransitionDateTime). Skip(startIndex). Take(limit). ToList(); return Ok(deviceStatesHistory); } return BadRequest("Device does not available"); } return BadRequest("Device does not exist"); }
public static void OnUserDeviceMessageReceived(DeviceMessageEvent deviceMessageEvent) { var context = GlobalHost.ConnectionManager.GetHubContext <UsersHub>(); if (UsersConnections.ContainsKey(deviceMessageEvent.AppUserId)) { UserDeviceService userDeviceService = new UserDeviceService(); var device = userDeviceService.GetById(deviceMessageEvent.DeviceId); if (device != null) { var connection = UsersConnections[deviceMessageEvent.AppUserId]; context.Clients.Client(connection.ConnectionId).notifyAboutDeviceMessageReceived(new DeviceMessageReceivedNotification() { DateTime = deviceMessageEvent.DateTime, Message = deviceMessageEvent.Message, DeviceName = device.Name, Id = device.Id }); } } }
public IHttpActionResult GetDeviceDetails(string deviceId) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); Device device = userDeviceService.GetById(deviceId); if (device != null) { if (device.AppUserId == userId) { DeviceDetailsViewModel deviceDetailsViewModel = new DeviceDetailsViewModel() { ConnectionState = device.ConnectionState, LastPing = device.LastPing, Id = device.Id, ActualState = device.ActualState, Name = device.Name, SecretKey = device.SecretKey }; return Ok(deviceDetailsViewModel); } return BadRequest("Device does not available"); } return BadRequest("Device does not exist"); }
public async Task <ActionResult> Index(string searchBadge, string sortField, string sortDirection, int page = 1, string showActive = "True") { IPagedList <User> pagedUsers; //Persit information for next page load ViewBag.SearchBadge = searchBadge; ViewBag.SortField = sortField ?? Namefieldname; ViewBag.ShowActive = showActive; ViewBag.SortDirection = sortDirection ?? Ascending; ViewBag.Page = page; bool?active; if (showActive.Equals("All", StringComparison.CurrentCultureIgnoreCase)) { active = null; } else { active = showActive.Equals("True", StringComparison.InvariantCultureIgnoreCase); } using (var service = new UserDeviceService()) { pagedUsers = await service.GetUsersAsync(new UserSearchContext { Badge = searchBadge, Active = active, SortField = sortField, SortDirection = sortDirection == "descending" ? SortDirection.Descending : SortDirection.Ascending, PageNumber = page }); } return(View(pagedUsers)); }
public static void OnUserDeviceMessageReceived(DeviceMessageEvent deviceMessageEvent) { var notificationRulesService = new NotificationRuleService(); var rules = notificationRulesService.Collection.Find( x => x.AppUserId == deviceMessageEvent.AppUserId && x.SourceDeviceId == deviceMessageEvent.DeviceId).ToList(); if (rules.Any()) { var deviceService = new UserDeviceService(); foreach (var notificationRule in rules) { if (notificationRule.SourceMessage == deviceMessageEvent.Message) { var device = deviceService.GetById(notificationRule.TargetDeviceId); if (device.ConnectionState == DeviveConnectionState.FullDuplex && !String.IsNullOrEmpty(device.ConnectionId)) { var devicesHub = GlobalHost.ConnectionManager.GetHubContext <DevicesHub>(); devicesHub.Clients.Client(device.ConnectionId).NotificationRule(notificationRule.TargetMessage); } } } } }
public IHttpActionResult Delete(string id) { UserDeviceService userDeviceService = new UserDeviceService(); if (id.IsNullOrWhiteSpace()) { return BadRequest("Input is null"); } if (!ModelState.IsValid) { return BadRequest(ModelState); } try { userDeviceService.Delete(id); return Ok(); } catch (Exception e) { return InternalServerError(e); } }
public IHttpActionResult Put(ChangeDeviceViewModel device) { UserDeviceService userDeviceService = new UserDeviceService(); if (device == null) { return BadRequest("Input is null"); } if (!ModelState.IsValid) { return BadRequest(ModelState); } try { var oldDevice = userDeviceService.GetById(device.Id); oldDevice.CacheData = device.CacheData; var result = userDeviceService.Update(oldDevice); if (result) { return Ok(); } else { return BadRequest("Entity cannot be modified"); } } catch (Exception e) { return InternalServerError(e); } }
public IHttpActionResult SetDeviceState(SetDeviceStateData setDeviceStateData) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); if (setDeviceStateData == null) { return BadRequest("Input is null"); } var device = userDeviceService.GetBySecretKey(setDeviceStateData.SecretKey); if (device != null) { DeviceHistoricalState deviceHistoricalState = new DeviceHistoricalState() { State = device.ActualState, StateTransitionDateTime = DateTime.Now, DeviceId = device.Id }; if (userDeviceService.UpdateDeviceState(device, setDeviceStateData.DeviceState)) { var historialStateES = new EntityService<DeviceHistoricalState>(); historialStateES.Create(deviceHistoricalState); IKernel kernel = new StandardKernel(new ConnectYourselfNinjectModule()); var deviceEventsContainer = kernel.Get<IDevicesEventsContainer>(); deviceEventsContainer.RegisterDeviceStateChangeEvent(new DeviceStateChangedEvent { DeviceId = device.Id, DateTime = deviceHistoricalState.StateTransitionDateTime, State = setDeviceStateData.DeviceState, AppUserId = device.AppUserId }); //send state change message to device if (device.ConnectionState == DeviveConnectionState.FullDuplex && !String.IsNullOrEmpty(device.ConnectionId)) { var devicesHub = GlobalHost.ConnectionManager.GetHubContext<DevicesHub>(); devicesHub.Clients.Client(device.ConnectionId).RemoteSetState(setDeviceStateData.DeviceState); } return Ok(); } else { return BadRequest("Failed to update state device"); } } else { return BadRequest("Device does not exists"); } }
public DevicesController(UserDeviceService userDeviceService) { _userDeviceService = userDeviceService; }
public IHttpActionResult Post(AddNewDeviceViewModel addNewDeviceViewModel) { var userId = User.Identity.GetUserId(); UserDeviceService userDeviceService = new UserDeviceService(); if (addNewDeviceViewModel == null) { return BadRequest("Input is null"); } if (!ModelState.IsValid) { return BadRequest(ModelState); } Device device = new Device() { AppUserId = userId, CacheData = addNewDeviceViewModel.CacheData.GetValueOrDefault(), Name = addNewDeviceViewModel.Name, SecretKey = Guid.NewGuid().ToString("n") }; try { userDeviceService.Create(device); } catch (Exception e) { return InternalServerError(e); } return Ok(device); }
public DevicesHub() { UserDeviceService = new UserDeviceService(); }
public EventController(UserDeviceService userDeviceService) { _userDeviceService = userDeviceService; }