From c638f0cf2d17ad58f935da3495c1f8c2ad05fcf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Fri, 4 Jan 2019 00:04:44 +0100 Subject: [PATCH] Initial add of three projects --- .vs/TrainingAdvancedTechniques/v16/.suo | Bin 0 -> 77824 bytes BooksLambda/App.config | 6 ++ BooksLambda/BooksLambda.csproj | 53 ++++++++++++++++ BooksLambda/Program.cs | 47 +++++++++++++++ BooksLambda/Properties/AssemblyInfo.cs | 36 +++++++++++ BooksLambda/bin/Debug/BooksLambda.exe | Bin 0 -> 6144 bytes BooksLambda/bin/Debug/BooksLambda.exe.config | 6 ++ BooksLambda/bin/Debug/BooksLambda.pdb | Bin 0 -> 19968 bytes ...BooksLambda.csproj.CoreCompileInputs.cache | 1 + .../BooksLambda.csproj.FileListAbsolute.txt | 7 +++ .../BooksLambda.csprojAssemblyReference.cache | Bin 0 -> 1905 bytes BooksLambda/obj/Debug/BooksLambda.exe | Bin 0 -> 6144 bytes BooksLambda/obj/Debug/BooksLambda.pdb | Bin 0 -> 19968 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6827 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 TrainingAdvancedTechniques.sln | 37 ++++++++++++ TrainingAdvancedTechniques/App.config | 6 ++ TrainingAdvancedTechniques/Program.cs | 35 +++++++++++ .../Properties/AssemblyInfo.cs | 36 +++++++++++ .../TrainingAdvancedTechniques.csproj | 53 ++++++++++++++++ .../bin/Debug/TrainingAdvancedTechniques.exe | Bin 0 -> 5632 bytes .../TrainingAdvancedTechniques.exe.config | 6 ++ .../bin/Debug/TrainingAdvancedTechniques.pdb | Bin 0 -> 17920 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6873 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 ...dTechniques.csproj.CoreCompileInputs.cache | 1 + ...ncedTechniques.csproj.FileListAbsolute.txt | 7 +++ ...edTechniques.csprojAssemblyReference.cache | Bin 0 -> 1905 bytes .../obj/Debug/TrainingAdvancedTechniques.exe | Bin 0 -> 5632 bytes .../obj/Debug/TrainingAdvancedTechniques.pdb | Bin 0 -> 17920 bytes VideoEnc/App.config | 6 ++ VideoEnc/MailService.cs | 12 ++++ VideoEnc/MessageService.cs | 12 ++++ VideoEnc/Program.cs | 24 ++++++++ VideoEnc/Properties/AssemblyInfo.cs | 36 +++++++++++ VideoEnc/Video.cs | 13 ++++ VideoEnc/VideoEnc.csproj | 57 ++++++++++++++++++ VideoEnc/VideoEncoder.cs | 38 ++++++++++++ VideoEnc/bin/Debug/VideoEnc.exe | Bin 0 -> 6656 bytes VideoEnc/bin/Debug/VideoEnc.exe.config | 6 ++ VideoEnc/bin/Debug/VideoEnc.pdb | Bin 0 -> 28160 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6818 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 .../VideoEnc.csproj.CoreCompileInputs.cache | 1 + .../VideoEnc.csproj.FileListAbsolute.txt | 7 +++ .../VideoEnc.csprojAssemblyReference.cache | Bin 0 -> 8069 bytes VideoEnc/obj/Debug/VideoEnc.exe | Bin 0 -> 6656 bytes VideoEnc/obj/Debug/VideoEnc.pdb | Bin 0 -> 28160 bytes 54 files changed, 549 insertions(+) create mode 100644 .vs/TrainingAdvancedTechniques/v16/.suo create mode 100644 BooksLambda/App.config create mode 100644 BooksLambda/BooksLambda.csproj create mode 100644 BooksLambda/Program.cs create mode 100644 BooksLambda/Properties/AssemblyInfo.cs create mode 100644 BooksLambda/bin/Debug/BooksLambda.exe create mode 100644 BooksLambda/bin/Debug/BooksLambda.exe.config create mode 100644 BooksLambda/bin/Debug/BooksLambda.pdb create mode 100644 BooksLambda/obj/Debug/BooksLambda.csproj.CoreCompileInputs.cache create mode 100644 BooksLambda/obj/Debug/BooksLambda.csproj.FileListAbsolute.txt create mode 100644 BooksLambda/obj/Debug/BooksLambda.csprojAssemblyReference.cache create mode 100644 BooksLambda/obj/Debug/BooksLambda.exe create mode 100644 BooksLambda/obj/Debug/BooksLambda.pdb create mode 100644 BooksLambda/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 BooksLambda/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 BooksLambda/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 BooksLambda/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 TrainingAdvancedTechniques.sln create mode 100644 TrainingAdvancedTechniques/App.config create mode 100644 TrainingAdvancedTechniques/Program.cs create mode 100644 TrainingAdvancedTechniques/Properties/AssemblyInfo.cs create mode 100644 TrainingAdvancedTechniques/TrainingAdvancedTechniques.csproj create mode 100644 TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe create mode 100644 TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe.config create mode 100644 TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.pdb create mode 100644 TrainingAdvancedTechniques/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.CoreCompileInputs.cache create mode 100644 TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.FileListAbsolute.txt create mode 100644 TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csprojAssemblyReference.cache create mode 100644 TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.exe create mode 100644 TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.pdb create mode 100644 VideoEnc/App.config create mode 100644 VideoEnc/MailService.cs create mode 100644 VideoEnc/MessageService.cs create mode 100644 VideoEnc/Program.cs create mode 100644 VideoEnc/Properties/AssemblyInfo.cs create mode 100644 VideoEnc/Video.cs create mode 100644 VideoEnc/VideoEnc.csproj create mode 100644 VideoEnc/VideoEncoder.cs create mode 100644 VideoEnc/bin/Debug/VideoEnc.exe create mode 100644 VideoEnc/bin/Debug/VideoEnc.exe.config create mode 100644 VideoEnc/bin/Debug/VideoEnc.pdb create mode 100644 VideoEnc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 VideoEnc/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 VideoEnc/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 VideoEnc/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 VideoEnc/obj/Debug/VideoEnc.csproj.CoreCompileInputs.cache create mode 100644 VideoEnc/obj/Debug/VideoEnc.csproj.FileListAbsolute.txt create mode 100644 VideoEnc/obj/Debug/VideoEnc.csprojAssemblyReference.cache create mode 100644 VideoEnc/obj/Debug/VideoEnc.exe create mode 100644 VideoEnc/obj/Debug/VideoEnc.pdb diff --git a/.vs/TrainingAdvancedTechniques/v16/.suo b/.vs/TrainingAdvancedTechniques/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..11ca0125bc4d2315ee33128393410f9fcabb0726 GIT binary patch literal 77824 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 DHK#Os literal 0 HcmV?d00001 diff --git a/BooksLambda/App.config b/BooksLambda/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/BooksLambda/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/BooksLambda/BooksLambda.csproj b/BooksLambda/BooksLambda.csproj new file mode 100644 index 0000000..b5af9d9 --- /dev/null +++ b/BooksLambda/BooksLambda.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {D7C73E43-0BD2-4EC5-B6B1-2106EDE4BE41} + Exe + BooksLambda + BooksLambda + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BooksLambda/Program.cs b/BooksLambda/Program.cs new file mode 100644 index 0000000..179e130 --- /dev/null +++ b/BooksLambda/Program.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BooksLambda +{ + public class Program + { + static void Main(string[] args) + { + var books = new BookRepository().GetBooks(); + //var cheapBooks = books.FindAll(IsCheaperThan10Dollars); + var cheapBooks = books.FindAll(b => b.Price<10); + + foreach (var book in cheapBooks) + { + Console.WriteLine(book.Title); + } + } + + //static bool IsCheaperThan10Dollars(Book book) + //{ + // return book.Price < 10; + //} + } + + public class BookRepository + { + public List GetBooks() + { + return new List + { + new Book(){Title="Title 1", Price=5.25m}, + new Book(){Title="Title 2", Price=9.25m}, + new Book(){Title="Title 3", Price=10.75m} + }; + } + } + + public class Book + { + public string Title { get; set; } + public decimal Price { get; set; } + } +} diff --git a/BooksLambda/Properties/AssemblyInfo.cs b/BooksLambda/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7516727 --- /dev/null +++ b/BooksLambda/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BooksLambda")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BooksLambda")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d7c73e43-0bd2-4ec5-b6b1-2106ede4be41")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// 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.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BooksLambda/bin/Debug/BooksLambda.exe b/BooksLambda/bin/Debug/BooksLambda.exe new file mode 100644 index 0000000000000000000000000000000000000000..cadddc2b3ae0ddbb608ccadb4d2ef153d2c78597 GIT binary patch literal 6144 zcmeHLeQX@X6@R;DpU)0louE=j&febGUVOKE z?Cu#~X{jR=q*j#(l~7w1Dq30<)K+R*szM5CY1LL#AXF;R4@Fh_DGI32Kl)E4LVs`e z_I!>lK;o}T%z59u?|Jj)&Frj?-f^BnL{x$2op*?yLeFhT!gmKN5ZCRvSVvD*zu5Ye zGVx;T^n&SXIme!N^sHv+mSuZdN@z~r(o9PmJwByn?X-y3*4FGSx}F>(novSCI~n}*DsXqyxGe~~{d$1iG(2_du)-^X#`Uq(7w?MqcJ+4O#GFdX0DcdC+U_N4 zL7XozKIJ*4HSe;*#sI{IZV3oj( zYaqLyz6NO1H)tQ~_Hm?6q3_V7#-1Ofx78;>Uy{`Q+hT}ArB{859tvFqb$=^s2C@fy zD)I~ZIb>ffQZFGol^!ipkI=6$_TxqBTl4~`3qB=BsGy6IdT?8N=w+@bUn{M2AHAf+X%qb&E89r_0^Clu;IvUQ;2!!YV6TKXOE@C= zN2mk*DarYSga(a)vq(0eOP^8_(tkqwe^la+N%&I1`*K8N{AJt83 zFy#}Ij!2t^?uj$qG-0|PIw(TNPUkaXkcMr0(Vft8jxGUlB1@Z zvt2!v5i|n#HhR{R9;BX+-R_v4m@q9tz5#lX%FoXWXV|gtmiAK~CI~0loS6}h3=@oW z!o$&*%0o1sH_IsBo(EplSm$$91iz z4&y#0?zYPXfz4sWeo8nlQoU*w2$7&Ub3X6ryb|lhqrx>DGq+ag=R;bY5E*@0V(xn5 zNe8uHc9*yeO}=xL6iJi4{%b z#mS?Vq$ZZxFtd7w4x3gwk;xF^GX9_>wy@SFBhX7v7ka&kCf? zb|`N6PBx^hIdkgTzRRCg!*!u>!|6~s+Ef*c3Mbdsv41%(+#zCWI4vVS z&95V1YP3Go4naEv5k4`w-N3KvX|?%wN6#Izt+8c8$lWl#z-NR4y(&I@sa~N? zO7>QTqNQrre)fc>^>p#2>PCfjruQ5BdqrPwM^`G{)6pl4k9DN>rMf$My1Vv?wCGET zKCI9+7@-@tG5m;*D%27`Ha1<_?R$&0J%AhAzIZo6t!pX?`B=;7g=07wn%GJ!Ni?Zl z!69M>t8L-X%l~AG&;2|eZ7&}F#wu%9eOl0osnMw?&%Jfv__mtl18@B1;hxvuzL|ZF z9Gp4n;@Fw->}<9$GiB!;L(Ir}oSAm8uTas6^pb8FB0VjP1>_O_AU^Cj%z!HI z_8QR&KAdn1rj@m7yj|pX@H#&0UBv{)*I!sC@~iS0Y|ZmS_=Z3qw7ntz(l~|t(=6Z^ zodA}^7y2>KNx;MY*E&60@#Yo(rsMnaaiT*-M||T6B!TZy$vZ_lIq+l3b23R5&Eby7 zZ6~qSG^9GXF625+Qxj54%JG#{@p)_>1u=QhGQpqUz|(@%>7wA*M=9V$*U5a0z+V&19dO{45 zGW%1occ8O6zi!-cyGjqy5UN2z);UhrwcsUF7S+b%#G$*4hySM#h5ZEZd1=Wr&rv}} zJWmVoigRQgPopPD!>@M9x;dF0tEn>qg@W#b(8$sDh>yE@ZX=lOuNNnkBpIj0mNE+7N%W%mLu z@~EoU>@l7Al@h~d=|(}ZQ%X&lD`v6It>I}XG&*VC=Ep0O=45Gx2b zc4)A+rnaVEFJ4YHxUk%TSl+P?y2b)7q;5ynG#uNt=e!QX&K}g=Y<#IZre$@@oD;4W zyr$%MaHeS`XUQ}!Ex6RJiHTo#G0no8Yan*CkjUjS{H=j2YFy9dVx7JR&&j)9(wej1 zXFNSIX@{|0VdQc9FBEBT9KmlN-0kr-v4jiryl~&A*WSRZhPLVl?-?V{5l@IEk + + + + + \ No newline at end of file diff --git a/BooksLambda/bin/Debug/BooksLambda.pdb b/BooksLambda/bin/Debug/BooksLambda.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f6f495ef96a95920968b8666ce19e5cb1f7209e1 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/BooksLambda/obj/Debug/BooksLambda.exe b/BooksLambda/obj/Debug/BooksLambda.exe new file mode 100644 index 0000000000000000000000000000000000000000..cadddc2b3ae0ddbb608ccadb4d2ef153d2c78597 GIT binary patch literal 6144 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 + + + + + \ No newline at end of file diff --git a/TrainingAdvancedTechniques/Program.cs b/TrainingAdvancedTechniques/Program.cs new file mode 100644 index 0000000..398131c --- /dev/null +++ b/TrainingAdvancedTechniques/Program.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TrainingAdvancedTechniques +{ + class Program + { + static void Main(string[] args) + { + //args => expression + //number => number*number + + //() => ... + // x => ... + // (x, y, z) => ... + + Func square = number => number * number; + Console.WriteLine(square(5)); + + const int factor = 5; + Func multiplyer = n => n * factor; + + var result = multiplyer(10); + Console.WriteLine(result); + } + + //static int Square(int number) + //{ + // return number * number; + //} + } +} diff --git a/TrainingAdvancedTechniques/Properties/AssemblyInfo.cs b/TrainingAdvancedTechniques/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ddc4dd4 --- /dev/null +++ b/TrainingAdvancedTechniques/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TrainingAdvancedTechniques")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TrainingAdvancedTechniques")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6f3f478d-7b6d-4dd5-8de7-ebe805263d51")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// 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.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TrainingAdvancedTechniques/TrainingAdvancedTechniques.csproj b/TrainingAdvancedTechniques/TrainingAdvancedTechniques.csproj new file mode 100644 index 0000000..dd3af61 --- /dev/null +++ b/TrainingAdvancedTechniques/TrainingAdvancedTechniques.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {6F3F478D-7B6D-4DD5-8DE7-EBE805263D51} + Exe + TrainingAdvancedTechniques + TrainingAdvancedTechniques + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe b/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe new file mode 100644 index 0000000000000000000000000000000000000000..5c8c2f903f5180356bee9731b161ea936a968925 GIT binary patch literal 5632 zcmeHLU2Ggz6+Sa-uQ$%W^XDdoOg0H}Ts+>j9mff_r|L(ecI@#E1gh<6QrcAwg zWPZgCw36=?e50tDhUR#< zLuuNoWQdx<;RfhE0i>Y~p)u0Xsgd6pQIZkEEi~{M5_I+JM7!kQdLNUK3jL#v=pv7Y zi27?rVj*`|iMF9@g;F91n_8bQMCjwHK`phKNS$NI5*fc?GamRAI-;av7|Y9$lDF7t%bwCiDOu=jLoPj zvt(=2;by75Efwjvr`5JSJh5F5aC(!sc#U;tOCoWly(MwzN;{3@&W|YU5rFfv+M{Rm z?o4;~G;qZ!ks#boAV%$uabAfwo}! z=!oOxK{H^wa(SPc+JXW7SLvqxG9LtQk=Lm4QR6Z5cA~K=dsyFy{-s1-Cuvdnwwk0r zNPL^Fs5|KnrX+D+d%!=dFxDi#EAf{k{+`5tk~%-8B6PkYaYFLnr6f3iRoj3&h;e~< zl}i}ImH50zncGF0dQTmOe+ngz?4t9KGnJrT>cI`#k8uw80Pw8FvtOZ3^#yS6N$Ta+ zX;@b2jY!s-Qw>mWZIHb!sjp&71!RAZDGd~7N})f)D}^Q`9#gl_w5s5cvE65Yo9P7b zF3L)LTH;}eCnf%@#GjMc0NzKo9N&<*BJnH0Nt}^sH48jLr|A3ic^afIOTJE9=^E+S zvjF%IeFyj`{Q&qmx(D1X@n<9+mHZ3zTkvy|^Mb@Cy$#NFN+>$4>{3knBE6^_q)}?8 zhFj78BiI=3Ayz(lRhU4|8TfVr`Ug)hEoGK6)IV+5?qEJ9B5t;xo27}eYhLZ*Dd2ln z*%5^!(8O}eYzbwQ(^8+eYO%f20oDcfaEv1B{KKPOz_8=4(tuQ;UEyjyi=LC!+O;k+czvxH2mx9R^|=AAi@dXD2kW7 zdO>y01RPuteqej<`mCxDAuZd5GJJoecuWMQZXjG%)~;HB%;v+#V! z-kNaC4oZ$unZaG!%d@naM3dSL(UXI`pT9r%GtNJMYrcy%+lCg`W6WpZx3C`Oa$~vH zk*=Sd`o@I|U)$Ssa`5HX|HuYM&n#XFa6uPCuUM=s=Df0Rip4om@`A+=PT1o_UjEvm zJXMcT(o0sJw#Fq6yLp_)8jm(ZwG@gZOQW7Yz9!_Qk>5!nbj#sV0r22BX+v`KbRkvl zr-mxJ6@ks7-xwd?0$CSq;1AGdhWrJUMgr$Gu!YGuf{dy>mG0{Ppk5Skw;wLaW z#3~V_>trRleg)AQQZH7a7g2Md{)s&wgN1-h=|^dUpHT$tUF6{~S+pu`nwVoDLV)ao?2jk z3RFQ_=FF9-A|o!qe|{e}^E7&uH2k{YYnHggZ-=t3yM>SU61;Sb2m@dX^ zaQ--^YR;MBovWUb50~Tm*cRko&SD)8J5t7egmszwX!hY2YH{Afjdma2$%pr`PtF-e z76O@*JR+_jga2>d6fV@eb(ieDd$0GOT`M};YE+30r13k1MG#h>JGmZ=XFLUFspQzEEbw%rR7!V7 z7DB%qgp=;F_k{j*rR6-V9SF0G>bVlr;P`^eHI&Y?zP*Z4wIG5gwAx*@ssYyR;AJw) zT)s_-RpDq3U!q}-}^gjNq|CsXLW}L c`J{aePelf_=zk)8@_!*uMMNJ5@gXwsKTP6nJ^%m! literal 0 HcmV?d00001 diff --git a/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe.config b/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.pdb b/TrainingAdvancedTechniques/bin/Debug/TrainingAdvancedTechniques.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d4315d70a592c675c811572e4a50c20346c9f1a4 GIT binary patch literal 17920 zcmeHNOKenC7(TbHeNyOPt+iks6e7==DNrb+6w4G$#qw&2Kqj=q?Jb=!ooVl#id{KG z0{94F!Nx=u#D$42B`y$@g<{l|HX$xp7-O1fj0A&AytnW(Vm#w@Aa=(;cjc+=3ejd`N~UcTG|CDPY4C<8Q>J-phXsw&up;3 zoBt~RBqZgk1sa67ldFA~{Z1rqAKJb7YSFOkOuM+U^WD7jpKaa#_D>_>BC{WqYlrNe&>2W7yRH;;weVpUGM)8<#9zc?}+52PGBiO-9y6z`vVA5 z?jXQC4UjZ5EKv4Uoq{`n5EVAScrF&0JReUho{pQD@-eF|Ajf}J58p#KKHd1w!w!(T z{vWy$sbI!hAl>*^$nl@C<2BI@yL02t4c^TzQL%qxV6UO+Mj#gL>l+HRM+bFP3+&PQ zqeh@Z4~8P4$l>PhmxB>i>+aCh-biR*P|KLLOOGDbgMA*=5JKG;7);S_SlV?{d(74z zw6({Q+B0PJC$)3G;{B3+;T@A?-CnG)e5SX6y#J@SORl7H-K-PKUF>hz?ljXJdPImq zt|zW5(b$GPpy^O&r?1n8s7DkOe7X7Os~_&a)_Q44N#4gFTP@$gp7)`v31oU?Lq4L4doUCR{NFFx~RVzAi;kX_lQlxk+teiFN-pe zZ4kFmt{5=e3C>q1H_!-l0R6yhA==+#kN;bChn)SBeLxb1#qKMIAK@yI?_#-?$aG{` zv{Wp1?QI`2Vp^Z5O@=-GXgI8?u~0N(c%IiHnjTWc{FM9`Ly-X#zbmandnLxSniRQ? zUR?`z;|%h21dSsG+Of(7pMxtuj#(;tf@&qld`6p0&NO3SFsQ@vP%GRnwly`c zZ!jDS^@oQvl&(R(?avr3t7`@%=;tUD2gaN8ICN+m&I#&a%L)obekHgP|3o>qLpk;; z(~9ggMZ~{Rj&-q3)X#b7tV0E@bnIJ%^e%ve^%SQ(bjBBfKW5HLb56&1AYOy`OW+H@ zc_uCdFTv=PizZ+>umM;GJS&)f3o@zmnc-8wJAkC@wg7!SH6`Ag+|L(c!oCj9xpmIw zT$qe+vN`7)<9lrm_R!?cpn-K|qVe)GmA#+5$=08t4ctC5(Rlfp%1(G5&v>4xJa0Ld zcos^U`4*@ZbDgsi=e&Ps+ltPuk(fTzxhooq;LNKLOU!(pX?bHVfK_5yN}g|>k5r#5 z!+X$OW$Ji$u*z6@cA0fN`;+x3!n$ZUvaDMXwk&i^A@L}bBrTA&7I5Pf;rdEP&fS2E zpcryI3#aisOxMK8PRsiB&oMq)Qm1fS=ZHC{%f(3dT$+0fjwTCBS0x#_gmc@HxiVLzD1bZ7lIvdm_fzJzpnd9ZJ}DXf_PwNjqn zU2u(&l6^}gC`)bpIW)O$T6_>@`-JT#I@MYYW8)HuVzZG}IGHa)v(5r%J=WUiSX;xH ze7=D+FPt++S|dGC;f)0QG(&g|UG?_D52NXa!cp~zmCzFkYle5yJ^XYLb|?tO>*g2N%A>rfq4kIff1kq@MF6nCw&jZfu%qI*atiEz7PPO z11=y9?k?QvEvr|8!xv?a2uGp}-~q~!;rn4ZFc)B*6~Lpwe87B(0GBlN7I=K>tCTg) zAPaD}m;S$d56Cng9oS(r(s=n93r}>W^#4t?MW;p|*S~!KbKW&`@BMFTW|^#Irdoja zdB;aFwvEo+fOmN5{~K$a?1)=m@TGpHC;dO!F|zm93;KUv_;JriyysSLS^eJnliRl+ zuPmx>I`Qe((*JXRHk{2;^u?S49@PIs|G`rLy>9s4$n?z7BS-&_`Rx-peMG7LAO3%U eZYx+lB5N6H6k;{-K9$aZKYY?1Zd*xqn=>+J3U zF5+W1UriHsNi18l-6cDp|7$(kw8!?KOR^9^l{y z%yGmq*qcg$TXkAnCmKAOm72odS>e@qJ37uxc|vC-bgR9RxO4!Sq2=vNi!9aN&8^13G^U;gPLyIn#m$CX*G74Zm8+{rHaX>6gBh^Sv4b} z&Xty}{(v|drh#0zfQrsL;~dJ|rKWendw&NJ{K?zPEL90V6 zV9=GIJa|`aHk+mu+$D?!MBs>kgt3nIhGcM!NIpARUww|N(V>*d&N3p^KDXdKUtC=J za@!sKj%K#lV6qw5xQK8p6u2(O3}7B2j2#M0j|58ykRBn@QJ6?MrkP2i2)ch846q-E zZDoK>q4_l;9fWBmfg};65hlnEX!DKM?MQrrXjYhLzqwAZO5cQS76HBG-X}tf(V0GE zB10xJ&^z~_iG1)Qc!0SMSB)Jg{yU5x9JP~g*z$L*cg9}LMGO-Sly>}VP9%)DAN1l6 z_}aB!86S^-i>F@qNf4u@M6B@?#rsf>_yiH=0OLC>#PXO#jS_hd81?zdM2SsbsZ9{M zqbETWo91hLk7E8bdu>+t%y@>aGpBF3rzwv|3BGOIJZHvptY0`SU7xaSof$8%eK4&3 z2h=omT42XS5Gkp7W~8tx1aeyCUWdmgh@R7>#rP3LI4fzGsJaqLkmQ-gY-G%dfc_)Q boggwOZ0H&NYk1K8*Z(WSgRYnNu1x+5^{4L_ literal 0 HcmV?d00001 diff --git a/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/TrainingAdvancedTechniques/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.CoreCompileInputs.cache b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..536ac4e --- /dev/null +++ b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +776a4596f18f18d5b55dda90c4584f71b9d5b430 diff --git a/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.FileListAbsolute.txt b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..876f586 --- /dev/null +++ b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\bin\Debug\TrainingAdvancedTechniques.exe.config +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\bin\Debug\TrainingAdvancedTechniques.exe +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\bin\Debug\TrainingAdvancedTechniques.pdb +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\obj\Debug\TrainingAdvancedTechniques.csprojAssemblyReference.cache +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\obj\Debug\TrainingAdvancedTechniques.csproj.CoreCompileInputs.cache +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\obj\Debug\TrainingAdvancedTechniques.exe +C:\Users\tommy\Source\Repos\TrainingAdvancedTechniques\TrainingAdvancedTechniques\obj\Debug\TrainingAdvancedTechniques.pdb diff --git a/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csprojAssemblyReference.cache b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.csprojAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..cbe43f5d0942e588721d2233d6e7d55c2fd5b466 GIT binary patch literal 1905 zcmcJP%Wl&^6ow~>o#s*?+{&$hy8|^EB?>78DMAn$RU(u^qKbt@HL;HyD`Pv%j6=&~ z@&v3{@eVM@jnc|8>})B&?a4R!&t-B*fe`XXUwFrBy{P5Od*2a}j66l(#6EZFn8}%> z{YXI5Iszg6DD1Vnv`t&I)wKFCSFwOz2(c23H?6~X!hPo*oQYs-A;rb!tt3AIz z?!KyH7>1VX_+X--oq@!w!KW^EmMr5j6m(3 zDhRQ)lDeFiE82USr}qIUy06qcajR-KH%~V_yopmyJ2`neeGYhHgoh#5l#=FQtJd>w z6{a-w!>>tRSG3!4o(05|u4)rM7n9Xrg!V^MCeDxFHEqXou?wUV3GPp@bPXH^c+#s4 zlw?TUz^9uiw@_}QY@pmhxvRxQc>5yk%Om;HxZK9!kc>*48l@m|4gHxFS!lR0mt~2g zRGLC9Koq@@kYce|Ak|6%XD9hNY&3rTsNgiJ)oSH?c-Nz%MLVrd`voartQbccyq^X! wpDge}8pNElz|Ay>b;$xBra`P-7WgO)Vtuo~$7v9IkOf+45c`w`Zl%EbUyTtMr~m)} literal 0 HcmV?d00001 diff --git a/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.exe b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.exe new file mode 100644 index 0000000000000000000000000000000000000000..5c8c2f903f5180356bee9731b161ea936a968925 GIT binary patch literal 5632 zcmeHLU2Ggz6+Sa-uQ$%W^XDdoOg0H}Ts+>j9mff_r|L(ecI@#E1gh<6QrcAwg zWPZgCw36=?e50tDhUR#< zLuuNoWQdx<;RfhE0i>Y~p)u0Xsgd6pQIZkEEi~{M5_I+JM7!kQdLNUK3jL#v=pv7Y zi27?rVj*`|iMF9@g;F91n_8bQMCjwHK`phKNS$NI5*fc?GamRAI-;av7|Y9$lDF7t%bwCiDOu=jLoPj zvt(=2;by75Efwjvr`5JSJh5F5aC(!sc#U;tOCoWly(MwzN;{3@&W|YU5rFfv+M{Rm z?o4;~G;qZ!ks#boAV%$uabAfwo}! z=!oOxK{H^wa(SPc+JXW7SLvqxG9LtQk=Lm4QR6Z5cA~K=dsyFy{-s1-Cuvdnwwk0r zNPL^Fs5|KnrX+D+d%!=dFxDi#EAf{k{+`5tk~%-8B6PkYaYFLnr6f3iRoj3&h;e~< zl}i}ImH50zncGF0dQTmOe+ngz?4t9KGnJrT>cI`#k8uw80Pw8FvtOZ3^#yS6N$Ta+ zX;@b2jY!s-Qw>mWZIHb!sjp&71!RAZDGd~7N})f)D}^Q`9#gl_w5s5cvE65Yo9P7b zF3L)LTH;}eCnf%@#GjMc0NzKo9N&<*BJnH0Nt}^sH48jLr|A3ic^afIOTJE9=^E+S zvjF%IeFyj`{Q&qmx(D1X@n<9+mHZ3zTkvy|^Mb@Cy$#NFN+>$4>{3knBE6^_q)}?8 zhFj78BiI=3Ayz(lRhU4|8TfVr`Ug)hEoGK6)IV+5?qEJ9B5t;xo27}eYhLZ*Dd2ln z*%5^!(8O}eYzbwQ(^8+eYO%f20oDcfaEv1B{KKPOz_8=4(tuQ;UEyjyi=LC!+O;k+czvxH2mx9R^|=AAi@dXD2kW7 zdO>y01RPuteqej<`mCxDAuZd5GJJoecuWMQZXjG%)~;HB%;v+#V! z-kNaC4oZ$unZaG!%d@naM3dSL(UXI`pT9r%GtNJMYrcy%+lCg`W6WpZx3C`Oa$~vH zk*=Sd`o@I|U)$Ssa`5HX|HuYM&n#XFa6uPCuUM=s=Df0Rip4om@`A+=PT1o_UjEvm zJXMcT(o0sJw#Fq6yLp_)8jm(ZwG@gZOQW7Yz9!_Qk>5!nbj#sV0r22BX+v`KbRkvl zr-mxJ6@ks7-xwd?0$CSq;1AGdhWrJUMgr$Gu!YGuf{dy>mG0{Ppk5Skw;wLaW z#3~V_>trRleg)AQQZH7a7g2Md{)s&wgN1-h=|^dUpHT$tUF6{~S+pu`nwVoDLV)ao?2jk z3RFQ_=FF9-A|o!qe|{e}^E7&uH2k{YYnHggZ-=t3yM>SU61;Sb2m@dX^ zaQ--^YR;MBovWUb50~Tm*cRko&SD)8J5t7egmszwX!hY2YH{Afjdma2$%pr`PtF-e z76O@*JR+_jga2>d6fV@eb(ieDd$0GOT`M};YE+30r13k1MG#h>JGmZ=XFLUFspQzEEbw%rR7!V7 z7DB%qgp=;F_k{j*rR6-V9SF0G>bVlr;P`^eHI&Y?zP*Z4wIG5gwAx*@ssYyR;AJw) zT)s_-RpDq3U!q}-}^gjNq|CsXLW}L c`J{aePelf_=zk)8@_!*uMMNJ5@gXwsKTP6nJ^%m! literal 0 HcmV?d00001 diff --git a/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.pdb b/TrainingAdvancedTechniques/obj/Debug/TrainingAdvancedTechniques.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d4315d70a592c675c811572e4a50c20346c9f1a4 GIT binary patch literal 17920 zcmeHNOKenC7(TbHeNyOPt+iks6e7==DNrb+6w4G$#qw&2Kqj=q?Jb=!ooVl#id{KG z0{94F!Nx=u#D$42B`y$@g<{l|HX$xp7-O1fj0A&AytnW(Vm#w@Aa=(;cjc+=3ejd`N~UcTG|CDPY4C<8Q>J-phXsw&up;3 zoBt~RBqZgk1sa67ldFA~{Z1rqAKJb7YSFOkOuM+U^WD7jpKaa#_D>_>BC{WqYlrNe&>2W7yRH;;weVpUGM)8<#9zc?}+52PGBiO-9y6z`vVA5 z?jXQC4UjZ5EKv4Uoq{`n5EVAScrF&0JReUho{pQD@-eF|Ajf}J58p#KKHd1w!w!(T z{vWy$sbI!hAl>*^$nl@C<2BI@yL02t4c^TzQL%qxV6UO+Mj#gL>l+HRM+bFP3+&PQ zqeh@Z4~8P4$l>PhmxB>i>+aCh-biR*P|KLLOOGDbgMA*=5JKG;7);S_SlV?{d(74z zw6({Q+B0PJC$)3G;{B3+;T@A?-CnG)e5SX6y#J@SORl7H-K-PKUF>hz?ljXJdPImq zt|zW5(b$GPpy^O&r?1n8s7DkOe7X7Os~_&a)_Q44N#4gFTP@$gp7)`v31oU?Lq4L4doUCR{NFFx~RVzAi;kX_lQlxk+teiFN-pe zZ4kFmt{5=e3C>q1H_!-l0R6yhA==+#kN;bChn)SBeLxb1#qKMIAK@yI?_#-?$aG{` zv{Wp1?QI`2Vp^Z5O@=-GXgI8?u~0N(c%IiHnjTWc{FM9`Ly-X#zbmandnLxSniRQ? zUR?`z;|%h21dSsG+Of(7pMxtuj#(;tf@&qld`6p0&NO3SFsQ@vP%GRnwly`c zZ!jDS^@oQvl&(R(?avr3t7`@%=;tUD2gaN8ICN+m&I#&a%L)obekHgP|3o>qLpk;; z(~9ggMZ~{Rj&-q3)X#b7tV0E@bnIJ%^e%ve^%SQ(bjBBfKW5HLb56&1AYOy`OW+H@ zc_uCdFTv=PizZ+>umM;GJS&)f3o@zmnc-8wJAkC@wg7!SH6`Ag+|L(c!oCj9xpmIw zT$qe+vN`7)<9lrm_R!?cpn-K|qVe)GmA#+5$=08t4ctC5(Rlfp%1(G5&v>4xJa0Ld zcos^U`4*@ZbDgsi=e&Ps+ltPuk(fTzxhooq;LNKLOU!(pX?bHVfK_5yN}g|>k5r#5 z!+X$OW$Ji$u*z6@cA0fN`;+x3!n$ZUvaDMXwk&i^A@L}bBrTA&7I5Pf;rdEP&fS2E zpcryI3#aisOxMK8PRsiB&oMq)Qm1fS=ZHC{%f(3dT$+0fjwTCBS0x#_gmc@HxiVLzD1bZ7lIvdm_fzJzpnd9ZJ}DXf_PwNjqn zU2u(&l6^}gC`)bpIW)O$T6_>@`-JT#I@MYYW8)HuVzZG}IGHa)v(5r%J=WUiSX;xH ze7=D+FPt++S|dGC;f)0QG(&g|UG?_D52NXa!cp~zmCzFkYle5yJ^XYLb|?tO>*g2N%A>rfq4kIff1kq@MF6nCw&jZfu%qI*atiEz7PPO z11=y9?k?QvEvr|8!xv?a2uGp}-~q~!;rn4ZFc)B*6~Lpwe87B(0GBlN7I=K>tCTg) zAPaD}m;S$d56Cng9oS(r(s=n93r}>W^#4t?MW;p|*S~!KbKW&`@BMFTW|^#Irdoja zdB;aFwvEo+fOmN5{~K$a?1)=m@TGpHC;dO!F|zm93;KUv_;JriyysSLS^eJnliRl+ zuPmx>I`Qe((*JXRHk{2;^u?S49@PIs|G`rLy>9s4$n?z7BS-&_`Rx-peMG7LAO3%U eZ + + + + + \ No newline at end of file diff --git a/VideoEnc/MailService.cs b/VideoEnc/MailService.cs new file mode 100644 index 0000000..cc87ce6 --- /dev/null +++ b/VideoEnc/MailService.cs @@ -0,0 +1,12 @@ +using System; + +namespace VideoEnc +{ + public class MailService + { + public void OnVideoEncoded(object source, VideoEventArgs e) + { + Console.WriteLine("MailService: Sending an email..."+e.Video.Title); + } + } +} diff --git a/VideoEnc/MessageService.cs b/VideoEnc/MessageService.cs new file mode 100644 index 0000000..a4ea8b0 --- /dev/null +++ b/VideoEnc/MessageService.cs @@ -0,0 +1,12 @@ +using System; + +namespace VideoEnc +{ + public class MessageService + { + public void OnVideoEncoded(object source, VideoEventArgs e) + { + Console.WriteLine("MessageService: Sending a text message..."+e.Video.Title); + } + } +} diff --git a/VideoEnc/Program.cs b/VideoEnc/Program.cs new file mode 100644 index 0000000..2eef469 --- /dev/null +++ b/VideoEnc/Program.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VideoEnc +{ + class Program + { + static void Main(string[] args) + { + var video = new Video() { Title = "Video 1" }; + var videoEncoder = new VideoEncoder(); //publisher + var mailService = new MailService(); //subscriber + var messageService = new MessageService(); //subscriber + + videoEncoder.VideoEncoded += mailService.OnVideoEncoded; + videoEncoder.VideoEncoded += messageService.OnVideoEncoded; + + videoEncoder.Encode(video); + } + + } +} diff --git a/VideoEnc/Properties/AssemblyInfo.cs b/VideoEnc/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..54bc1ba --- /dev/null +++ b/VideoEnc/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("VideoEnc")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VideoEnc")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8b61aeaf-981f-4509-a550-2da29838df66")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// 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.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/VideoEnc/Video.cs b/VideoEnc/Video.cs new file mode 100644 index 0000000..e633178 --- /dev/null +++ b/VideoEnc/Video.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VideoEnc +{ + public class Video + { + public string Title { get; set; } + } +} diff --git a/VideoEnc/VideoEnc.csproj b/VideoEnc/VideoEnc.csproj new file mode 100644 index 0000000..9f71c8d --- /dev/null +++ b/VideoEnc/VideoEnc.csproj @@ -0,0 +1,57 @@ + + + + + Debug + AnyCPU + {8B61AEAF-981F-4509-A550-2DA29838DF66} + Exe + VideoEnc + VideoEnc + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VideoEnc/VideoEncoder.cs b/VideoEnc/VideoEncoder.cs new file mode 100644 index 0000000..de08f63 --- /dev/null +++ b/VideoEnc/VideoEncoder.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace VideoEnc +{ + public class VideoEventArgs : EventArgs + { + public Video Video { get; set; } + } + + public class VideoEncoder + { + // 1- Define a delegate + // 2- Define an Event + // 3 Raise the event + + public delegate void VideoEncodedEventHandler(object source, VideoEventArgs args); + public event VideoEncodedEventHandler VideoEncoded; + + public void Encode(Video video) + { + Console.WriteLine("Encoding video..."); + Thread.Sleep(3000); + + OnVideoEncoded(video); + } + + protected virtual void OnVideoEncoded(Video video) + { + if (VideoEncoded != null) + VideoEncoded(this, new VideoEventArgs() { Video =video }); + } + } +} diff --git a/VideoEnc/bin/Debug/VideoEnc.exe b/VideoEnc/bin/Debug/VideoEnc.exe new file mode 100644 index 0000000000000000000000000000000000000000..91d56c2274242bdd3bed0265eafc4ea47f5a914e GIT binary patch literal 6656 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 + + + + + \ No newline at end of file diff --git a/VideoEnc/bin/Debug/VideoEnc.pdb b/VideoEnc/bin/Debug/VideoEnc.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2023554559e8932de37c4832f75029dc67a42207 GIT binary patch literal 28160 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 U6qoWeGD>-z#K+3B#U$uAJG~>-99V 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 J28u@m{{sc