/// <summary> /// Update New Device /// </summary> public Device UpdateDevice(ChildDevices childDevices) { using (var context = new CustomerInfoRepository()) { var updating = context.Devices.SingleOrDefault(x => x.Id == childDevices.Id); if (updating != null) { updating.Updated = DateTime.UtcNow; foreach (var childDevice in updating.ChildDevices.ToArray()) { context.ChildDevices.Remove(childDevice); } var newChildDevice = new ChildDevice { DeviceId = updating.Id, ChildId = childDevices.ChildId }; context.ChildDevices.Add(newChildDevice); updating.ChildDevices.Add(newChildDevice); if (childDevices.Name != null) updating.Name = childDevices.Name; if (childDevices.Avatar != null) updating.Avatar = childDevices.Avatar; if (childDevices.OnlineTimeFrames != null) updating.OnlineTimeFrames = childDevices.OnlineTimeFrames; if (childDevices.OnlineWebTimeFrames != null) updating.OnlineWebTimeFrames = childDevices.OnlineWebTimeFrames; if (childDevices.BlockedURLs != null) updating.BlockedUrls = childDevices.BlockedURLs; if (childDevices.Obs != null) updating.Obs = childDevices.Obs; if (childDevices.Type != null) updating.Type = childDevices.Type; try { context.SaveChanges(); } catch (Exception) { return null; } var repository = new CustomerRepository(); repository.UpdateBlocker(childDevices.LicenseId, childDevices.ChildId, childDevices.Id, childDevices.BlockedURLs); repository.UpdateOnlineTime(childDevices.LicenseId, childDevices.ChildId, childDevices.Id, childDevices.OnlineTimeFrames, childDevices.OnlineWebTimeFrames); return updating; } else { return null; } } }
/// <summary> /// Get All Devices /// </summary> public IEnumerable<DtoDevice> GetAllDevices(string licenseid, int minutes) { using (var context = new CustomerInfoRepository()) { var devices = context.Devices.Where(x => x.LicenseId == licenseid) .Select(x => new DtoDevice { LicenseId = x.LicenseId, TbpId = x.TbpId, ChildIds = x.ChildDevices.Select(c => c.ChildId), Id = x.Id, Name = x.Name, Avatar = x.Avatar, Onlinetimeframes = x.OnlineTimeFrames, Onlinewebtimeframes = x.OnlineWebTimeFrames, BlockedUrls = x.BlockedUrls, Obs = x.Obs, CreationTime = x.Created, UpdateTime = x.Updated, Version = x.Version, Type = x.Type }).ToArray(); var dbloggerhelper = new CustomerRepository(); foreach (var device in devices) { if (dbloggerhelper.GetOnlineTimeByDevice(device.Id, minutes)) device.Online = true; else device.Online = false; } return devices; } }
public Boolean InsertDevice(ChildDevices childDevices) { // define defaults blocked classes if (childDevices.BlockedURLs == null) childDevices.BlockedURLs = ConfigurationManager.AppSettings["DefaultBlockedURLs"]; var device = new Device { LicenseId = childDevices.LicenseId, TbpId = childDevices.Tbpid, Name = childDevices.Name, Avatar = childDevices.Avatar, OnlineTimeFrames = childDevices.OnlineTimeFrames, OnlineWebTimeFrames = childDevices.OnlineWebTimeFrames, BlockedUrls = childDevices.BlockedURLs, Obs = "", Created = DateTime.UtcNow, Updated = DateTime.UtcNow, Version = "1.0", Type = childDevices.Type, ChildDevices = new Collection<ChildDevice> { new ChildDevice { ChildId = childDevices.ChildId } } }; using (var context = new CustomerInfoRepository()) { context.Devices.Add(device); try { context.SaveChanges(); } catch (Exception) { return false; } } var repository = new CustomerRepository(); repository.InsertBlocker(childDevices.LicenseId, childDevices.ChildId, device.Id, childDevices.BlockedURLs); repository.InsertOnlineTime(childDevices.LicenseId, childDevices.ChildId, device.Id, childDevices.OnlineTimeFrames, childDevices.OnlineWebTimeFrames); return true; }