Browse Source

Porsche image update

Robert 1 year ago
parent
commit
cb2a808d74

+ 1 - 1
GitVersion.yml

@@ -1,6 +1,6 @@
 assembly-versioning-scheme: MajorMinorPatch
 assembly-informational-format: '{ShortSha}'
-next-version: 1.1.0
+next-version: 1.2.0
 branches: {}
 ignore:
   sha: []

+ 15 - 1
VideoImageBuilder/MainWindow.xaml

@@ -54,7 +54,7 @@
                         FontWeight="SemiBold" />
                     <ListView
                         x:Name="uxMenuListView"
-                        Height="150"
+                        Height="180"
                         FontSize="15"
                         Background="Transparent"
                         SelectionChanged="uxMenuListView_SelectionChanged">
@@ -86,6 +86,20 @@
                                     FontSize="15" />
                             </StackPanel>
                         </ListViewItem>
+                        <ListViewItem x:Name="uxImageSelectViewItem" Padding="1">
+                            <StackPanel Orientation="Horizontal">
+                                <md:PackIcon
+                                    Margin="16,12,6,12"
+                                    VerticalAlignment="Center"
+                                    Kind="ImageOutline" />
+                                <TextBlock
+                                    Margin="12"
+                                    HorizontalAlignment="Left"
+                                    VerticalAlignment="Center"
+                                    Text="Image Select"
+                                    FontSize="15" />
+                            </StackPanel>
+                        </ListViewItem>
                     </ListView>
                     <TextBlock
                         Margin="17,0,0,0"

+ 3 - 0
VideoImageBuilder/MainWindow.xaml.cs

@@ -98,6 +98,9 @@ namespace VideoImageBuilder
                 case "uxVideoSelectViewItem":
                     subPage = new VideoSelectUc();
                     break;
+                case "uxImageSelectViewItem":
+                    subPage = new ImageSelectUc();
+                    break;
                 case "uxGenerateImageViewItem":
                     subPage = new GenerateImageUc();
                     break;

+ 4 - 4
VideoImageBuilder/Properties/AssemblyInfo.cs

@@ -50,7 +50,7 @@ using System.Windows;
 //
 // 您可以指定所有的值,也可以使用 '*' 將組建和修訂編號
 // 設為預設,如下所示:
-// [assembly: AssemblyVersion("1.0.3.0")]
-[assembly: AssemblyVersion("1.0.3.0")]
-[assembly: AssemblyFileVersion("1.0.3.0")]
-[assembly: AssemblyInformationalVersion("edd4976")]
+// [assembly: AssemblyVersion("1.2.0.0")]
+[assembly: AssemblyVersion("1.2.0.0")]
+[assembly: AssemblyFileVersion("1.2.0.0")]
+[assembly: AssemblyInformationalVersion("dc9a947")]

+ 4 - 4
VideoImageBuilder/Service/AppSettingService.cs

@@ -26,11 +26,11 @@ namespace VideoImageBuilder.Service
 
         private AppSettingService()
         {
-            this.context = VideoImageBuilderContext.Instance;
+            this.context = ImageBuilderContext.Instance;
         }
 
         public const string settingFileName = "app.ini";
-        private readonly VideoImageBuilderContext context;
+        private readonly ImageBuilderContext context;
 
         public void LoadSetting()
         {
@@ -39,10 +39,10 @@ namespace VideoImageBuilder.Service
                 return;
             }
 
-            VideoImageBuilderContext setting = null;
+            ImageBuilderContext setting = null;
             try
             {
-                setting = JsonConvert.DeserializeObject<VideoImageBuilderContext>(File.ReadAllText(settingFileName));
+                setting = JsonConvert.DeserializeObject<ImageBuilderContext>(File.ReadAllText(settingFileName));
             }
             catch
             {

+ 19 - 5
VideoImageBuilder/Service/VideoImageBuilderContext.cs → VideoImageBuilder/Service/ImageBuilderContext.cs

@@ -7,22 +7,22 @@ using System.Threading.Tasks;
 
 namespace VideoImageBuilder.Service
 {
-    public class VideoImageBuilderContext : INotifyPropertyChanged
+    public class ImageBuilderContext : INotifyPropertyChanged
     {
-        private static VideoImageBuilderContext _Instance;
-        public static VideoImageBuilderContext Instance
+        private static ImageBuilderContext _Instance;
+        public static ImageBuilderContext Instance
         {
             get
             {
                 if (_Instance == null)
                 {
-                    _Instance = new VideoImageBuilderContext();
+                    _Instance = new ImageBuilderContext();
                 }
                 return _Instance;
             }
         }
 
-        private VideoImageBuilderContext() { }
+        private ImageBuilderContext() { }
 
 
         private string _ChargeboxId;
@@ -67,6 +67,20 @@ namespace VideoImageBuilder.Service
             }
         }
 
+        private string _ImagePath1;
+        public string ImagePath1
+        {
+            get { return _ImagePath1; }
+            set
+            {
+                if (_ImagePath1 != value)
+                {
+                    _ImagePath1 = value;
+                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ImagePath1)));
+                }
+            }
+        }
+
         private string _OutPutFolderPath;
         public string OutPutFolderPath
         {

+ 11 - 3
VideoImageBuilder/Service/VideoImageBuilerService.cs → VideoImageBuilder/Service/ImageBuilerService.cs

@@ -9,7 +9,7 @@ using System.Threading.Tasks;
 
 namespace VideoImageBuilder.Service
 {
-    public class VideoImageBuilerService
+    public class ImageBuilerService
     {
         public static readonly string ZIP_SOURCE_DIRECTORY = Environment.CurrentDirectory + @"\ZipSource";
         public static readonly string ZIP_FILE_DIRECTORY = Environment.CurrentDirectory + @"\ZipFile";
@@ -17,11 +17,13 @@ namespace VideoImageBuilder.Service
 
         public const string ZIP_Video1_Name = "97_ScreenSave.mp4";
         public const string ZIP_Video2_Name = "99_AD.mp4";
+        public const string ZIP_Image1_Name = "300_SelectGun";
 
         public Result Generate(
             string chargeboxId,
             string videoPath1,
             string videoPath2,
+            string imagePath1,
             string outputFolderPath
             )
         {
@@ -32,7 +34,7 @@ namespace VideoImageBuilder.Service
             }
 
             string temZipPath = Path.Combine(ZIP_FILE_DIRECTORY, TEMP_ZIP_FILE_NAME);
-            var createZipFileResult = CreateZipFile(temZipPath, videoPath1, videoPath2);
+            var createZipFileResult = CreateZipFile(temZipPath, videoPath1, videoPath2, imagePath1);
             if (!createZipFileResult)
             {
                 return new Result() { Success = false, Message = "CreateZipFile Failed" };
@@ -64,7 +66,7 @@ namespace VideoImageBuilder.Service
             }
         }
 
-        private static bool CreateZipFile(string zipPath, string videoPath1, string videoPath2)
+        private static bool CreateZipFile(string zipPath, string videoPath1, string videoPath2, string imagePath1)
         {
             try
             {
@@ -78,6 +80,12 @@ namespace VideoImageBuilder.Service
                     File.Copy(videoPath2, Path.Combine(ZIP_SOURCE_DIRECTORY, ZIP_Video2_Name), true);
                 }
 
+                if (!string.IsNullOrEmpty(imagePath1) && File.Exists(imagePath1))
+                {
+                    var extention = Path.GetExtension(imagePath1);
+                    File.Copy(imagePath1, Path.Combine(ZIP_SOURCE_DIRECTORY, ZIP_Image1_Name + extention), true);
+                }
+
                 ZipFile.CreateFromDirectory(ZIP_SOURCE_DIRECTORY, zipPath, CompressionLevel.Fastest, false);
                 return true;
             }

+ 14 - 6
VideoImageBuilder/Service/UiGenerateImageService.cs

@@ -12,12 +12,12 @@ namespace VideoImageBuilder.Service
     {
         public UiGenerateImageService()
         {
-            this.uiContext = VideoImageBuilderContext.Instance;
-            this.videoImageBuilerService = new VideoImageBuilerService();
+            this.uiContext = ImageBuilderContext.Instance;
+            this.videoImageBuilerService = new ImageBuilerService();
         }
 
-        private readonly VideoImageBuilderContext uiContext;
-        private readonly VideoImageBuilerService videoImageBuilerService;
+        private readonly ImageBuilderContext uiContext;
+        private readonly ImageBuilerService videoImageBuilerService;
 
         internal void Start()
         {
@@ -30,6 +30,7 @@ namespace VideoImageBuilder.Service
                 uiContext.ChargeboxId,
                 uiContext.VideoPath1,
                 uiContext.VideoPath2,
+                uiContext.ImagePath1,
                 uiContext.OutPutFolderPath
                 );
 
@@ -57,9 +58,11 @@ namespace VideoImageBuilder.Service
                 MessageBox.Show("ChargeboxId shoud not be empty");
                 return false;
             }
-            if (string.IsNullOrEmpty(uiContext.VideoPath1) && string.IsNullOrEmpty(uiContext.VideoPath2))
+            if (string.IsNullOrEmpty(uiContext.VideoPath1) && 
+                string.IsNullOrEmpty(uiContext.VideoPath2) &&
+                string.IsNullOrEmpty(uiContext.ImagePath1))
             {
-                MessageBox.Show("video file path should not be empty");
+                MessageBox.Show("at least one update is required");
                 return false;
             }
             if (!string.IsNullOrEmpty(uiContext.VideoPath1) && !File.Exists(uiContext.VideoPath1))
@@ -72,6 +75,11 @@ namespace VideoImageBuilder.Service
                 MessageBox.Show("Horizontal AD video file not found");
                 return false;
             }
+            if (!string.IsNullOrEmpty(uiContext.ImagePath1) && !File.Exists(uiContext.ImagePath1))
+            {
+                MessageBox.Show("Frontpage image file not found");
+                return false;
+            }
             if (string.IsNullOrEmpty(uiContext.OutPutFolderPath))
             {
                 MessageBox.Show("Output folder path should not be empty");

+ 2 - 2
VideoImageBuilder/SubPage/GenerateImageUc.xaml.cs

@@ -26,14 +26,14 @@ namespace VideoImageBuilder.SubPage
         public GenerateImageUc()
         {
             InitializeComponent();
-            this.context = VideoImageBuilderContext.Instance;
+            this.context = ImageBuilderContext.Instance;
             this.DataContext = this.context;
 
             this.uiGenerateImageService = new UiGenerateImageService();
 
         }
 
-        private readonly VideoImageBuilderContext context;
+        private readonly ImageBuilderContext context;
         private readonly UiGenerateImageService uiGenerateImageService;
 
         private void uxBrowseButton_Click(object sender, RoutedEventArgs e)

+ 39 - 0
VideoImageBuilder/SubPage/ImageSelectUc.xaml

@@ -0,0 +1,39 @@
+<UserControl
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:local="clr-namespace:VideoImageBuilder.SubPage"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d"
+    x:Class="VideoImageBuilder.SubPage.ImageSelectUc">
+    <StackPanel>
+        <TextBlock
+            Margin="22,12,0,12"
+            HorizontalAlignment="Left"
+            Text="FrontPage Image"
+            FontSize="24" />
+        <StackPanel Margin="22,0,150,12" Orientation="Horizontal">
+            <Button
+                x:Name="uxImageBtn1"
+                Width="90"
+                Height="35"
+                HorizontalAlignment="Left"
+                Click="uxBrowseButton_Click"
+                Content="Browse"
+                Foreground="Black"
+                Style="{StaticResource ButtonRevealStyle}"
+                Tag="Url" />
+            <TextBox
+                x:Name="uxUrlBrowseTextBox1"
+                Width="270"
+                Height="35"
+                Margin="1,0,0,0"
+                VerticalContentAlignment="Center"
+                Text="{Binding ImagePath1, Mode=TwoWay}"
+                IsReadOnly="True"
+                Style="{StaticResource TextBoxRevealStyle}" />
+        </StackPanel>
+    </StackPanel>
+</UserControl>

+ 60 - 0
VideoImageBuilder/SubPage/ImageSelectUc.xaml.cs

@@ -0,0 +1,60 @@
+using Microsoft.WindowsAPICodePack.Dialogs;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using VideoImageBuilder.Service;
+
+namespace VideoImageBuilder.SubPage
+{
+    /// <summary>
+    /// VideoSelectUc.xaml 的互動邏輯
+    /// </summary>
+    public partial class ImageSelectUc : UserControl
+    {
+        public ImageSelectUc()
+        {
+            InitializeComponent();
+            this.context = ImageBuilderContext.Instance;
+            this.DataContext = this.context;
+        }
+
+        private ImageBuilderContext context;
+
+        private void uxBrowseButton_Click(object sender, RoutedEventArgs e)
+        {
+            Button btn = e.Source as Button;
+            if (btn is null)
+            {
+                return;
+            }
+
+            var dlg = new CommonOpenFileDialog()
+            {
+                EnsureFileExists = true,
+                Title = "Select an Image file",
+            };
+            dlg.Filters.Add(new CommonFileDialogFilter("avaliable", "*.png,*.jpg"));
+            dlg.Filters.Add(new CommonFileDialogFilter("png", "*.png"));
+            dlg.Filters.Add(new CommonFileDialogFilter("jpg", "*.jpg"));
+
+            if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
+            {
+                if (btn == uxImageBtn1)
+                {
+                    context.ImagePath1 = dlg.FileName;
+                }
+            }
+        }
+    }
+}

+ 2 - 2
VideoImageBuilder/SubPage/TargetChargeBoxUc.xaml.cs

@@ -25,10 +25,10 @@ namespace VideoImageBuilder.SubPage
         {
             InitializeComponent();
 
-            this.context = VideoImageBuilderContext.Instance;
+            this.context = ImageBuilderContext.Instance;
             this.DataContext = this.context;
         }
 
-        private readonly VideoImageBuilderContext context;
+        private readonly ImageBuilderContext context;
     }
 }

+ 2 - 2
VideoImageBuilder/SubPage/VideoSelectUc.xaml.cs

@@ -25,11 +25,11 @@ namespace VideoImageBuilder.SubPage
         public VideoSelectUc()
         {
             InitializeComponent();
-            this.context = VideoImageBuilderContext.Instance;
+            this.context = ImageBuilderContext.Instance;
             this.DataContext = this.context;
         }
 
-        private VideoImageBuilderContext context;
+        private ImageBuilderContext context;
 
         private void uxBrowseButton_Click(object sender, RoutedEventArgs e)
         {

+ 9 - 2
VideoImageBuilder/VideoImageBuilder.csproj

@@ -78,14 +78,17 @@
     <Compile Include="Service\AppSettingService.cs" />
     <Compile Include="Service\FirmwareHeaderBuilder.cs" />
     <Compile Include="Service\UiGenerateImageService.cs" />
-    <Compile Include="Service\VideoImageBuilerService.cs" />
+    <Compile Include="Service\ImageBuilerService.cs" />
     <Compile Include="SubPage\GenerateImageUc.xaml.cs">
       <DependentUpon>GenerateImageUc.xaml</DependentUpon>
     </Compile>
+    <Compile Include="SubPage\ImageSelectUc.xaml.cs">
+      <DependentUpon>ImageSelectUc.xaml</DependentUpon>
+    </Compile>
     <Compile Include="SubPage\VideoSelectUc.xaml.cs">
       <DependentUpon>VideoSelectUc.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Service\VideoImageBuilderContext.cs" />
+    <Compile Include="Service\ImageBuilderContext.cs" />
     <Compile Include="SubPage\TargetChargeBoxUc.xaml.cs">
       <DependentUpon>TargetChargeBoxUc.xaml</DependentUpon>
     </Compile>
@@ -110,6 +113,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="SubPage\ImageSelectUc.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="SubPage\VideoSelectUc.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>