diff options
Diffstat (limited to 'Software/Visual_Studio')
53 files changed, 371 insertions, 123 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index 6d10e910e..1b96b27ce 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -753,7 +753,11 @@ <TextBlock VerticalAlignment="Center" Margin="40 0 0 0" FontSize="16" FontStyle="Italic" Foreground="Gray"> <Run>Total:</Run> - <Run Text="{Binding LiquidVolumesSum,Mode=OneWay,StringFormat=0}"></Run> + <Run Text="{Binding TotalLiquidVolume,Mode=OneWay,StringFormat=0}"></Run><Run>%</Run> + <Run>(</Run> + <Run FontSize="10" Text="{Binding TotalLiquidNanoliterPerCentimeter,Mode=OneWay,StringFormat=0.00}"></Run> + <Run FontSize="12">nl</Run> + <Run>)</Run> </TextBlock> </StackPanel> </Setter.Value> @@ -1000,7 +1004,7 @@ <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock VerticalAlignment="Center"> - <Run Text="{Binding IdsPack.DispenserType.NlPerPulse,StringFormat='0.0'}"></Run> + <Run Text="{Binding IdsPack.DispenserType.NlPerPulse,StringFormat='0.00'}"></Run> <Run Text="(nl)" FontSize="9" Foreground="Gray"></Run> </TextBlock> </DataTemplate> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs index e02b63000..0b487828b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Logging Module")] -[assembly: AssemblyVersion("2.0.12.1034")] +[assembly: AssemblyVersion("2.0.13.1537")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml index f1ead0cad..81ddfd184 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml @@ -241,7 +241,7 @@ <!--Content--> <Grid> <Border Margin="0 0 0 -23" VerticalAlignment="Bottom"> - <TextBlock Text="{Binding TechDispenser.Description}" FontSize="14" Foreground="DimGray" HorizontalAlignment="Center"></TextBlock> + <TextBlock Text="{Binding DisplayName}" FontSize="14" Foreground="DimGray" HorizontalAlignment="Center"></TextBlock> </Border> </Grid> <!--Content--> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml.cs index ca686d3e2..037e29b57 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml.cs @@ -117,24 +117,28 @@ namespace Tango.MachineStudio.Technician.Editors private void OnForwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); DispenserItem.RaiseAction(MotorActionType.ForwardPressed); AnimateRight(); } private void OnForwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); DispenserItem.RaiseAction(MotorActionType.ForwardReleased); StopAnimation(); } private void OnBackwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); DispenserItem.RaiseAction(MotorActionType.BackwardPressed); AnimateLeft(); } private void OnBackwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); DispenserItem.RaiseAction(MotorActionType.BackwardReleased); StopAnimation(); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml.cs index da65b9ab4..625473521 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml.cs @@ -117,24 +117,28 @@ namespace Tango.MachineStudio.Technician.Editors private void OnForwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); MotorItem.RaiseAction(MotorActionType.ForwardPressed); AnimateRight(); } private void OnForwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); MotorItem.RaiseAction(MotorActionType.ForwardReleased); StopAnimation(); } private void OnBackwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); MotorItem.RaiseAction(MotorActionType.BackwardPressed); AnimateLeft(); } private void OnBackwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); MotorItem.RaiseAction(MotorActionType.BackwardReleased); StopAnimation(); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml.cs index eaee03c2b..5d9954605 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml.cs @@ -118,24 +118,28 @@ namespace Tango.MachineStudio.Technician.Editors private void OnForwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); MotorGroupItem.RaiseAction(MotorActionType.ForwardPressed); AnimateRight(); } private void OnForwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); MotorGroupItem.RaiseAction(MotorActionType.ForwardReleased); StopAnimation(); } private void OnBackwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); MotorGroupItem.RaiseAction(MotorActionType.BackwardPressed); AnimateLeft(); } private void OnBackwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); MotorGroupItem.RaiseAction(MotorActionType.BackwardReleased); StopAnimation(); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml.cs index f5565a796..6de37f3a2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml.cs @@ -105,24 +105,28 @@ namespace Tango.MachineStudio.Technician.Editors private void OnForwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); ThreadMotionItem.RaiseAction(MotorActionType.ForwardPressed); AnimateRight(); } private void OnForwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); ThreadMotionItem.RaiseAction(MotorActionType.ForwardReleased); StopAnimation(); } private void OnBackwardPressed(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).CaptureMouse(); ThreadMotionItem.RaiseAction(MotorActionType.BackwardPressed); AnimateLeft(); } private void OnBackwardReleased(object sender, MouseButtonEventArgs e) { + (e.Source as FrameworkElement).ReleaseMouseCapture(); ThreadMotionItem.RaiseAction(MotorActionType.BackwardReleased); StopAnimation(); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/DispenserTemplate.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/DispenserTemplate.xaml index df9ebbd4e..d9c0a23e9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/DispenserTemplate.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/DispenserTemplate.xaml @@ -30,50 +30,10 @@ <StackPanel> <TextBlock FontSize="10">Selected Dispenser</TextBlock> <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.TechDispensers}" SelectedItem="{Binding TechDispenser,Mode=TwoWay}" DisplayMemberPath="Description" /> - </StackPanel> - </GroupBox> - <GroupBox Header="PARAMETERS" Margin="0 10 0 0"> - <editors:ParameterizedEditor ParameterizedObject="{Binding DispenserType}" Padding="10"> - <editors:ParameterizedEditor.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel></StackPanel> - </ItemsPanelTemplate> - </editors:ParameterizedEditor.ItemsPanel> - <editors:ParameterizedEditor.DoubleTemplate> - <DataTemplate> - <DockPanel> - <mahApps:NumericUpDown DockPanel.Dock="Right" Background="Transparent" BorderThickness="0 0 0 0" Value="{Binding Value,UpdateSourceTrigger=PropertyChanged}" HasDecimals="True" HorizontalContentAlignment="Center" Width="100" /> - <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> - </DockPanel> - </DataTemplate> - </editors:ParameterizedEditor.DoubleTemplate> - <editors:ParameterizedEditor.Int32Template> - <DataTemplate> - <DockPanel> - <DockPanel.Style> - <Style TargetType="DockPanel"> - <Style.Triggers> - <DataTrigger Binding="{Binding Name}" Value="Code"> - <Setter Property="Visibility" Value="Collapsed"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </DockPanel.Style> - <mahApps:NumericUpDown DockPanel.Dock="Right" Background="Transparent" BorderThickness="0 0 0 0" Value="{Binding Value,Converter={StaticResource DoubleToIntConverter},UpdateSourceTrigger=PropertyChanged}" HasDecimals="False" HorizontalContentAlignment="Center" Width="100" /> - <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> - </DockPanel> - </DataTemplate> - </editors:ParameterizedEditor.Int32Template> - <editors:ParameterizedEditor.BooleanTemplate> - <DataTemplate> - <DockPanel Margin="0 5 0 0"> - <ToggleButton DockPanel.Dock="Right" Width="100" IsChecked="{Binding Value}" HorizontalAlignment="Right" /> - <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> - </DockPanel> - </DataTemplate> - </editors:ParameterizedEditor.BooleanTemplate> - </editors:ParameterizedEditor> + <TextBlock FontSize="10" Margin="0 30 0 0">Display Name</TextBlock> + <TextBox Margin="0 5 0 0" Text="{Binding DisplayName,UpdateSourceTrigger=PropertyChanged}" /> + </StackPanel> </GroupBox> <GroupBox Header="COLOR" Margin="0 10 0 0"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs index 573e497d5..5acb2e7e5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs @@ -63,6 +63,7 @@ namespace Tango.MachineStudio.Technician.TechItems if (_techDispenser != null) { DispenserType = DispenserTypes.SingleOrDefault(x => x.Code == int.Parse(_techDispenser.Name.Replace("Dispenser", "")) - 1); + DisplayName = _techDispenser.Description; } } } @@ -149,6 +150,16 @@ namespace Tango.MachineStudio.Technician.TechItems set { _speed = value; RaisePropertyChangedAuto(); } } + private String _displayName; + /// <summary> + /// Gets or sets the display name. + /// </summary> + public String DisplayName + { + get { return _displayName; } + set { _displayName = value; RaisePropertyChangedAuto(); } + } + /// <summary> /// Initializes a new instance of the <see cref="DispenserItem"/> class. /// </summary> @@ -178,6 +189,7 @@ namespace Tango.MachineStudio.Technician.TechItems { DispenserItem cloned = base.Clone() as DispenserItem; cloned.TechDispenser = TechDispenser; + cloned.DisplayName = DisplayName; return cloned; } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs index a8f1af061..922153823 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Common Components")] -[assembly: AssemblyVersion("2.0.20.1034")] +[assembly: AssemblyVersion("2.0.21.1537")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphEx/Properties/AssemblyInfo.cs b/Software/Visual_Studio/SideChains/RealTimeGraphEx/Properties/AssemblyInfo.cs index 75102be4c..15363eae9 100644 --- a/Software/Visual_Studio/SideChains/RealTimeGraphEx/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/SideChains/RealTimeGraphEx/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.15.1034")] +[assembly: AssemblyVersion("1.0.16.1537")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/SideChains/Tango.AutoComplete/Properties/AssemblyInfo.cs b/Software/Visual_Studio/SideChains/Tango.AutoComplete/Properties/AssemblyInfo.cs index 17c46f230..8564cf502 100644 --- a/Software/Visual_Studio/SideChains/Tango.AutoComplete/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/SideChains/Tango.AutoComplete/Properties/AssemblyInfo.cs @@ -49,5 +49,5 @@ using System.Windows.Markup; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.15.1034")] +[assembly: AssemblyVersion("1.0.16.1537")] [assembly: AssemblyFileVersion("1.0.0.8")] diff --git a/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs b/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs index 81c0179db..15e9b69d9 100644 --- a/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs +++ b/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs @@ -16,6 +16,27 @@ namespace Tango.BL.Dispensing public class TransparentLiquidDispensingCalc : DispensingCalcBase { /// <summary> + /// Calculates the required nanoliter per centimeter. + /// </summary> + /// <param name="liquidVolume">The liquid volume.</param> + /// <returns></returns> + public override double CalculateNanoliterPerCentimeter(LiquidVolume liquidVolume) + { + if (liquidVolume.Configuration != null && liquidVolume.RML != null && liquidVolume.ProcessParametersTable != null) + { + double nlPcmSum = liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.NanoliterPerCentimeter); + double minInkUptake = liquidVolume.ProcessParametersTable.MinInkUptake; + double virtual_volume = Math.Max(0, minInkUptake - nlPcmSum); + return virtual_volume; + //(liquidVolume.Volume / 100d) * (Math.Min(liquidVolume.LiquidMaxNanoliterPerCentimeter, liquidVolume.ProcessParametersTable.MinInkUptake)); + } + else + { + return 0d; + } + } + + /// <summary> /// Coerces the specified liquid volume. /// </summary> /// <param name="liquidVolume">The liquid volume.</param> @@ -25,9 +46,9 @@ namespace Tango.BL.Dispensing if (liquidVolume.ProcessParametersTable != null) { double nlPcmSum = liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.NanoliterPerCentimeter); - double minInkUpdate = liquidVolume.ProcessParametersTable.MinInkUptake; - double volume = ((minInkUpdate - nlPcmSum) / minInkUpdate) * 100d; - return Math.Max(volume, 0); + double minInkUptake = liquidVolume.ProcessParametersTable.MinInkUptake; + double volume = ((liquidVolume.LiquidMaxNanoliterPerCentimeter - nlPcmSum) / liquidVolume.LiquidMaxNanoliterPerCentimeter) * 100d; + return Math.Max(100d - liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.Volume), 0); } else { diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs index 25b9c1764..c99efb802 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs @@ -240,7 +240,7 @@ namespace Tango.BL.Entities } [NotMapped] - public double LiquidVolumesSum + public double TotalLiquidVolume { get { @@ -248,6 +248,15 @@ namespace Tango.BL.Entities } } + [NotMapped] + public double TotalLiquidNanoliterPerCentimeter + { + get + { + return LiquidVolumes != null ? LiquidVolumes.Where(x => x.IdsPack.IdsPackFormula.Code != IdsPackFormulas.Lubricant.ToInt32()).Sum(x => x.NanoliterPerCentimeter) : 0; + } + } + #endregion #region Public Methods @@ -285,7 +294,8 @@ namespace Tango.BL.Entities private void LiquidVolume_VolumeChanged() { RaisePropertyChanged(nameof(IsLiquidVolumesOutOfRange)); - RaisePropertyChanged(nameof(LiquidVolumesSum)); + RaisePropertyChanged(nameof(TotalLiquidVolume)); + RaisePropertyChanged(nameof(TotalLiquidNanoliterPerCentimeter)); } public double GetVolume(int packIndex) @@ -361,6 +371,11 @@ namespace Tango.BL.Entities BrushStop cloned = base.Clone(); cloned.Segment = segment; cloned.SegmentGuid = segment.Guid; + + if (LiquidVolumes != null && LiquidVolumes.Count > 0) + { + cloned.LiquidVolumes = LiquidVolumes.Select(x => x.Clone(this)).ToObservableCollection(); + } return cloned; } diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs index 92ba204f2..fb7298957 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs @@ -426,7 +426,7 @@ namespace Tango.BL.Entities /// </summary> public Segment AddGradientSegment() { - return AddSolidSegment(10); + return AddGradientSegment(10); } /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs index a9cf64df5..d039def39 100644 --- a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs +++ b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs @@ -126,13 +126,15 @@ namespace Tango.BL { List<LiquidTypesRml> factors = Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == RML.Guid).ToList(); - if (BrushStop.LiquidVolumes.IndexOf(this) > factors.Count - 1) + int index = BrushStop.LiquidVolumes.IndexOf(this); + + if (index > factors.Count - 1 || index < 0) { return 0d; } else { - return factors[BrushStop.LiquidVolumes.IndexOf(this)].MaxNlPerCm; + return factors[index].MaxNlPerCm; } } else @@ -168,5 +170,13 @@ namespace Tango.BL return DispensingCalcService.CalculatePulsePerSecond(this); } } + + public LiquidVolume Clone(BrushStop stop) + { + LiquidVolume cloned = new LiquidVolume(Configuration, IdsPack, RML, ProcessParametersTable, stop); + cloned.DispenserStepDivision = DispenserStepDivision; + cloned.Volume = Volume; + return cloned; + } } } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContextExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesContextExtension.cs index e3575bfdc..bff778eec 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContextExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContextExtension.cs @@ -22,7 +22,7 @@ namespace Tango.BL /// </summary> /// <param name="path">The server file path.</param> /// <param name="isFile">if set to <c>true</c> will try to connect to an .mdf file.</param> - public ObservablesContext(String path) : base(ComposeConnectionString(path)) + public ObservablesContext(String path, String dbName) : base(ComposeConnectionString(path, dbName)) { Database.SetInitializer<ObservablesContext>(null); } @@ -42,15 +42,15 @@ namespace Tango.BL /// <param name="source">The source.</param> /// <param name="isFile">if set to <c>true</c> [is file].</param> /// <returns></returns> - private static String ComposeConnectionString(String source) + private static String ComposeConnectionString(String source, String dbName) { if (!File.Exists(source)) { - return String.Format("Data Source={0};Initial Catalog=Tango;Integrated Security=True;", source); + return String.Format("Data Source={0};Initial Catalog={1};Integrated Security=True;", source, dbName); } else { - return String.Format("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFileName={0};Initial Catalog=Tango;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework", Path.GetFullPath(source)); + return String.Format("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFileName={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework", Path.GetFullPath(source), dbName); } } @@ -65,7 +65,7 @@ namespace Tango.BL } /// <summary> - /// Creates a default remote database context by the address specified in <see cref="SettingsManager.Default.DataBase.SQLServerAddress" />. + /// Creates a default remote database context. /// </summary> /// <returns></returns> public static ObservablesContext CreateDefault(String dataSource) @@ -83,11 +83,20 @@ namespace Tango.BL } else { - return new ObservablesContext(source); + return new ObservablesContext(source, "Tango"); } } /// <summary> + /// Creates a default remote database context. + /// </summary> + /// <returns></returns> + public static ObservablesContext CreateDefault(String address, String database) + { + return new ObservablesContext(address, database); + } + + /// <summary> /// Saves all changes made in this context to the underlying database. /// </summary> /// <returns> diff --git a/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs index 49a366cce..37c2815fb 100644 --- a/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs @@ -4,4 +4,4 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Business logic components")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("2.0.25.1347")]
\ No newline at end of file +[assembly: AssemblyVersion("2.0.26.1537")]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.CodeGeneration/Properties/AssemblyInfo.cs index 13ef2c4e3..95bca0736 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.CodeGeneration/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Code Generation Components")] -[assembly: AssemblyVersion("2.0.12.1034")] +[assembly: AssemblyVersion("2.0.13.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorPicker/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.ColorPicker/Properties/AssemblyInfo.cs index e34a9f2b8..01bba5794 100644 --- a/Software/Visual_Studio/Tango.ColorPicker/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.ColorPicker/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Color Picker Control")] -[assembly: AssemblyVersion("2.0.15.1034")] +[assembly: AssemblyVersion("2.0.16.1537")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/Tango.Core/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Core/Properties/AssemblyInfo.cs index 794acfeef..70f8ae295 100644 --- a/Software/Visual_Studio/Tango.Core/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Core/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Core Components")] -[assembly: AssemblyVersion("2.0.24.1034")] +[assembly: AssemblyVersion("2.0.25.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.DAL.Local/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.DAL.Local/Properties/AssemblyInfo.cs index a1333931c..c8be9e57f 100644 --- a/Software/Visual_Studio/Tango.DAL.Local/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.DAL.Local/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Local Data Access Layer")] -[assembly: AssemblyVersion("2.0.12.1034")] +[assembly: AssemblyVersion("2.0.13.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.DAL.Remote/Properties/AssemblyInfo.cs index f33c1f8ee..4f9422b48 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Remote Data Access Layer")] -[assembly: AssemblyVersion("2.0.23.1034")] +[assembly: AssemblyVersion("2.0.24.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs index edff0e8c7..9d41c75b9 100644 --- a/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Drag & Drop Components")] -[assembly: AssemblyVersion("2.0.21.1034")] +[assembly: AssemblyVersion("2.0.22.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Editors/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Editors/Properties/AssemblyInfo.cs index a2f38b0fe..e492c7c5d 100644 --- a/Software/Visual_Studio/Tango.Editors/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Editors/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Visual Diagram Editing Components")] -[assembly: AssemblyVersion("2.0.15.1034")] +[assembly: AssemblyVersion("2.0.16.1537")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 984c4e7fe..4c8b0c20e 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -810,9 +810,10 @@ namespace Tango.Integration.Operation { if (!(ex is ContinuousResponseAbortedException)) { + Status = MachineStatuses.ReadyToDye; + if (!handler.IsCanceled) { - Status = MachineStatuses.ReadyToDye; PrintingFailed?.Invoke(this, new PrintingFailedEventArgs(handler, originalJob, ex)); handler.RaiseFailed(ex); LogRequestFailed(request, ex); diff --git a/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs index fc3c0cf66..83203f96a 100644 --- a/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Logging Library")] -[assembly: AssemblyVersion("2.0.22.1034")] +[assembly: AssemblyVersion("2.0.23.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs index b8012e703..3cc652d93 100644 --- a/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Logging Library")] -[assembly: AssemblyVersion("2.0.28.1034")] +[assembly: AssemblyVersion("2.0.29.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs index 7c462261f..139f3996c 100644 --- a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Message Repository")] -[assembly: AssemblyVersion("2.0.28.1347")] +[assembly: AssemblyVersion("2.0.29.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs index cefc51a37..9d199f73e 100644 --- a/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Components")] -[assembly: AssemblyVersion("2.0.24.1034")] +[assembly: AssemblyVersion("2.0.25.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.SQLExaminer/DbManager.cs b/Software/Visual_Studio/Tango.SQLExaminer/DbManager.cs index 1407ba37f..21c6af4b8 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/DbManager.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/DbManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -29,7 +30,7 @@ namespace Tango.SQLExaminer public void Create(String name) { EnsureOpen(); - String command = String.Format("CREATE DATABASE '{0}'", name); + String command = String.Format("CREATE DATABASE {0}", name); SqlCommand cmd = new SqlCommand(command, _connection); cmd.ExecuteNonQuery(); } @@ -61,7 +62,7 @@ namespace Tango.SQLExaminer public void Delete(String name) { EnsureOpen(); - String command = String.Format("DROP DATABASE '{0}'", name); + String command = String.Format("DROP DATABASE {0}", name); SqlCommand cmd = new SqlCommand(command, _connection); cmd.ExecuteNonQuery(); } @@ -69,7 +70,7 @@ namespace Tango.SQLExaminer public void SetOffline(String name) { EnsureOpen(); - String command = String.Format("ALTER DATABASE '{0}' SET OFFLINE WITH ROLLBACK IMMEDIATE", name); + String command = String.Format("ALTER DATABASE {0} SET OFFLINE WITH ROLLBACK IMMEDIATE", name); SqlCommand cmd = new SqlCommand(command, _connection); cmd.ExecuteNonQuery(); } @@ -77,9 +78,37 @@ namespace Tango.SQLExaminer public void SetOnline(String name) { EnsureOpen(); - String command = String.Format("ALTER DATABASE '{0}' SET ONLINE", name); + String command = String.Format("ALTER DATABASE {0} SET ONLINE", name); SqlCommand cmd = new SqlCommand(command, _connection); cmd.ExecuteNonQuery(); } + + public void CloneDB(String sourceDb, String backupPath, String targetDb, String targetMdf, String targetLdf) + { + EnsureOpen(); + + String command = String.Format("BACKUP DATABASE {0} TO DISK = '{1}' WITH INIT", sourceDb, backupPath); + SqlCommand cmd = new SqlCommand(command, _connection); + cmd.ExecuteNonQuery(); + + command = String.Format("RESTORE FILELISTONLY FROM DISK='{0}'", backupPath); + cmd = new SqlCommand(command, _connection); + + List<String> logical_names = new List<string>(); + + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + logical_names.Add(reader.GetString(reader.GetOrdinal("LogicalName"))); + } + } + + command = String.Format("RESTORE DATABASE {0} FROM DISK='{1}' WITH MOVE '{2}' TO '{3}', MOVE '{4}' TO '{5}'", targetDb, backupPath, logical_names[0], targetMdf, logical_names[1], targetLdf); + cmd = new SqlCommand(command, _connection); + cmd.ExecuteNonQuery(); + + File.Delete(backupPath); + } } } diff --git a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationBuilder.cs b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationBuilder.cs index bb1887877..aa75b9577 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationBuilder.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationBuilder.cs @@ -26,43 +26,49 @@ namespace Tango.SQLExaminer public ExaminerConfigurationBuilder SetSourceServer(String address, String databaseName, bool integratedSecurity = true, String userName = null, String password = null) { - var ds = new DataSource() + DataSource d1 = _config.DataSources.SingleOrDefault(x => x.ID == 1); + + if (d1 == null) { - ID = 1, - DataBase = databaseName, - Server = address, - UserName = userName, - Password = password, - }; + d1 = new DataSource(); + _config.DataSources.Add(d1); + } + + d1.ID = 1; + d1.DataBase = databaseName; + d1.Server = address; + d1.UserName = userName; + d1.Password = password; if (integratedSecurity) { - ds.IntegratedSecurity = "True"; + d1.IntegratedSecurity = "True"; } - _config.DataSources.Add(ds); - return this; } public ExaminerConfigurationBuilder SetTargetServer(String address, String databaseName, bool integratedSecurity = true, String userName = null, String password = null) { - var ds = new DataSource() + DataSource d2 = _config.DataSources.SingleOrDefault(x => x.ID == 2); + + if (d2 == null) { - ID = 2, - DataBase = databaseName, - Server = address, - UserName = userName, - Password = password, - }; + d2 = new DataSource(); + _config.DataSources.Add(d2); + } + + d2.ID = 2; + d2.DataBase = databaseName; + d2.Server = address; + d2.UserName = userName; + d2.Password = password; if (integratedSecurity) { - ds.IntegratedSecurity = "True"; + d2.IntegratedSecurity = "True"; } - _config.DataSources.Add(ds); - return this; } @@ -85,6 +91,20 @@ namespace Tango.SQLExaminer return this; } + public ExaminerConfigurationBuilder Synchronize() + { + var sync_action = _config.Actions.SingleOrDefault(x => x.Type == "synchronize"); + if (sync_action == null) + { + _config.Actions.Add(new Action() + { + Type = "synchronize" + }); + } + + return this; + } + public ExaminerConfigurationBuilder SetReportFile(String path) { var Report_action = _config.Actions.SingleOrDefault(x => x.Type == "report"); diff --git a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationType.cs b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationType.cs index 86fc70edd..d6f76018d 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationType.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerConfigurationType.cs @@ -10,6 +10,7 @@ namespace Tango.SQLExaminer { Schema, OverrideData, - ProvisionMachine + ProvisionMachine, + UpdateTwineDB, } } diff --git a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerDataReport.cs b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerDataReport.cs index 333b31202..e15f2c968 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerDataReport.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerDataReport.cs @@ -31,5 +31,13 @@ namespace Tango.SQLExaminer Summary = new List<CompareTable>(); Details = new List<CompareTable>(); } + + public bool HasDifferences + { + get + { + return Summary.Any(x => x.State == "Different"); + } + } } } diff --git a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerProcess.cs b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerProcess.cs index 8ec05c1e4..2cc93b138 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerProcess.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerProcess.cs @@ -4,6 +4,7 @@ using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.IO; namespace Tango.SQLExaminer { @@ -21,6 +22,13 @@ namespace Tango.SQLExaminer ProcessType = type; } + public ExaminerProcess(ExaminerConfiguration configuration, ExaminerProcessType type) + { + ConfigurationFile = TemporaryManager.Default.CreateFile(); + configuration.ToFile(ConfigurationFile); + ProcessType = type; + } + public Task<ExaminerProcessResult> Execute() { return Task.Factory.StartNew<ExaminerProcessResult>(() => diff --git a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerSchemaReport.cs b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerSchemaReport.cs index de983f692..5046a8cdf 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/ExaminerSchemaReport.cs +++ b/Software/Visual_Studio/Tango.SQLExaminer/ExaminerSchemaReport.cs @@ -23,5 +23,13 @@ namespace Tango.SQLExaminer Sources = new List<ReportSource>(); DbObjects = new List<ReportDbObject>(); } + + public bool HasDifferences + { + get + { + return DbObjects.Exists(x => !String.IsNullOrWhiteSpace(x.DifferIn) || x.Lines.Any(y => y.Status != "equal")); + } + } } } diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml Binary files differindex 066807077..3ec2890f9 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml Binary files differindex c2e57e4db..6c707578b 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/Schema.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/Schema.xml Binary files differindex c399ec620..d0f7ca478 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/Schema.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/Schema.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateTwineDB.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateTwineDB.xml Binary files differnew file mode 100644 index 000000000..97bf77ee5 --- /dev/null +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateTwineDB.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/Tango.SQLExaminer.csproj b/Software/Visual_Studio/Tango.SQLExaminer/Tango.SQLExaminer.csproj index 716278e71..7049b87a7 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/Tango.SQLExaminer.csproj +++ b/Software/Visual_Studio/Tango.SQLExaminer/Tango.SQLExaminer.csproj @@ -96,6 +96,9 @@ <Content Include="SQLExaminer\Configurations\Schema.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="SQLExaminer\Configurations\UpdateTwineDB.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="SQLExaminer\Interop.MSDASC.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> diff --git a/Software/Visual_Studio/Tango.Scripting/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Scripting/Properties/AssemblyInfo.cs index 323d6dcbd..a30b3b6c0 100644 --- a/Software/Visual_Studio/Tango.Scripting/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Scripting/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Roslyn Scripting Components")] -[assembly: AssemblyVersion("2.0.21.1034")] +[assembly: AssemblyVersion("2.0.22.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Serialization/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Serialization/Properties/AssemblyInfo.cs index acce511c1..84f44c52f 100644 --- a/Software/Visual_Studio/Tango.Serialization/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Serialization/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Serialization Components")] -[assembly: AssemblyVersion("2.0.23.1034")] +[assembly: AssemblyVersion("2.0.24.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Settings/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Settings/Properties/AssemblyInfo.cs index 34ccc7166..6a8c15230 100644 --- a/Software/Visual_Studio/Tango.Settings/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Settings/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Global Settings")] -[assembly: AssemblyVersion("2.0.23.1034")] +[assembly: AssemblyVersion("2.0.24.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.SharedUI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.SharedUI/Properties/AssemblyInfo.cs index 5651badea..eceecb3ab 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Shared UI Components")] -[assembly: AssemblyVersion("2.0.21.1034")] +[assembly: AssemblyVersion("2.0.22.1537")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/Tango.Synchronization/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Synchronization/Properties/AssemblyInfo.cs index 4bf1ca1e6..120cfae21 100644 --- a/Software/Visual_Studio/Tango.Synchronization/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Synchronization/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - DataBase Synchronization Components")] -[assembly: AssemblyVersion("2.0.12.1034")] +[assembly: AssemblyVersion("2.0.13.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.TFS/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.TFS/Properties/AssemblyInfo.cs index 4bc907b9a..03a3aa326 100644 --- a/Software/Visual_Studio/Tango.TFS/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.TFS/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - VSTS API Library")] -[assembly: AssemblyVersion("2.0.14.1034")] +[assembly: AssemblyVersion("2.0.15.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs index a800f8c76..118e71139 100644 --- a/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Transport Components")] -[assembly: AssemblyVersion("2.0.22.1034")] +[assembly: AssemblyVersion("2.0.23.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.UnitTesting/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.UnitTesting/Properties/AssemblyInfo.cs index 6cb3427ef..2e78a70d1 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.UnitTesting/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Unit Testing")] -[assembly: AssemblyVersion("2.0.5.1933")] +[assembly: AssemblyVersion("2.0.6.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.UnitTesting/SQLExaminer_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/SQLExaminer_TST.cs index 32cd3eedb..8aa1fe5a3 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/SQLExaminer_TST.cs +++ b/Software/Visual_Studio/Tango.UnitTesting/SQLExaminer_TST.cs @@ -7,6 +7,8 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; using Tango.Core.IO; using Tango.SQLExaminer; @@ -173,6 +175,9 @@ namespace Tango.UnitTesting public void Perform_Full_DataBase_Cycle() { String temp_folder = Helper.GetTempFolderPath(); + String report_file = Path.Combine(temp_folder, "report.xml"); + String config_file = Path.Combine(temp_folder, "config.xml"); + String machine_serial_number = "1111"; String tango_db = "Tango"; String source_db = "Source_DB_Test"; @@ -181,28 +186,146 @@ namespace Tango.UnitTesting DbManager db = new DbManager(new SqlConnection("Server=localhost\\SQLEXPRESS;Integrated security=SSPI")); Assert.IsTrue(db.Exists("Tango"), "Database Tango does not exists."); - Assert.IsFalse(db.Exists(source_db), source_db + " already exists."); - Assert.IsFalse(db.Exists(target_db), target_db + " already exists."); + if (db.Exists(source_db)) + { + db.Delete(source_db); + } + + if (db.Exists(target_db)) + { + db.Delete(target_db); + } - db.Create(source_db); + Assert.IsFalse(db.Exists(source_db), source_db + " exists."); + Assert.IsFalse(db.Exists(target_db), target_db + " exists."); + + //Clone Tango DB to SourceDB + db.CloneDB( + "Tango", + Path.Combine(temp_folder, "Tango.bak"), + source_db, + Path.Combine(temp_folder, "Source_DB_Test.mdf"), + Path.Combine(temp_folder, "Source_DB_Test.ldf")); + + //Create target database db.Create(target_db); + //Create schema configuration ExaminerConfigurationBuilder builder = new ExaminerConfigurationBuilder(ExaminerConfigurationType.Schema); builder. - SetSourceServer("localhost\\SQLEXPRESS", tango_db). - SetTargetServer("localhost\\SQLEXPRESS", source_db); + SetSourceServer("localhost\\SQLEXPRESS", source_db). + SetTargetServer("localhost\\SQLEXPRESS", target_db). + Synchronize(). + SetReportFile(report_file); - var config = builder.Build(); + //Synchronize Source schema with Target schema + ExaminerProcessResult result = new ExaminerProcess(builder.Build(), ExaminerProcessType.Schema).Execute().Result; - String config_path = Path.Combine(temp_folder, "schema.xml"); + var schema_report = ExaminerSchemaReport.FromFile(report_file); - config.ToFile(config_path); + //Synchronization was successful + Assert.AreEqual(result.ExitCode, ExaminerProcessExitCode.Success); - ExaminerProcess process = new ExaminerProcess(config_path, ExaminerProcessType.Schema); - var result = process.Execute().Result; + //Should have differences + Assert.IsTrue(schema_report.HasDifferences); + + //Create override data configuration + builder = new ExaminerConfigurationBuilder(ExaminerConfigurationType.OverrideData); + + builder. + SetSourceServer("localhost\\SQLEXPRESS", source_db). + SetTargetServer("localhost\\SQLEXPRESS", target_db). + Synchronize(). + SetReportFile(report_file); + + result = new ExaminerProcess(builder.Build(), ExaminerProcessType.Data).Execute().Result; + + //Synchronization was successful + Assert.AreEqual(result.ExitCode, ExaminerProcessExitCode.Success); + + var data_report = ExaminerDataReport.FromFile(report_file); + + //Should have differences + Assert.IsTrue(data_report.HasDifferences); + + //Provision Target + builder = new ExaminerConfigurationBuilder(ExaminerConfigurationType.ProvisionMachine); + + builder. + SetSourceServer("localhost\\SQLEXPRESS", source_db). + SetTargetServer("localhost\\SQLEXPRESS", target_db). + SetMachineSerialNumber(machine_serial_number). + Synchronize(). + SetReportFile(report_file); + result = new ExaminerProcess(builder.Build(), ExaminerProcessType.Data).Execute().Result; + + //Synchronization was successful + Assert.AreEqual(result.ExitCode, ExaminerProcessExitCode.Success); + + data_report = ExaminerDataReport.FromFile(report_file); + + //Should have differences + Assert.IsTrue(data_report.HasDifferences); + + //Check if machine exists in target + + String job_guid = String.Empty; + + using (var context = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS", target_db)) + { + context.Configuration.LazyLoadingEnabled = false; + Assert.IsTrue(context.Machines.Count() == 1); + Assert.IsTrue(context.Machines.Any(x => x.SerialNumber == machine_serial_number)); + + //Add new job to the target + Job job = new Job(); + job.Name = "Test Job"; + job.Machine = context.Machines.First(); + job.Rml = context.Rmls.First(); + job.ColorSpace = context.ColorSpaces.First(); + job.CreationDate = DateTime.UtcNow; + job.Description = "Description"; + job.SpoolType = context.SpoolTypes.First(); + job.User = context.Users.First(); + job.WindingMethod = context.WindingMethods.First(); + job.AddSolidSegment(); + job.AddGradientSegment(); + + context.Jobs.Add(job); + + context.SaveChanges(); + + job_guid = job.Guid; + + Assert.IsTrue(context.BrushStops.Count() == 3); + } + + //Update new job from target to source + builder = new ExaminerConfigurationBuilder(ExaminerConfigurationType.UpdateTwineDB); + + builder. + SetSourceServer("localhost\\SQLEXPRESS", target_db). + SetTargetServer("localhost\\SQLEXPRESS", source_db). + Synchronize(). + SetReportFile(report_file); + + result = new ExaminerProcess(builder.Build(), ExaminerProcessType.Data).Execute().Result; + + //Synchronization was successful Assert.AreEqual(result.ExitCode, ExaminerProcessExitCode.Success); + + data_report = ExaminerDataReport.FromFile(report_file); + + //Should have differences + Assert.IsTrue(data_report.HasDifferences); + + //Check the new job exists on source.. + using (var context = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS", source_db)) + { + Assert.IsTrue(context.Jobs.Any(x => x.Guid == job_guid)); + } } } } diff --git a/Software/Visual_Studio/Tango.Video/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Video/Properties/AssemblyInfo.cs index f8805ac55..423389e5c 100644 --- a/Software/Visual_Studio/Tango.Video/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Video/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Video Components")] -[assembly: AssemblyVersion("2.0.15.1034")] +[assembly: AssemblyVersion("2.0.16.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Properties/AssemblyInfo.cs index 833d5930c..4927e8081 100644 --- a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - DAL Observables Generator")] -[assembly: AssemblyVersion("2.0.5.1933")] +[assembly: AssemblyVersion("2.0.6.1537")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Properties/AssemblyInfo.cs index 18a7d4b6c..7eda87424 100644 --- a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Compilation CLI")] -[assembly: AssemblyVersion("2.0.20.1933")] +[assembly: AssemblyVersion("2.0.21.1537")] [assembly: ComVisible(false)]
\ No newline at end of file |
