public void CanSetProjectDeviceMappingsTwice() { using (var dbFactory = new TestDbConnectionFactory()) using (var conn = dbFactory.Database()) { var project = new Project { Name = "Test" }; var device = new Device { IpAddress = "192.168.1.1", Name = "MyTestDevice" }; project = ProjectActions.CreateProject(project).Function(conn); var projectDevice = DeviceActions.AddDeviceToProject(project.Id, device).Function(conn); var projectDeviceVersion = ProjectDeviceActions.SetLatestProjectDeviceVersion(new ProjectDeviceVersion { ProjectDeviceId = projectDevice.Id, HorizontalPercentage = 100, VerticalPercentage = 100, NumberOfHorizontalPixels = 50, NumberOfVerticalPixels = 50, StartAtHorizontalPercentage = 0, StartAtVerticalPercentage = 0 }).Function(conn); var firstMappings = new List <ProjectDeviceVersionMapping> { new ProjectDeviceVersionMapping { HorizontalPosition = 1, VerticalPosition = 1, MappingOrder = 1 } }; var secondMappings = new List <ProjectDeviceVersionMapping> { new ProjectDeviceVersionMapping { HorizontalPosition = 1, VerticalPosition = 1, MappingOrder = 1, }, new ProjectDeviceVersionMapping { HorizontalPosition = 2, VerticalPosition = 1, MappingOrder = 2 } }; ProjectDeviceActions.SetProjectDeviceMappings(projectDeviceVersion.Id, firstMappings).Function(conn); ProjectDeviceActions.SetProjectDeviceMappings(projectDeviceVersion.Id, secondMappings).Function(conn); var result = ProjectDeviceActions.GetProjectDeviceMappings(projectDeviceVersion.Id).Function(conn); Assert.Equal(2, result.Count()); } }
public byte[] ProcessBitmap(Bitmap bitmap, ProjectDeviceVersion projectDeviceVersion) { Guard.This(bitmap).AgainstDefaultValue("Bitmap cannot be null"); var mappings = dispatcher.Dispatch(ProjectDeviceActions.GetProjectDeviceMappings(projectDeviceVersion.Id)); var data = new List <byte> { 0, 0, 0, 0 }; var xPercentagePixelGap = (double)(projectDeviceVersion.HorizontalPercentage) / (double)(projectDeviceVersion.NumberOfHorizontalPixels - 1); var yPercentagePixelGap = (double)(projectDeviceVersion.VerticalPercentage) / (double)(projectDeviceVersion.NumberOfVerticalPixels - 1); foreach (var mapping in mappings.OrderBy(m => m.MappingOrder)) { var xPercent = projectDeviceVersion.StartAtHorizontalPercentage + (mapping.HorizontalPosition - 1) * xPercentagePixelGap; var yPercent = projectDeviceVersion.StartAtVerticalPercentage + (mapping.VerticalPosition - 1) * yPercentagePixelGap; var x = (int)Math.Round(xPercent * bitmap.Width / 100, 0); var y = (int)Math.Round(yPercent * bitmap.Height / 100, 0); x = x >= bitmap.Width ? bitmap.Width - 1 : x; y = y >= bitmap.Height ? bitmap.Height - 1 : y; try { var pixelColor = bitmap.GetPixel(x, y); data.Add(pixelColor.R); data.Add(pixelColor.G); data.Add(pixelColor.B); } catch { throw; } } return(data.ToArray()); }
public GlobalJsonResult <IEnumerable <ProjectDeviceVersionMapping> > GetProjectDeviceMappings(int projectDeviceVersionId) { var result = dispatcher.Dispatch(ProjectDeviceActions.GetProjectDeviceMappings(projectDeviceVersionId)); return(GlobalJsonResult <IEnumerable <ProjectDeviceVersionMapping> > .Success(System.Net.HttpStatusCode.OK, result)); }