From a8fc85ed029f7875bd23c55685c6af8c9dd3d188 Mon Sep 17 00:00:00 2001 From: Taran Pal Singh Date: Tue, 5 Feb 2019 15:27:15 +0530 Subject: [PATCH 1/5] with API requests using C# --- Week2-Project/Taran012/DataEntry.css | 131 +++++++++++++++++ Week2-Project/Taran012/DataEntry.html | 73 ++++++++++ Week2-Project/Taran012/DataEntry.js | 72 ++++++++++ Week2-Project/Taran012/DataList3.css | 127 ++++++++++++++++ Week2-Project/Taran012/DataList3.js | 159 +++++++++++++++++++++ Week2-Project/Taran012/add.png | Bin 0 -> 1060 bytes Week2-Project/Taran012/cybergroup-logo.png | Bin 0 -> 11444 bytes Week2-Project/Taran012/dataList3.html | 91 ++++++++++++ Week2-Project/Taran012/delete.png | Bin 0 -> 3026 bytes Week2-Project/Taran012/edit.png | Bin 0 -> 1724 bytes Week2-Project/Taran012/login.css | 146 +++++++++++++++++++ Week2-Project/Taran012/login.html | 53 +++++++ Week2-Project/Taran012/login.js | 16 +++ Week2-Project/Taran012/signup.css | 144 +++++++++++++++++++ Week2-Project/Taran012/signup.html | 58 ++++++++ Week2-Project/Taran012/signup.js | 25 ++++ 16 files changed, 1095 insertions(+) create mode 100644 Week2-Project/Taran012/DataEntry.css create mode 100644 Week2-Project/Taran012/DataEntry.html create mode 100644 Week2-Project/Taran012/DataEntry.js create mode 100644 Week2-Project/Taran012/DataList3.css create mode 100644 Week2-Project/Taran012/DataList3.js create mode 100644 Week2-Project/Taran012/add.png create mode 100644 Week2-Project/Taran012/cybergroup-logo.png create mode 100644 Week2-Project/Taran012/dataList3.html create mode 100644 Week2-Project/Taran012/delete.png create mode 100644 Week2-Project/Taran012/edit.png create mode 100644 Week2-Project/Taran012/login.css create mode 100644 Week2-Project/Taran012/login.html create mode 100644 Week2-Project/Taran012/login.js create mode 100644 Week2-Project/Taran012/signup.css create mode 100644 Week2-Project/Taran012/signup.html create mode 100644 Week2-Project/Taran012/signup.js diff --git a/Week2-Project/Taran012/DataEntry.css b/Week2-Project/Taran012/DataEntry.css new file mode 100644 index 0000000..8605aeb --- /dev/null +++ b/Week2-Project/Taran012/DataEntry.css @@ -0,0 +1,131 @@ +*{ + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} + +#pop{ + + background-color: white; + width: 700px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; + display: flex; + flex-direction: column; + +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +header nav{ + font-size: 20px; +} +footer nav{ + height: 50px; +} +h1{ + font-size: 32px; + padding: 30px 0 10px 0; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} + +form{ + width: 80%; + margin: 20px auto; + display: flex; + flex-direction: column; + /*align-items: center;*/ + justify-content: space-evenly; +} + +input{ + border: 0px; + max-width:80%; + min-width: 40%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; +} + +a{ + color: black; + text-decoration: none ; +} +#button{ + width: 30%; + height: 40px; + margin: 20px auto; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} +h3{ + margin: 10px 30px; +} + +.entry{ +/* display: inline-block;*/ + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 10px; +} + +select{ + margin-left: auto; + margin-right: auto; + width: 150px; + height: 50px; + font-size: 16px; + padding: 5px; + background-color: #e8e8e8; + text-align: center; + border-radius: 15px ; +} + + diff --git a/Week2-Project/Taran012/DataEntry.html b/Week2-Project/Taran012/DataEntry.html new file mode 100644 index 0000000..92091a3 --- /dev/null +++ b/Week2-Project/Taran012/DataEntry.html @@ -0,0 +1,73 @@ + + + + + + + Data Entry + + + + + +
+ + +
+
+ +

Details

+
+ +
+

Name:

+ +
+ + +
+ + +

Designation:

+ + +
+
+ +

Mail:

+ +
+ + + + +
+
+ + + + + diff --git a/Week2-Project/Taran012/DataEntry.js b/Week2-Project/Taran012/DataEntry.js new file mode 100644 index 0000000..0b21713 --- /dev/null +++ b/Week2-Project/Taran012/DataEntry.js @@ -0,0 +1,72 @@ +$(document).ready(function(){ + $.ajax({ + + type: 'GET', + url: "http://localhost:50434/api/designations", + dataType: "JSON", + success: function(res){ +// console.log(res); + + var myselect = document.createElement('select'); + var mydropdown = document.getElementById('dropdown'); + myselect.setAttribute("id", "designation"); +// myselect.className = "designation"; + for(var i =0; i zt*tF8Dr#(OTvSwKXJ^;h*~!bxo0XL{dGcgSOUoromdMJ=y1BW{ojbR$uTMoq#s9mD z0|Ntdfv1aONX4ADcV7oRau9HMxJ1$6fWpH^tb(Go|I_cdcyBl8p7c`f%ZBHFw$EM9 z!ReAXsigxBUM!!sSLZa_+$pI)|E!9>ldxsdx#&I5WIvYWzu#~0b{l`{%(-{W<4XE( zr?2y`+S9lF`IlOy^y|w%>2?=?zPGw(_hp9pF+X0pgb7#QFL=l{)-HtP~?(ym`X2{~Z?5N_zDc1K$V3`rW=(;39HhaP39bs2a>Ig`j z>~t$!_0m;2hLvk`M$1C=;NZm1?;EFWmgQI~^VWR#*4gizZ|q398#`;m_u4A?#O{Y2 zg0pm(7G_yEwWxJFtdQyxSa?!NU{#y4OU5RSmQ}<{+xOb-YTID*Fa5mwl%jjq+m5B5 zQFH(QV!eE}hFqA`3j_=|B5AR-nTUVcw z`k4D#+3e){Z`Xgz`n^xeN!rnUaZ$v3m#q;jPFD+BIDEw#159NUohG{~gz&m|Tu2e* z2t6#QWD-e&bfWs9LZdscAGJ*XUwcnoH)4jnGS6LsOu1fz67$omGrn!V!NT?U=E28? zArgoCVoQbg$p6gNIh4A>VAAB3HZ4ral}cIv7VhhDUU9=lzbo9dOLzAq3%=mH%MJ+6 z@m2lf6D5A|w3Mdl0hO7R;$0?oy_eTzzvo}{rPSfObZJyh^xNughogLR<9%)9mv6ej zJUQi6xQ5Xdfv9_;n|%*$fBxrMxBsG+{rWjiivAZ)R5wnTbmzD7EvCs!KDceMaj}p3 zy({C!+?0RQtd+WSa`c3M$BO&)D2c64`4{=`&4GxYzkXd`#4dej#=naiC$9hb#B}@9 zp>O)hx|N&4_Aa(xw>tCUqunAp)iX5Tt=gJnH&=8uU#|J>v&q*EE_Qc80;~Qp#I3KM V@n+-uB49>m@O1TaS?83{1OQfB=h*-N literal 0 HcmV?d00001 diff --git a/Week2-Project/Taran012/cybergroup-logo.png b/Week2-Project/Taran012/cybergroup-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e0453c9ce3cb616d74f64d3ebd1b2b8931cecb9a GIT binary patch literal 11444 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 YM6Qt8Wd~fk|EVLE5|bCL5;h3@KNv30$N&HU literal 0 HcmV?d00001 diff --git a/Week2-Project/Taran012/dataList3.html b/Week2-Project/Taran012/dataList3.html new file mode 100644 index 0000000..f7b4585 --- /dev/null +++ b/Week2-Project/Taran012/dataList3.html @@ -0,0 +1,91 @@ + + + + + + + Data List + + + + +
+ + +
+
+

Edit details of Employee

+ + + + + + + + + + + + + + + + + +
Employee CodeName DesignationEmail
+ +
+ +
+ +

List of Employees

+
Create new
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Week2-Project/Taran012/delete.png b/Week2-Project/Taran012/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1609d785528c23a585d181dc4e366c6b8ff287 GIT binary patch literal 3026 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 UBPrY};Q#;t07*qoM6N<$f;R!ktN;K2 literal 0 HcmV?d00001 diff --git a/Week2-Project/Taran012/edit.png b/Week2-Project/Taran012/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c9feb987f8a152d4332fc9991f319a85bcfe9e GIT binary patch literal 1724 zcmV;t21EIYP)9PEJl#R8(_wbM5Wz<>lp9S67*t znQUxqcXxN9qN4Nj^PHTVEG#TEG&ID-#33Oexw*L@ARyu4;V&;Q6ciM)va*ANgQ%#e zkB^TT85ue{I);XZz`(!@3k$xUe@_4a1^G!tK~#90?VW3P+Bg(NWzs;JLXt@vN&_Lh zJN*AYSlc2zef7Muj=Z$LvN}trXQP*0Mu-#{&;MVpm$UwJFZM`+@bWq;zSyn$v4_J> z|G(mr&t>c(u`<6eZkfKv9u^{72lv~s(D)~q^qFKO%XH*kKlNQyq!DK}>Z!l3& z?E;n&Q)|&iQAuK=+BR5`)CSHaU{a#mD=JAwRJR5z5)susV7U!Xp+#3kB~$zseHyIT zp||MQUqm;VtSE z{<`0Ly1{?G=qu{)*a7tX@JskT_V^7L>0>C^#UB1S)TH3m;CWR^#Ds5oe}3tO`_%&Jkf&i{r9Kwdg7;%8EZc4T-nK3COPPV&lRZ@vYSy zBv(5#N>qmp+ybM*;q|zv7VS?OvsQypG*rVSD#lXLcs`;c+KD=VaFkdDI7EGf2uPOV z-{K#LfQoh8_q&MEpmL+)Cn`ojjd4Dr!Yitds24Sf1}mt8flkyNL_nh%gNmrWWK2X+ ziOY0@vCtbYYxbfhq^LR~B`QWhs{^~8s2GY`9uaIr#c0s_ux>6Y#yaS5r)1jVH;90& z*DaS3F%)%tT1K^a{`ZA3$vEH7>sw4%QFX+x|76mNO4OoaDC+r8UL`6VJ2Mr03& z7Li#|yojum%n6(qxC1CEL1{6Fq7sak5CSP$fpMA$rYOn}(l8vCumfgA-N9(E^8vG> z?mWcKRuiy6jGOJwD;jbgjGe6}q@uC2)dUQPadn>+b!QMeTTSPeiL9tQkFm4WbY9WU zpCbqC|X8!}*4v<JEmYo!_d3ypxHY zt)}yrPFYcRvZAff`Gvmor-^_8^MSV&I1*m0WRY!OaT3137&MI~IK!Up7O5mZqLM~fJf%Ww%@#QHQYQdHX(QPx4p>TG08qJr#XzWBTt9EYe-iVD%Y9NmY1i&%;t z*84NOMFmq-h}Y{8?)^lC3n(6L#^@y~nxZB9+fjP72sX)7G!B~lF6tuUDJsOWaimi> zQ2`aDpNG1%2&ibufEex8J|d!`@_gUS^qKf0l&Fx3-mdrO*tLkMXv2Dc2DvUaMMOFe zUZDK3JPT1_0}55Z5-Q?#i>QiTobQ`kG+P%zCz*<+CSmbmA}X$;ChtG(^`hb`S~Afl z)QbwNs1PsufaUH+Eh^?t<_pz&ZxHbgUD4xxzK#jqBJw0tVfxFXWQ%j8SGgJ(Zw(XD ziv~DG6OBexY}Wc@M;1v&TC{&-wn_K!_dTKS z-vQ${4@R4Qdg&_OOwtX1_hXOK9o_kU`s1yi&ZN@BLKW|6Jx^;^X@czT=aRZ1O^jVb zy1}m*_3mDRTwh^KHnTLROq$^_+WjVqC literal 0 HcmV?d00001 diff --git a/Week2-Project/Taran012/login.css b/Week2-Project/Taran012/login.css new file mode 100644 index 0000000..83c8e85 --- /dev/null +++ b/Week2-Project/Taran012/login.css @@ -0,0 +1,146 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + box-shadow: 10px 0px 50px grey; +} + + +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week2-Project/Taran012/login.html b/Week2-Project/Taran012/login.html new file mode 100644 index 0000000..c382b3b --- /dev/null +++ b/Week2-Project/Taran012/login.html @@ -0,0 +1,53 @@ + + + + + + + Sign UP + + + +
+ + +
+
+
+ +
+ + +
+
+ + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week2-Project/Taran012/login.js b/Week2-Project/Taran012/login.js new file mode 100644 index 0000000..1f8f406 --- /dev/null +++ b/Week2-Project/Taran012/login.js @@ -0,0 +1,16 @@ +function myfunc(){ + + var username = document.getElementById("name").value; + var password = document.getElementById("password").value; + if(username == ""){ + alert("Username is missing"); + } + else if(password == ""){ + alert("Password is missing"); + } +// var myOBJ = {username,password}; +// console.log(myOBJ); +// var myJSON = JSON.stringify(loginid); + + window.location.href = "DataList3.html"; +} \ No newline at end of file diff --git a/Week2-Project/Taran012/signup.css b/Week2-Project/Taran012/signup.css new file mode 100644 index 0000000..1f00e2b --- /dev/null +++ b/Week2-Project/Taran012/signup.css @@ -0,0 +1,144 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + width: 100%; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + box-shadow: 10px 0px 50px grey; +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week2-Project/Taran012/signup.html b/Week2-Project/Taran012/signup.html new file mode 100644 index 0000000..bad0f7b --- /dev/null +++ b/Week2-Project/Taran012/signup.html @@ -0,0 +1,58 @@ + + + + + + + Sign UP + + + +
+ + +
+
+
+
+ + + +
+
+ + + + + + + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week2-Project/Taran012/signup.js b/Week2-Project/Taran012/signup.js new file mode 100644 index 0000000..f88269c --- /dev/null +++ b/Week2-Project/Taran012/signup.js @@ -0,0 +1,25 @@ +function myfunc(){ + var fields = ["fname","lname","email","password"]; + + + for(var i =0;i<4;i++){ + var x = document.forms["myForm"][fields[i]].value; + if (x == "") { + alert("All fields are required"); + return false; + } + } + window.location.href = "login.html"; +// var FName = document.getElementById("fname").value; +// var LName = document.getElementById("lname").value; +// var email = document.getElementById("email").value; +// var password = document.getElementById("password").value; +// +// var myOBJ = { +// FName,LName,email,password +// } +// console.log(myOBJ); +// var myJSON = JSON.stringify(myOBJ); +// + +} \ No newline at end of file From 8c0e01f89640a0704ec64d69e43be9c176a9094e Mon Sep 17 00:00:00 2001 From: Taran Pal Singh Date: Tue, 5 Feb 2019 16:11:30 +0530 Subject: [PATCH 2/5] netlify's link and edmx file added --- Week2-Project/Taran012/EDMX ss.jpeg | Bin 0 -> 169464 bytes Week2-Project/Taran012/index.css | 144 +++++++++++++++++++++++++++ Week2-Project/Taran012/index.html | 58 +++++++++++ Week2-Project/Taran012/index.js | 25 +++++ Week2-Project/Taran012/login.html | 2 +- Week2-Project/Taran012/readme.md.txt | 1 + Week2-Project/Taran012/retreive.css | 93 +++++++++++++++++ Week2-Project/Taran012/retreive.html | 69 +++++++++++++ 8 files changed, 391 insertions(+), 1 deletion(-) create mode 100644 Week2-Project/Taran012/EDMX ss.jpeg create mode 100644 Week2-Project/Taran012/index.css create mode 100644 Week2-Project/Taran012/index.html create mode 100644 Week2-Project/Taran012/index.js create mode 100644 Week2-Project/Taran012/readme.md.txt create mode 100644 Week2-Project/Taran012/retreive.css create mode 100644 Week2-Project/Taran012/retreive.html diff --git a/Week2-Project/Taran012/EDMX ss.jpeg b/Week2-Project/Taran012/EDMX ss.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0cb4c0a70ad2b697a596d92303c5053362f1ea68 GIT binary patch literal 169464 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 literal 0 HcmV?d00001 diff --git a/Week2-Project/Taran012/index.css b/Week2-Project/Taran012/index.css new file mode 100644 index 0000000..1f00e2b --- /dev/null +++ b/Week2-Project/Taran012/index.css @@ -0,0 +1,144 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + width: 100%; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + box-shadow: 10px 0px 50px grey; +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week2-Project/Taran012/index.html b/Week2-Project/Taran012/index.html new file mode 100644 index 0000000..08d11f8 --- /dev/null +++ b/Week2-Project/Taran012/index.html @@ -0,0 +1,58 @@ + + + + + + + Sign UP + + + +

+ + +
+
+
+
+ + + +
+
+ + + + + + + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week2-Project/Taran012/index.js b/Week2-Project/Taran012/index.js new file mode 100644 index 0000000..f88269c --- /dev/null +++ b/Week2-Project/Taran012/index.js @@ -0,0 +1,25 @@ +function myfunc(){ + var fields = ["fname","lname","email","password"]; + + + for(var i =0;i<4;i++){ + var x = document.forms["myForm"][fields[i]].value; + if (x == "") { + alert("All fields are required"); + return false; + } + } + window.location.href = "login.html"; +// var FName = document.getElementById("fname").value; +// var LName = document.getElementById("lname").value; +// var email = document.getElementById("email").value; +// var password = document.getElementById("password").value; +// +// var myOBJ = { +// FName,LName,email,password +// } +// console.log(myOBJ); +// var myJSON = JSON.stringify(myOBJ); +// + +} \ No newline at end of file diff --git a/Week2-Project/Taran012/login.html b/Week2-Project/Taran012/login.html index c382b3b..bf43cf0 100644 --- a/Week2-Project/Taran012/login.html +++ b/Week2-Project/Taran012/login.html @@ -23,7 +23,7 @@
- +
diff --git a/Week2-Project/Taran012/readme.md.txt b/Week2-Project/Taran012/readme.md.txt new file mode 100644 index 0000000..bb589f2 --- /dev/null +++ b/Week2-Project/Taran012/readme.md.txt @@ -0,0 +1 @@ +https://zealous-brahmagupta-91823c.netlify.com \ No newline at end of file diff --git a/Week2-Project/Taran012/retreive.css b/Week2-Project/Taran012/retreive.css new file mode 100644 index 0000000..0888b20 --- /dev/null +++ b/Week2-Project/Taran012/retreive.css @@ -0,0 +1,93 @@ +*{ + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} + +#pop{ + + background-color: white; + width: 700px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; + display: flex; + flex-direction: column; + +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +header nav{ + font-size: 20px; +} +footer nav{ + height: 50px; +} +h1{ + font-size: 32px; + padding: 30px 0 10px 0; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +a{ + color: black; + text-decoration: none ; +} + +#copyright{ + padding:10px; +} + + +table{ + font-size: 16px; + margin: 30px; + border-collapse: collapse; + padding: 20px; + +} +tr:nth-child(even) { + background-color: #f2f2f2; +} + +td,th{ + padding: 15px; + border: 2px solid black; +} + + diff --git a/Week2-Project/Taran012/retreive.html b/Week2-Project/Taran012/retreive.html new file mode 100644 index 0000000..7b95854 --- /dev/null +++ b/Week2-Project/Taran012/retreive.html @@ -0,0 +1,69 @@ + + + + + + + Retreive details + + +
+ + +
+
+ +

Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name:Taran
Sex:Male
D.O.B.:23/10/1997
Employee Code:INT012
Designation:Intern
Years of experience:0
+ +
+ + + + + \ No newline at end of file From d99c37e9e5f65e12dfe02936e3c442fcb7eb2cce Mon Sep 17 00:00:00 2001 From: taranpalsingh Date: Tue, 5 Feb 2019 16:12:14 +0530 Subject: [PATCH 3/5] Rename readme.md.txt to readme.md --- Week2-Project/Taran012/readme.md | 1 + Week2-Project/Taran012/readme.md.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Week2-Project/Taran012/readme.md delete mode 100644 Week2-Project/Taran012/readme.md.txt diff --git a/Week2-Project/Taran012/readme.md b/Week2-Project/Taran012/readme.md new file mode 100644 index 0000000..c3024d8 --- /dev/null +++ b/Week2-Project/Taran012/readme.md @@ -0,0 +1 @@ +https://zealous-brahmagupta-91823c.netlify.com diff --git a/Week2-Project/Taran012/readme.md.txt b/Week2-Project/Taran012/readme.md.txt deleted file mode 100644 index bb589f2..0000000 --- a/Week2-Project/Taran012/readme.md.txt +++ /dev/null @@ -1 +0,0 @@ -https://zealous-brahmagupta-91823c.netlify.com \ No newline at end of file From 3069b07aabc62ffecc62626cc4835c710554c9a3 Mon Sep 17 00:00:00 2001 From: Taran Pal Singh Date: Tue, 12 Feb 2019 14:32:27 +0530 Subject: [PATCH 4/5] backend added --- Week2-Project/Taran012/.gitignore | 3 + .../CorporateLedger/CorporateLedger.sln | 22 + .../CorporateLedger/App_Start/WebApiConfig.cs | 26 + .../Controllers/designationsController.cs | 119 +++ .../Controllers/employeesController.cs | 118 +++ .../Controllers/loginusersController.cs | 133 ++++ .../CorporateLedger/CorporateLedger.csproj | 212 +++++ .../CorporateLedger.csproj.user | 38 + .../CorporateLedger/Global.asax | 1 + .../CorporateLedger/Global.asax.cs | 22 + .../Models/Corporateledger.Context.cs | 32 + .../Models/Corporateledger.Context.tt | 636 +++++++++++++++ .../Models/Corporateledger.Designer.cs | 10 + .../CorporateLedger/Models/Corporateledger.cs | 9 + .../Models/Corporateledger.edmx | 158 ++++ .../Models/Corporateledger.edmx.diagram | 15 + .../CorporateLedger/Models/Corporateledger.tt | 733 ++++++++++++++++++ .../CorporateLedger/Models/designation.cs | 29 + .../CorporateLedger/Models/employee.cs | 24 + .../CorporateLedger/Models/loginuser.cs | 20 + .../Properties/AssemblyInfo.cs | 35 + .../CorporateLedger/Web.Debug.config | 30 + .../CorporateLedger/Web.Release.config | 31 + .../CorporateLedger/Web.config | 67 ++ .../CorporateLedger/packages.config | 13 + 25 files changed, 2536 insertions(+) create mode 100644 Week2-Project/Taran012/.gitignore create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger.sln create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/App_Start/WebApiConfig.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/designationsController.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/employeesController.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/loginusersController.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj.user create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.tt create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Designer.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx.diagram create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.tt create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/designation.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/employee.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/loginuser.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Properties/AssemblyInfo.cs create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Debug.config create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Release.config create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.config create mode 100644 Week2-Project/Taran012/CorporateLedger/CorporateLedger/packages.config diff --git a/Week2-Project/Taran012/.gitignore b/Week2-Project/Taran012/.gitignore new file mode 100644 index 0000000..11cb64a --- /dev/null +++ b/Week2-Project/Taran012/.gitignore @@ -0,0 +1,3 @@ +CorporateLedger/.vs +CorporateLedger/packages +CorporateLedger/CorporateLedger/bin diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger.sln b/Week2-Project/Taran012/CorporateLedger/CorporateLedger.sln new file mode 100644 index 0000000..d9be734 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 14 for Web +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CorporateLedger", "CorporateLedger\CorporateLedger.csproj", "{D8FB30AB-D096-4D93-963F-2ADC5C30D463}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D8FB30AB-D096-4D93-963F-2ADC5C30D463}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8FB30AB-D096-4D93-963F-2ADC5C30D463}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8FB30AB-D096-4D93-963F-2ADC5C30D463}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8FB30AB-D096-4D93-963F-2ADC5C30D463}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/App_Start/WebApiConfig.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/App_Start/WebApiConfig.cs new file mode 100644 index 0000000..6c42fb9 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/App_Start/WebApiConfig.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Http; +using System.Web.Http.Cors; + +namespace CorporateLedger +{ + public static class WebApiConfig + { + public static void Register(HttpConfiguration config) + { + // Web API configuration and services + var cors = new EnableCorsAttribute("*", "*", "*"); + config.EnableCors(cors); + // Web API routes + config.MapHttpAttributeRoutes(); + + config.Routes.MapHttpRoute( + name: "DefaultApi", + routeTemplate: "api/{controller}/{id}", + defaults: new { id = RouteParameter.Optional } + ); + } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/designationsController.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/designationsController.cs new file mode 100644 index 0000000..fc416a9 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/designationsController.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.Description; +using CorporateLedger.Models; +using System.Web.Http.Cors; + +namespace CorporateLedger.Controllers +{ + public class designationsController : ApiController + { + private CorporateLedgerEntities db = new CorporateLedgerEntities(); + + // GET: api/designations + public IQueryable Getdesignations() + { + return db.designations; + } + + // GET: api/designations/5 + [ResponseType(typeof(designation))] + public IHttpActionResult Getdesignation(int id) + { + designation designation = db.designations.Find(id); + if (designation == null) + { + return NotFound(); + } + + return Ok(designation); + } + + // PUT: api/designations/5 + [ResponseType(typeof(void))] + public IHttpActionResult Putdesignation(int id, designation designation) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (id != designation.id) + { + return BadRequest(); + } + + db.Entry(designation).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!designationExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return StatusCode(HttpStatusCode.NoContent); + } + + // POST: api/designations + [ResponseType(typeof(designation))] + public IHttpActionResult Postdesignation(designation designation) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.designations.Add(designation); + db.SaveChanges(); + + return CreatedAtRoute("DefaultApi", new { id = designation.id }, designation); + } + + // DELETE: api/designations/5 + [ResponseType(typeof(designation))] + public IHttpActionResult Deletedesignation(int id) + { + designation designation = db.designations.Find(id); + if (designation == null) + { + return NotFound(); + } + + db.designations.Remove(designation); + db.SaveChanges(); + + return Ok(designation); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + + private bool designationExists(int id) + { + return db.designations.Count(e => e.id == id) > 0; + } + } +} \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/employeesController.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/employeesController.cs new file mode 100644 index 0000000..8fce0ca --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/employeesController.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.Description; +using CorporateLedger.Models; + +namespace CorporateLedger.Controllers +{ + public class employeesController : ApiController + { + private CorporateLedgerEntities db = new CorporateLedgerEntities(); + + // GET: api/employees + public IQueryable Getemployees() + { + return db.employees; + } + + // GET: api/employees/5 + [ResponseType(typeof(employee))] + public IHttpActionResult Getemployee(int id) + { + employee employee = db.employees.Find(id); + if (employee == null) + { + return NotFound(); + } + + return Ok(employee); + } + + // PUT: api/employees/5 + [ResponseType(typeof(void))] + public IHttpActionResult Putemployee(int id, employee employee) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (id != employee.id) + { + return BadRequest(); + } + + db.Entry(employee).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!employeeExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return StatusCode(HttpStatusCode.NoContent); + } + + // POST: api/employees + [ResponseType(typeof(employee))] + public IHttpActionResult Postemployee(employee employee) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.employees.Add(employee); + db.SaveChanges(); + + return CreatedAtRoute("DefaultApi", new { id = employee.id }, employee); + } + + // DELETE: api/employees/5 + [ResponseType(typeof(employee))] + public IHttpActionResult Deleteemployee(int id) + { + employee employee = db.employees.Find(id); + if (employee == null) + { + return NotFound(); + } + + db.employees.Remove(employee); + db.SaveChanges(); + + return Ok(employee); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + + private bool employeeExists(int id) + { + return db.employees.Count(e => e.id == id) > 0; + } + } +} \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/loginusersController.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/loginusersController.cs new file mode 100644 index 0000000..0fd4b66 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Controllers/loginusersController.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.Description; +using CorporateLedger.Models; + +namespace CorporateLedger.Controllers +{ + public class loginusersController : ApiController + { + private CorporateLedgerEntities db = new CorporateLedgerEntities(); + + // GET: api/loginusers + public IQueryable Getloginusers() + { + return db.loginusers; + } + + // GET: api/loginusers/5 + [ResponseType(typeof(loginuser))] + public IHttpActionResult Getloginuser(string id) + { + loginuser loginuser = db.loginusers.Find(id); + if (loginuser == null) + { + return NotFound(); + } + + return Ok(loginuser); + } + + // PUT: api/loginusers/5 + [ResponseType(typeof(void))] + public IHttpActionResult Putloginuser(string id, loginuser loginuser) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (id != loginuser.mail) + { + return BadRequest(); + } + + db.Entry(loginuser).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!loginuserExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return StatusCode(HttpStatusCode.NoContent); + } + + // POST: api/loginusers + [ResponseType(typeof(loginuser))] + public IHttpActionResult Postloginuser(loginuser loginuser) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.loginusers.Add(loginuser); + + try + { + db.SaveChanges(); + } + catch (DbUpdateException) + { + if (loginuserExists(loginuser.mail)) + { + return Conflict(); + } + else + { + throw; + } + } + + return CreatedAtRoute("DefaultApi", new { id = loginuser.mail }, loginuser); + } + + // DELETE: api/loginusers/5 + [ResponseType(typeof(loginuser))] + public IHttpActionResult Deleteloginuser(string id) + { + loginuser loginuser = db.loginusers.Find(id); + if (loginuser == null) + { + return NotFound(); + } + + db.loginusers.Remove(loginuser); + db.SaveChanges(); + + return Ok(loginuser); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + + private bool loginuserExists(string id) + { + return db.loginusers.Count(e => e.mail == id) > 0; + } + } +} \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj new file mode 100644 index 0000000..ba5de93 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj @@ -0,0 +1,212 @@ + + + + + + + Debug + AnyCPU + + + 2.0 + {D8FB30AB-D096-4D93-963F-2ADC5C30D463} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + CorporateLedger + CorporateLedger + v4.5.2 + true + + + + + + + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll + True + + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll + True + + + ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + True + + + + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll + True + + + + + ..\packages\Microsoft.AspNet.Cors.5.2.7\lib\net45\System.Web.Cors.dll + True + + + + + + + + + + + + ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll + True + + + ..\packages\Microsoft.AspNet.WebApi.Cors.5.2.7\lib\net45\System.Web.Http.Cors.dll + True + + + + + + + + + + + + ..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll + + + ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + + + + + + TextTemplatingFileGenerator + Corporateledger.edmx + Corporateledger.Context.cs + + + TextTemplatingFileGenerator + Corporateledger.edmx + Corporateledger.cs + + + + + + + + + + Global.asax + + + True + True + Corporateledger.Context.tt + + + True + True + Corporateledger.tt + + + True + True + Corporateledger.edmx + + + Corporateledger.tt + + + Corporateledger.tt + + + Corporateledger.tt + + + + + + + EntityModelCodeGenerator + Corporateledger.Designer.cs + + + Corporateledger.edmx + + + Web.config + + + Web.config + + + + + + + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + True + True + 50434 + / + http://localhost:50434/ + False + False + + + False + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj.user b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj.user new file mode 100644 index 0000000..346d984 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/CorporateLedger.csproj.user @@ -0,0 +1,38 @@ + + + + true + 600 + True + False + True + + CorporateLedger.Models.CorporateLedgerEntities + False + + + + + + + + CurrentPage + True + False + False + False + + + + + + + + + True + True + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax new file mode 100644 index 0000000..ffbb0ab --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax @@ -0,0 +1 @@ +<%@ Application Codebehind="Global.asax.cs" Inherits="CorporateLedger.WebApiApplication" Language="C#" %> diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax.cs new file mode 100644 index 0000000..66debec --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Global.asax.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Http; +using System.Web.Routing; + +namespace CorporateLedger +{ + public class WebApiApplication : System.Web.HttpApplication + { + protected void Application_Start() + { + GlobalConfiguration.Configure(WebApiConfig.Register); + HttpConfiguration config = GlobalConfiguration.Configuration; + + config.Formatters.JsonFormatter + .SerializerSettings + .ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; + } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.cs new file mode 100644 index 0000000..c3c0b76 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CorporateLedger.Models +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class CorporateLedgerEntities : DbContext + { + public CorporateLedgerEntities() + : base("name=CorporateLedgerEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet designations { get; set; } + public virtual DbSet employees { get; set; } + public virtual DbSet loginusers { get; set; } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.tt b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.tt new file mode 100644 index 0000000..b79ad5d --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Context.tt @@ -0,0 +1,636 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Corporateledger.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Entity.Core.Objects; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} + +foreach (var entitySet in container.BaseEntitySets.OfType()) +{ + // Note: the DbSet members are defined below such that the getter and + // setter always have the same accessibility as the DbSet definition + if (Accessibility.ForReadOnlyProperty(entitySet) != "public") + { +#> + <#=codeStringGenerator.DbSetInitializer(entitySet)#> +<# + } +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string DbSetInitializer(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} = Set<{1}>();", + _code.Escape(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Designer.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Designer.cs new file mode 100644 index 0000000..5c9ed0c --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.Designer.cs @@ -0,0 +1,10 @@ +// T4 code generation is enabled for model 'c:\users\taran.singh\documents\visual studio 2015\Projects\CorporateLedger\CorporateLedger\Models\Corporateledger.edmx'. +// To enable legacy code generation, change the value of the 'Code Generation Strategy' designer +// property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model +// is open in the designer. + +// If no context and entity classes have been generated, it may be because you created an empty model but +// have not yet chosen which version of Entity Framework to use. To generate a context class and entity +// classes for your model, open the model in the designer, right-click on the designer surface, and +// select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation +// Item...'. \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.cs new file mode 100644 index 0000000..7cc0662 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx new file mode 100644 index 0000000..1257414 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx.diagram b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx.diagram new file mode 100644 index 0000000..8fc1b9c --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.edmx.diagram @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.tt b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.tt new file mode 100644 index 0000000..0e0c50c --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/Corporateledger.tt @@ -0,0 +1,733 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Corporateledger.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { + if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] +<# + } +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/designation.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/designation.cs new file mode 100644 index 0000000..58f84c6 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/designation.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CorporateLedger.Models +{ + using System; + using System.Collections.Generic; + + public partial class designation + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public designation() + { + this.employees = new HashSet(); + } + + public int id { get; set; } + public string name { get; set; } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + public virtual ICollection employees { get; set; } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/employee.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/employee.cs new file mode 100644 index 0000000..ec6e7c7 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/employee.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CorporateLedger.Models +{ + using System; + using System.Collections.Generic; + + public partial class employee + { + public int id { get; set; } + public string mail { get; set; } + public string name { get; set; } + public Nullable designationid { get; set; } + + public virtual designation designation { get; set; } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/loginuser.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/loginuser.cs new file mode 100644 index 0000000..5141b39 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Models/loginuser.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CorporateLedger.Models +{ + using System; + using System.Collections.Generic; + + public partial class loginuser + { + public string mail { get; set; } + public string pass { get; set; } + } +} diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Properties/AssemblyInfo.cs b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e7f47a3 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +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("CorporateLedger")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CorporateLedger")] +[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("d8fb30ab-d096-4d93-963f-2adc5c30d463")] + +// 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 Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Debug.config b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Debug.config new file mode 100644 index 0000000..2e302f9 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Debug.config @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Release.config b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Release.config new file mode 100644 index 0000000..c358444 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.Release.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.config b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.config new file mode 100644 index 0000000..1bc39c5 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/Web.config @@ -0,0 +1,67 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Week2-Project/Taran012/CorporateLedger/CorporateLedger/packages.config b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/packages.config new file mode 100644 index 0000000..4367546 --- /dev/null +++ b/Week2-Project/Taran012/CorporateLedger/CorporateLedger/packages.config @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file From 2136a0897bc709c4640473aa8b2883e3242a704b Mon Sep 17 00:00:00 2001 From: Taran Pal Singh Date: Wed, 20 Feb 2019 23:41:51 +0530 Subject: [PATCH 5/5] JAVA as backend --- Week3-Project/Taran012/DataEntry.css | 131 ++++++++ Week3-Project/Taran012/DataEntry.html | 73 +++++ Week3-Project/Taran012/DataEntry.js | 72 +++++ Week3-Project/Taran012/DataList3.css | 127 ++++++++ Week3-Project/Taran012/DataList3.js | 157 ++++++++++ Week3-Project/Taran012/EDMX ss.jpeg | Bin 0 -> 169464 bytes Week3-Project/Taran012/add.png | Bin 0 -> 1060 bytes Week3-Project/Taran012/cybergroup-logo.png | Bin 0 -> 11444 bytes Week3-Project/Taran012/dataList3.html | 91 ++++++ Week3-Project/Taran012/delete.png | Bin 0 -> 3026 bytes Week3-Project/Taran012/demo/.gitignore | 25 ++ .../demo/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + Week3-Project/Taran012/demo/mvnw | 286 ++++++++++++++++++ Week3-Project/Taran012/demo/mvnw.cmd | 161 ++++++++++ Week3-Project/Taran012/demo/pom.xml | 114 +++++++ .../com/example/demo/DemoApplication.java | 14 + .../main/java/com/example/demo/Employee.java | 32 ++ .../example/demo/EmployeeRegistration.java | 124 ++++++++ .../demo/EmployeeRegistrationReply.java | 39 +++ .../main/java/com/example/demo/Student.java | 27 ++ .../com/example/demo/StudentRegistration.java | 50 +++ .../demo/StudentRegistrationReply.java | 33 ++ .../example/demo/controllers/EmployeeAdd.java | 59 ++++ .../demo/controllers/EmployeeDelete.java | 45 +++ .../demo/controllers/EmployeeRetrieve.java | 64 ++++ .../demo/controllers/EmployeeRetrieveOne.java | 51 ++++ .../demo/controllers/EmployeeUpdate.java | 54 ++++ .../controllers/StudentDeleteController.java | 19 ++ .../StudentRegistrationController.java | 25 ++ .../StudentRetrieveController.java | 19 ++ .../controllers/StudentUpdateController.java | 18 ++ .../src/main/java/repository/JdbcTry.java | 42 +++ .../demo/src/main/java/repository/sqltry.java | 42 +++ .../src/main/resources/application.properties | 3 + .../example/demo/DemoApplicationTests.java | 17 ++ Week3-Project/Taran012/edit.png | Bin 0 -> 1724 bytes Week3-Project/Taran012/index.css | 144 +++++++++ Week3-Project/Taran012/index.html | 58 ++++ Week3-Project/Taran012/index.js | 25 ++ Week3-Project/Taran012/login.css | 146 +++++++++ Week3-Project/Taran012/login.html | 53 ++++ Week3-Project/Taran012/login.js | 16 + Week3-Project/Taran012/readme.md | 1 + Week3-Project/Taran012/retreive.css | 93 ++++++ Week3-Project/Taran012/retreive.html | 69 +++++ Week3-Project/Taran012/signup.css | 144 +++++++++ Week3-Project/Taran012/signup.html | 58 ++++ Week3-Project/Taran012/signup.js | 25 ++ 49 files changed, 2847 insertions(+) create mode 100644 Week3-Project/Taran012/DataEntry.css create mode 100644 Week3-Project/Taran012/DataEntry.html create mode 100644 Week3-Project/Taran012/DataEntry.js create mode 100644 Week3-Project/Taran012/DataList3.css create mode 100644 Week3-Project/Taran012/DataList3.js create mode 100644 Week3-Project/Taran012/EDMX ss.jpeg create mode 100644 Week3-Project/Taran012/add.png create mode 100644 Week3-Project/Taran012/cybergroup-logo.png create mode 100644 Week3-Project/Taran012/dataList3.html create mode 100644 Week3-Project/Taran012/delete.png create mode 100644 Week3-Project/Taran012/demo/.gitignore create mode 100644 Week3-Project/Taran012/demo/.mvn/wrapper/maven-wrapper.jar create mode 100644 Week3-Project/Taran012/demo/.mvn/wrapper/maven-wrapper.properties create mode 100644 Week3-Project/Taran012/demo/mvnw create mode 100644 Week3-Project/Taran012/demo/mvnw.cmd create mode 100644 Week3-Project/Taran012/demo/pom.xml create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/DemoApplication.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/Employee.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistration.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistrationReply.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/Student.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistration.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistrationReply.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeAdd.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeDelete.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieve.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieveOne.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeUpdate.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentDeleteController.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRegistrationController.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRetrieveController.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentUpdateController.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/repository/JdbcTry.java create mode 100644 Week3-Project/Taran012/demo/src/main/java/repository/sqltry.java create mode 100644 Week3-Project/Taran012/demo/src/main/resources/application.properties create mode 100644 Week3-Project/Taran012/demo/src/test/java/com/example/demo/DemoApplicationTests.java create mode 100644 Week3-Project/Taran012/edit.png create mode 100644 Week3-Project/Taran012/index.css create mode 100644 Week3-Project/Taran012/index.html create mode 100644 Week3-Project/Taran012/index.js create mode 100644 Week3-Project/Taran012/login.css create mode 100644 Week3-Project/Taran012/login.html create mode 100644 Week3-Project/Taran012/login.js create mode 100644 Week3-Project/Taran012/readme.md create mode 100644 Week3-Project/Taran012/retreive.css create mode 100644 Week3-Project/Taran012/retreive.html create mode 100644 Week3-Project/Taran012/signup.css create mode 100644 Week3-Project/Taran012/signup.html create mode 100644 Week3-Project/Taran012/signup.js diff --git a/Week3-Project/Taran012/DataEntry.css b/Week3-Project/Taran012/DataEntry.css new file mode 100644 index 0000000..8605aeb --- /dev/null +++ b/Week3-Project/Taran012/DataEntry.css @@ -0,0 +1,131 @@ +*{ + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} + +#pop{ + + background-color: white; + width: 700px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; + display: flex; + flex-direction: column; + +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +header nav{ + font-size: 20px; +} +footer nav{ + height: 50px; +} +h1{ + font-size: 32px; + padding: 30px 0 10px 0; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} + +form{ + width: 80%; + margin: 20px auto; + display: flex; + flex-direction: column; + /*align-items: center;*/ + justify-content: space-evenly; +} + +input{ + border: 0px; + max-width:80%; + min-width: 40%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; +} + +a{ + color: black; + text-decoration: none ; +} +#button{ + width: 30%; + height: 40px; + margin: 20px auto; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} +h3{ + margin: 10px 30px; +} + +.entry{ +/* display: inline-block;*/ + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 10px; +} + +select{ + margin-left: auto; + margin-right: auto; + width: 150px; + height: 50px; + font-size: 16px; + padding: 5px; + background-color: #e8e8e8; + text-align: center; + border-radius: 15px ; +} + + diff --git a/Week3-Project/Taran012/DataEntry.html b/Week3-Project/Taran012/DataEntry.html new file mode 100644 index 0000000..92091a3 --- /dev/null +++ b/Week3-Project/Taran012/DataEntry.html @@ -0,0 +1,73 @@ + + + + + + + Data Entry + + + + + +
+ + +
+
+ +

Details

+ + +
+

Name:

+ +
+ + +
+ + +

Designation:

+ + +
+
+ +

Mail:

+ +
+ + + + + +
+ + + + + diff --git a/Week3-Project/Taran012/DataEntry.js b/Week3-Project/Taran012/DataEntry.js new file mode 100644 index 0000000..0b21713 --- /dev/null +++ b/Week3-Project/Taran012/DataEntry.js @@ -0,0 +1,72 @@ +$(document).ready(function(){ + $.ajax({ + + type: 'GET', + url: "http://localhost:50434/api/designations", + dataType: "JSON", + success: function(res){ +// console.log(res); + + var myselect = document.createElement('select'); + var mydropdown = document.getElementById('dropdown'); + myselect.setAttribute("id", "designation"); +// myselect.className = "designation"; + for(var i =0; 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 literal 0 HcmV?d00001 diff --git a/Week3-Project/Taran012/add.png b/Week3-Project/Taran012/add.png new file mode 100644 index 0000000000000000000000000000000000000000..f64fc289f39d54409c67491f71b8d2979e7f4678 GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0vp^4?&oN8Ax*GDtQ2@`~aU2*Z=?jGcqy)d6zF=&dbZ& zy?gh@jT?Xc`c+m|cJk!OvuDpfc<|uUr%&PG;j34#{`&Q6U0q#DO3KZfHv zt*tF8Dr#(OTvSwKXJ^;h*~!bxo0XL{dGcgSOUoromdMJ=y1BW{ojbR$uTMoq#s9mD z0|Ntdfv1aONX4ADcV7oRau9HMxJ1$6fWpH^tb(Go|I_cdcyBl8p7c`f%ZBHFw$EM9 z!ReAXsigxBUM!!sSLZa_+$pI)|E!9>ldxsdx#&I5WIvYWzu#~0b{l`{%(-{W<4XE( zr?2y`+S9lF`IlOy^y|w%>2?=?zPGw(_hp9pF+X0pgb7#QFL=l{)-HtP~?(ym`X2{~Z?5N_zDc1K$V3`rW=(;39HhaP39bs2a>Ig`j z>~t$!_0m;2hLvk`M$1C=;NZm1?;EFWmgQI~^VWR#*4gizZ|q398#`;m_u4A?#O{Y2 zg0pm(7G_yEwWxJFtdQyxSa?!NU{#y4OU5RSmQ}<{+xOb-YTID*Fa5mwl%jjq+m5B5 zQFH(QV!eE}hFqA`3j_=|B5AR-nTUVcw z`k4D#+3e){Z`Xgz`n^xeN!rnUaZ$v3m#q;jPFD+BIDEw#159NUohG{~gz&m|Tu2e* z2t6#QWD-e&bfWs9LZdscAGJ*XUwcnoH)4jnGS6LsOu1fz67$omGrn!V!NT?U=E28? zArgoCVoQbg$p6gNIh4A>VAAB3HZ4ral}cIv7VhhDUU9=lzbo9dOLzAq3%=mH%MJ+6 z@m2lf6D5A|w3Mdl0hO7R;$0?oy_eTzzvo}{rPSfObZJyh^xNughogLR<9%)9mv6ej zJUQi6xQ5Xdfv9_;n|%*$fBxrMxBsG+{rWjiivAZ)R5wnTbmzD7EvCs!KDceMaj}p3 zy({C!+?0RQtd+WSa`c3M$BO&)D2c64`4{=`&4GxYzkXd`#4dej#=naiC$9hb#B}@9 zp>O)hx|N&4_Aa(xw>tCUqunAp)iX5Tt=gJnH&=8uU#|J>v&q*EE_Qc80;~Qp#I3KM V@n+-uB49>m@O1TaS?83{1OQfB=h*-N literal 0 HcmV?d00001 diff --git a/Week3-Project/Taran012/cybergroup-logo.png b/Week3-Project/Taran012/cybergroup-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e0453c9ce3cb616d74f64d3ebd1b2b8931cecb9a GIT binary patch literal 11444 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 YM6Qt8Wd~fk|EVLE5|bCL5;h3@KNv30$N&HU literal 0 HcmV?d00001 diff --git a/Week3-Project/Taran012/dataList3.html b/Week3-Project/Taran012/dataList3.html new file mode 100644 index 0000000..f7b4585 --- /dev/null +++ b/Week3-Project/Taran012/dataList3.html @@ -0,0 +1,91 @@ + + + + + + + Data List + + + + +

+ + +
+
+

Edit details of Employee

+ + + + + + + + + + + + + + + + + +
Employee CodeName DesignationEmail
+ +
+ +
+ +

List of Employees

+
Create new
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Week3-Project/Taran012/delete.png b/Week3-Project/Taran012/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1609d785528c23a585d181dc4e366c6b8ff287 GIT binary patch literal 3026 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 UBPrY};Q#;t07*qoM6N<$f;R!ktN;K2 literal 0 HcmV?d00001 diff --git a/Week3-Project/Taran012/demo/.gitignore b/Week3-Project/Taran012/demo/.gitignore new file mode 100644 index 0000000..c456c4a --- /dev/null +++ b/Week3-Project/Taran012/demo/.gitignore @@ -0,0 +1,25 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +/build/ diff --git a/Week3-Project/Taran012/demo/.mvn/wrapper/maven-wrapper.jar b/Week3-Project/Taran012/demo/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Week3-Project/Taran012/demo/mvnw.cmd b/Week3-Project/Taran012/demo/mvnw.cmd new file mode 100644 index 0000000..e5cfb0a --- /dev/null +++ b/Week3-Project/Taran012/demo/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/Week3-Project/Taran012/demo/pom.xml b/Week3-Project/Taran012/demo/pom.xml new file mode 100644 index 0000000..b10e522 --- /dev/null +++ b/Week3-Project/Taran012/demo/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.0.9.BUILD-SNAPSHOT + + + com.example + demo + 0.0.1-SNAPSHOT + demo + Demo project for Spring Boot + + + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter + + + org.springframework + spring-web + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + com.microsoft.sqlserver + mssql-jdbc + 7.2.0.jre11 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + src/main/resources + true + + + + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + + diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/DemoApplication.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/DemoApplication.java new file mode 100644 index 0000000..3f3d9f6 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/DemoApplication.java @@ -0,0 +1,14 @@ +package com.example.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} + diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Employee.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Employee.java new file mode 100644 index 0000000..8e47d36 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Employee.java @@ -0,0 +1,32 @@ +package com.example.demo; + +public class Employee { + int id; + String name; + String mail; + int DesignationID; + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getMail() { + return mail; + } + public void setMail(String mail) { + this.mail = mail; + } + public int getDesignationID() { + return DesignationID; + } + public void setDesignationID(int designationID) { + this.DesignationID = designationID; + } +} diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistration.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistration.java new file mode 100644 index 0000000..59f365c --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistration.java @@ -0,0 +1,124 @@ +package com.example.demo; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +public class EmployeeRegistration { + private List employeeRecords; + private static EmployeeRegistration empregd = null; + private EmployeeRegistration(){ + employeeRecords = new ArrayList(); + } + + public static EmployeeRegistration getInstance() { + if(empregd == null) { + empregd = new EmployeeRegistration(); + return empregd; + } + else { + return empregd; + } + } + +public void add(Employee emp) { + employeeRecords.add(emp); + + Connection conn = null; + try { + String name = emp.getName(); + int id = emp.getId(); + String mail = emp.getMail(); + int DesignationId = emp.getDesignationID(); +// String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = Database1"; + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + + Statement stmt = conn.createStatement(); + + stmt.execute("Drop table Personstest;"); + System.out.println("Dropped******************************"); + + stmt.execute("Create table Personstest( id int);"); + System.out.println("Created******************************"); + + stmt.execute("Insert into employee values( \'" + mail +"\' ," + " \'"+ name +"\' ," + DesignationId + ");"); + System.out.println("Done******************************"); + + System.out.println("Id is: " + id); + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + } + +// public List getEmployeeRecords() { +// return employeeRecords; +// } + public List getEmployeeRecords() { + + Connection conn = null; + try { + + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * from employee;"); + + while(rs.next()) { + Employee emp = new Employee(); + emp.setId(rs.getInt("id")); + emp.setDesignationID(rs.getInt("DesignationId")); + emp.setMail(rs.getString("mail")); + emp.setName(rs.getString("name")); + employeeRecords.add(emp); + System.out.println(rs.getInt("id") + "," + rs.getString("name")+ "," + rs.getInt("DesignationId") ); + } + System.out.println("done with get"); + + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + + return employeeRecords; + } + public String deleteEmployee(int id){ + Connection conn = null; + try { + + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + + Statement stmt = conn.createStatement(); + stmt.executeQuery("Delete from employee where id = " + id + ";"); + + } + + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return "Delete successful"; + + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistrationReply.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistrationReply.java new file mode 100644 index 0000000..efbb7dc --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/EmployeeRegistrationReply.java @@ -0,0 +1,39 @@ +package com.example.demo; + +public class EmployeeRegistrationReply { + int id; + String name; + String mail; + int DesignationID; + String EmployeeRegistrationStatus; + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getMail() { + return mail; + } + public void setMail(String mail) { + this.mail = mail; + } + public int getDesignationID() { + return DesignationID; + } + public void setDesignationID(int designationID) { + DesignationID = designationID; + } + public String getEmployeeRegistrationStatus() { + return EmployeeRegistrationStatus; + } + public void setEmployeeRegistrationStatus(String employeeRegistrationStatus) { + EmployeeRegistrationStatus = employeeRegistrationStatus; + } +} diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Student.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Student.java new file mode 100644 index 0000000..3ce37d8 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/Student.java @@ -0,0 +1,27 @@ +package com.example.demo; + +public class Student { + String name; + int age; + String registrationNumber; + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public String getRegistrationNumber() { + return registrationNumber; + } + public void setRegistrationNumber(String registrationNumber) { + this.registrationNumber = registrationNumber; + } +} + + diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistration.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistration.java new file mode 100644 index 0000000..3d0f56e --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistration.java @@ -0,0 +1,50 @@ +package com.example.demo; + +import java.util.ArrayList; +import java.util.List; + +public class StudentRegistration { + private List studentRecords; + private static StudentRegistration stdregd = null; + private StudentRegistration(){ + studentRecords = new ArrayList(); + } + + public static StudentRegistration getInstance() { + if(stdregd == null) { + stdregd = new StudentRegistration(); + return stdregd; + } + else { + return stdregd; + } + } + public void add(Student std) { + studentRecords.add(std); + } +public String upDateStudent(Student std) { +for(int i=0; i getStudentRecords() { + return studentRecords; + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistrationReply.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistrationReply.java new file mode 100644 index 0000000..e779dff --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/StudentRegistrationReply.java @@ -0,0 +1,33 @@ +package com.example.demo; + + +public class StudentRegistrationReply { + String name; + int age; + String registrationNumber; + String registrationStatus; + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public String getRegistrationNumber() { + return registrationNumber; + } + public void setRegistrationNumber(String registrationNumber) { + this.registrationNumber = registrationNumber; + } + public String getRegistrationStatus() { + return registrationStatus; + } + public void setRegistrationStatus(String registrationStatus) { + this.registrationStatus = registrationStatus; + } +} diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeAdd.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeAdd.java new file mode 100644 index 0000000..c893f2d --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeAdd.java @@ -0,0 +1,59 @@ +package com.example.demo.controllers; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.ResultSet; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.Employee; +import org.springframework.web.bind.annotation.CrossOrigin; + +@CrossOrigin (origins = "*") + +@Controller +public class EmployeeAdd{ + @RequestMapping(method = RequestMethod.POST, value="api/employees") + @ResponseBody + + public Employee addEmployee(@RequestBody Employee emp) { + + Employee emp1 = new Employee(); + Connection conn = null; + try { + String name = emp.getName(); +// int id = emp.getId(); + String mail = emp.getMail(); + int DesignationId = emp.getDesignationID(); +// String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = Database1"; + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + + Statement stmt = conn.createStatement(); + + stmt.execute("Insert into employee values( \'" + mail +"\' ," + " \'"+ name +"\' ," + DesignationId + ");"); + System.out.println("Done******************************"); + ResultSet rs = stmt.executeQuery("SELECT * from employee where name = \'" + name + "\' ;"); + + emp1.setId(rs.getInt("id")); + emp1.setDesignationID(rs.getInt("DesignationId")); + emp1.setMail(rs.getString("mail")); + emp1.setName(rs.getString("name")); + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return emp; + } + +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeDelete.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeDelete.java new file mode 100644 index 0000000..e1ce687 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeDelete.java @@ -0,0 +1,45 @@ +package com.example.demo.controllers; + + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.PathVariable; + +import org.springframework.web.bind.annotation.CrossOrigin; + +@CrossOrigin (origins = "*") + +@Controller +public class EmployeeDelete { + @RequestMapping(method = RequestMethod.DELETE, value="api/employees/{id}") + @ResponseBody + public String deleteEmployee(@PathVariable("id") int id){ + Connection conn = null; + try { + + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + Statement stmt = conn.createStatement(); + stmt.execute("Delete from employee where id = " + id + ";"); + + System.out.println("Deletion Successful******************************"); + } + // There is no status variable, So even if there is no corr entry It will return successful + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return "Delete successful"; + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieve.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieve.java new file mode 100644 index 0000000..be9dd45 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieve.java @@ -0,0 +1,64 @@ +package com.example.demo.controllers; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.Employee; +//import com.example.demo.EmployeeRegistration; +import org.springframework.web.bind.annotation.CrossOrigin; + +@CrossOrigin (origins = "*") + +@Controller + +public class EmployeeRetrieve { + @RequestMapping(method = RequestMethod.GET, value="api/employees") + @ResponseBody +// public List getAllEmployee() { +// return EmployeeRegistration.getInstance().getEmployeeRecords(); +// +// } + + + + public List getEmployeeRecords() { + + List empRecords = new ArrayList(); + Connection conn = null; + try { + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * from employee;"); + + while(rs.next()) { + Employee emp = new Employee(); + emp.setId(rs.getInt("id")); + emp.setDesignationID(rs.getInt("DesignationId")); + emp.setMail(rs.getString("mail")); + emp.setName(rs.getString("name")); + empRecords.add(emp); + System.out.println(rs.getInt("id") + "," + rs.getString("name")+ "," + rs.getInt("DesignationId") ); + } + System.out.println("done with get"); + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return empRecords; + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieveOne.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieveOne.java new file mode 100644 index 0000000..40e742b --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeRetrieveOne.java @@ -0,0 +1,51 @@ +package com.example.demo.controllers; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.Employee; +import org.springframework.web.bind.annotation.CrossOrigin; + +@CrossOrigin (origins = "*") + +@Controller + +public class EmployeeRetrieveOne { + @RequestMapping(method = RequestMethod.GET, value="api/employees/{getid}") + @ResponseBody + public Employee getEmployeeRecords(@PathVariable("getid") int getid) { + + Employee emp = new Employee(); + Connection conn = null; + try { + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * from employee where id = " + getid + ";"); + + while(rs.next()) { + emp.setId(rs.getInt("id")); + emp.setDesignationID(rs.getInt("DesignationId")); + emp.setMail(rs.getString("mail")); + emp.setName(rs.getString("name")); + } + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return emp; + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeUpdate.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeUpdate.java new file mode 100644 index 0000000..651b869 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/EmployeeUpdate.java @@ -0,0 +1,54 @@ +package com.example.demo.controllers; + + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.example.demo.Employee; + +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; + +@CrossOrigin (origins = "*") +@Controller +public class EmployeeUpdate { + @RequestMapping(method = RequestMethod.PUT, value="api/employees/{ChangeId}") + + @ResponseBody + public String deleteEmployee(@PathVariable("ChangeId") int ChangeId,@RequestBody Employee emp){ + + String name = emp.getName(); + int id = ChangeId; + String mail = emp.getMail(); + int DesignationId = emp.getDesignationID(); + Connection conn = null; + try { + + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = CorporateLedger"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + + System.out.println("Connection Successful******************************"); + + Statement stmt = conn.createStatement(); + stmt.executeQuery("Update employee where id = " + id + " Set mail = \'" + mail + "\' , name = \' " + name + "\' , designationID = " + DesignationId + ";"); + + } + + } + catch(SQLException ex) { + ex.printStackTrace(); + } + return "Update successful"; + + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentDeleteController.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentDeleteController.java new file mode 100644 index 0000000..09c7764 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentDeleteController.java @@ -0,0 +1,19 @@ +package com.example.demo.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.PathVariable; +import com.example.demo.StudentRegistration; + + +@Controller +public class StudentDeleteController { + @RequestMapping(method = RequestMethod.DELETE, value="/delete/student/{regdNum}") + @ResponseBody + public String deleteStudentRecord(@PathVariable("regdNum") String regdNum) { + System.out.println("In deleteStudentRecord"); + return StudentRegistration.getInstance().deleteStudent(regdNum); + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRegistrationController.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRegistrationController.java new file mode 100644 index 0000000..41a4273 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRegistrationController.java @@ -0,0 +1,25 @@ +package com.example.demo.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.*; +@Controller +public class StudentRegistrationController { + @RequestMapping(method = RequestMethod.POST, value="/register/student") + @ResponseBody + public StudentRegistrationReply registerStudent(@RequestBody Student student) { + + System.out.println("In registerStudent"); + StudentRegistrationReply stdregreply = new StudentRegistrationReply(); + StudentRegistration.getInstance().add(student); + //We are setting the below value just to reply a message back to the caller + stdregreply.setName(student.getName()); + stdregreply.setAge(student.getAge()); + stdregreply.setRegistrationNumber(student.getRegistrationNumber()); + stdregreply.setRegistrationStatus("Successful"); + return stdregreply; +} +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRetrieveController.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRetrieveController.java new file mode 100644 index 0000000..c330f01 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentRetrieveController.java @@ -0,0 +1,19 @@ +package com.example.demo.controllers; + +import java.util.List; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.Student; +import com.example.demo.StudentRegistration; +@Controller + +public class StudentRetrieveController { + @RequestMapping(method = RequestMethod.GET, value="/student/allstudent") + @ResponseBody + public List getAllStudents() { + return StudentRegistration.getInstance().getStudentRecords(); + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentUpdateController.java b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentUpdateController.java new file mode 100644 index 0000000..f019cfa --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/com/example/demo/controllers/StudentUpdateController.java @@ -0,0 +1,18 @@ +package com.example.demo.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import com.example.demo.Student; +import com.example.demo.StudentRegistration; +@Controller +public class StudentUpdateController { + @RequestMapping(method = RequestMethod.PUT, value="/update/student") + @ResponseBody + public String updateStudentRecord(@RequestBody Student stdn) { + System.out.println("In updateStudentRecord"); + return StudentRegistration.getInstance().upDateStudent(stdn); + } +} \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/repository/JdbcTry.java b/Week3-Project/Taran012/demo/src/main/java/repository/JdbcTry.java new file mode 100644 index 0000000..b55ef1a --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/repository/JdbcTry.java @@ -0,0 +1,42 @@ +package repository; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + + +public class JdbcTry { + + public static void main(String[] args) { + Connection conn = null; + try { + String name = "sahil"; + int id = 2,age =22; + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = Database1"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + Statement stmt = conn.createStatement(); + stmt.execute("Drop table PersonsTest "); + stmt.execute("Create table PersonsTest (id int, name varchar(20), age int); "); + String query1 = "INSERT INTO PERSONSTEST VALUES (1,'Taran',21);"; + String query2 = "INSERT INTO PERSONSTEST VALUES ("+ id + ", \'"+ name +"\'"+ "," + age + ");" ; + stmt.execute(query1); + stmt.execute(query2); + String SQL = "SELECT * from Personstest;"; + ResultSet rs = stmt.executeQuery(SQL); + while(rs.next()) { + System.out.println(rs.getInt("id") + "," + rs.getString("name")+ "," + rs.getInt("DesignationId") ); + } + + System.out.println("done"); + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + } +} + \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/java/repository/sqltry.java b/Week3-Project/Taran012/demo/src/main/java/repository/sqltry.java new file mode 100644 index 0000000..2f9e27a --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/java/repository/sqltry.java @@ -0,0 +1,42 @@ +package repository; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + + +public class sqltry { + + public static void main(String[] args) { + Connection conn = null; + try { + String name = "sahil"; + int id = 2,age =22; + String dbURL = "jdbc:sqlserver://DESKTOP-NP793MF; databaseName = Database1"; + String user = "sa"; + conn = DriverManager.getConnection(dbURL, user, "P@ssw0rd" ); + if(conn != null ) { + Statement stmt = conn.createStatement(); + stmt.execute("Drop table PersonsTest "); + stmt.execute("Create table PersonsTest (id int, name varchar(20), age int); "); + String query1 = "INSERT INTO PERSONSTEST VALUES (1,'Taran',21);"; + String query2 = "INSERT INTO PERSONSTEST VALUES ("+ id + ", \'"+ name +"\'"+ "," + age + ");" ; + stmt.execute(query1); + stmt.execute(query2); + String SQL = "SELECT * from Personstest;"; + ResultSet rs = stmt.executeQuery(SQL); + while(rs.next()) { + System.out.println(rs.getString("id") + ":" + rs.getString("name") ); + } + + System.out.println("done"); + } + } + catch(SQLException ex) { + ex.printStackTrace(); + } + } +} + \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/main/resources/application.properties b/Week3-Project/Taran012/demo/src/main/resources/application.properties new file mode 100644 index 0000000..328a9a6 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/main/resources/application.properties @@ -0,0 +1,3 @@ +server.port=8083 + +spring.profiles.active=@spring.profiles.active@ \ No newline at end of file diff --git a/Week3-Project/Taran012/demo/src/test/java/com/example/demo/DemoApplicationTests.java b/Week3-Project/Taran012/demo/src/test/java/com/example/demo/DemoApplicationTests.java new file mode 100644 index 0000000..2876223 --- /dev/null +++ b/Week3-Project/Taran012/demo/src/test/java/com/example/demo/DemoApplicationTests.java @@ -0,0 +1,17 @@ +package com.example.demo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class DemoApplicationTests { + + @Test + public void contextLoads() { + } + +} + diff --git a/Week3-Project/Taran012/edit.png b/Week3-Project/Taran012/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c9feb987f8a152d4332fc9991f319a85bcfe9e GIT binary patch literal 1724 zcmV;t21EIYP)9PEJl#R8(_wbM5Wz<>lp9S67*t znQUxqcXxN9qN4Nj^PHTVEG#TEG&ID-#33Oexw*L@ARyu4;V&;Q6ciM)va*ANgQ%#e zkB^TT85ue{I);XZz`(!@3k$xUe@_4a1^G!tK~#90?VW3P+Bg(NWzs;JLXt@vN&_Lh zJN*AYSlc2zef7Muj=Z$LvN}trXQP*0Mu-#{&;MVpm$UwJFZM`+@bWq;zSyn$v4_J> z|G(mr&t>c(u`<6eZkfKv9u^{72lv~s(D)~q^qFKO%XH*kKlNQyq!DK}>Z!l3& z?E;n&Q)|&iQAuK=+BR5`)CSHaU{a#mD=JAwRJR5z5)susV7U!Xp+#3kB~$zseHyIT zp||MQUqm;VtSE z{<`0Ly1{?G=qu{)*a7tX@JskT_V^7L>0>C^#UB1S)TH3m;CWR^#Ds5oe}3tO`_%&Jkf&i{r9Kwdg7;%8EZc4T-nK3COPPV&lRZ@vYSy zBv(5#N>qmp+ybM*;q|zv7VS?OvsQypG*rVSD#lXLcs`;c+KD=VaFkdDI7EGf2uPOV z-{K#LfQoh8_q&MEpmL+)Cn`ojjd4Dr!Yitds24Sf1}mt8flkyNL_nh%gNmrWWK2X+ ziOY0@vCtbYYxbfhq^LR~B`QWhs{^~8s2GY`9uaIr#c0s_ux>6Y#yaS5r)1jVH;90& z*DaS3F%)%tT1K^a{`ZA3$vEH7>sw4%QFX+x|76mNO4OoaDC+r8UL`6VJ2Mr03& z7Li#|yojum%n6(qxC1CEL1{6Fq7sak5CSP$fpMA$rYOn}(l8vCumfgA-N9(E^8vG> z?mWcKRuiy6jGOJwD;jbgjGe6}q@uC2)dUQPadn>+b!QMeTTSPeiL9tQkFm4WbY9WU zpCbqC|X8!}*4v<JEmYo!_d3ypxHY zt)}yrPFYcRvZAff`Gvmor-^_8^MSV&I1*m0WRY!OaT3137&MI~IK!Up7O5mZqLM~fJf%Ww%@#QHQYQdHX(QPx4p>TG08qJr#XzWBTt9EYe-iVD%Y9NmY1i&%;t z*84NOMFmq-h}Y{8?)^lC3n(6L#^@y~nxZB9+fjP72sX)7G!B~lF6tuUDJsOWaimi> zQ2`aDpNG1%2&ibufEex8J|d!`@_gUS^qKf0l&Fx3-mdrO*tLkMXv2Dc2DvUaMMOFe zUZDK3JPT1_0}55Z5-Q?#i>QiTobQ`kG+P%zCz*<+CSmbmA}X$;ChtG(^`hb`S~Afl z)QbwNs1PsufaUH+Eh^?t<_pz&ZxHbgUD4xxzK#jqBJw0tVfxFXWQ%j8SGgJ(Zw(XD ziv~DG6OBexY}Wc@M;1v&TC{&-wn_K!_dTKS z-vQ${4@R4Qdg&_OOwtX1_hXOK9o_kU`s1yi&ZN@BLKW|6Jx^;^X@czT=aRZ1O^jVb zy1}m*_3mDRTwh^KHnTLROq$^_+WjVqC literal 0 HcmV?d00001 diff --git a/Week3-Project/Taran012/index.css b/Week3-Project/Taran012/index.css new file mode 100644 index 0000000..1f00e2b --- /dev/null +++ b/Week3-Project/Taran012/index.css @@ -0,0 +1,144 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + width: 100%; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + box-shadow: 10px 0px 50px grey; +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week3-Project/Taran012/index.html b/Week3-Project/Taran012/index.html new file mode 100644 index 0000000..08d11f8 --- /dev/null +++ b/Week3-Project/Taran012/index.html @@ -0,0 +1,58 @@ + + + + + + + Sign UP + + + +
+ + +
+
+
+
+ + + +
+
+ + + + + + + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week3-Project/Taran012/index.js b/Week3-Project/Taran012/index.js new file mode 100644 index 0000000..f88269c --- /dev/null +++ b/Week3-Project/Taran012/index.js @@ -0,0 +1,25 @@ +function myfunc(){ + var fields = ["fname","lname","email","password"]; + + + for(var i =0;i<4;i++){ + var x = document.forms["myForm"][fields[i]].value; + if (x == "") { + alert("All fields are required"); + return false; + } + } + window.location.href = "login.html"; +// var FName = document.getElementById("fname").value; +// var LName = document.getElementById("lname").value; +// var email = document.getElementById("email").value; +// var password = document.getElementById("password").value; +// +// var myOBJ = { +// FName,LName,email,password +// } +// console.log(myOBJ); +// var myJSON = JSON.stringify(myOBJ); +// + +} \ No newline at end of file diff --git a/Week3-Project/Taran012/login.css b/Week3-Project/Taran012/login.css new file mode 100644 index 0000000..83c8e85 --- /dev/null +++ b/Week3-Project/Taran012/login.css @@ -0,0 +1,146 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + box-shadow: 10px 0px 50px grey; +} + + +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week3-Project/Taran012/login.html b/Week3-Project/Taran012/login.html new file mode 100644 index 0000000..bf43cf0 --- /dev/null +++ b/Week3-Project/Taran012/login.html @@ -0,0 +1,53 @@ + + + + + + + Sign UP + + + +
+ + +
+
+
+ +
+ + +
+
+ + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week3-Project/Taran012/login.js b/Week3-Project/Taran012/login.js new file mode 100644 index 0000000..1f8f406 --- /dev/null +++ b/Week3-Project/Taran012/login.js @@ -0,0 +1,16 @@ +function myfunc(){ + + var username = document.getElementById("name").value; + var password = document.getElementById("password").value; + if(username == ""){ + alert("Username is missing"); + } + else if(password == ""){ + alert("Password is missing"); + } +// var myOBJ = {username,password}; +// console.log(myOBJ); +// var myJSON = JSON.stringify(loginid); + + window.location.href = "DataList3.html"; +} \ No newline at end of file diff --git a/Week3-Project/Taran012/readme.md b/Week3-Project/Taran012/readme.md new file mode 100644 index 0000000..c3024d8 --- /dev/null +++ b/Week3-Project/Taran012/readme.md @@ -0,0 +1 @@ +https://zealous-brahmagupta-91823c.netlify.com diff --git a/Week3-Project/Taran012/retreive.css b/Week3-Project/Taran012/retreive.css new file mode 100644 index 0000000..0888b20 --- /dev/null +++ b/Week3-Project/Taran012/retreive.css @@ -0,0 +1,93 @@ +*{ + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} + +#pop{ + + background-color: white; + width: 700px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; + display: flex; + flex-direction: column; + +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + padding: 0px 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +header nav{ + font-size: 20px; +} +footer nav{ + height: 50px; +} +h1{ + font-size: 32px; + padding: 30px 0 10px 0; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +a{ + color: black; + text-decoration: none ; +} + +#copyright{ + padding:10px; +} + + +table{ + font-size: 16px; + margin: 30px; + border-collapse: collapse; + padding: 20px; + +} +tr:nth-child(even) { + background-color: #f2f2f2; +} + +td,th{ + padding: 15px; + border: 2px solid black; +} + + diff --git a/Week3-Project/Taran012/retreive.html b/Week3-Project/Taran012/retreive.html new file mode 100644 index 0000000..7b95854 --- /dev/null +++ b/Week3-Project/Taran012/retreive.html @@ -0,0 +1,69 @@ + + + + + + + Retreive details + + +
+ + +
+
+ +

Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name:Taran
Sex:Male
D.O.B.:23/10/1997
Employee Code:INT012
Designation:Intern
Years of experience:0
+ +
+ + + + + \ No newline at end of file diff --git a/Week3-Project/Taran012/signup.css b/Week3-Project/Taran012/signup.css new file mode 100644 index 0000000..1f00e2b --- /dev/null +++ b/Week3-Project/Taran012/signup.css @@ -0,0 +1,144 @@ +*{ + + margin: 0; + padding: 0; + border: 0; +} +body{ + + font-family: Helvetica, Comic Sans MS; + background-color: #fcf9f9; +} +header{ + width: 100%; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 20px; + background-color: white; +} +header nav{ + font-size: 20px; +} +section{ + background-color: #fcf9f9; + padding-top: 0; + margin-top: 0; +} + +footer{ + width: 100%; + background-color: white; + box-shadow: 0px 0px 30px grey; + display: flex; + flex-direction: row; + justify-content: space-between; + font-size: 20px; + position: fixed; + bottom: 0; + right: 0; +} +footer nav{ + height: 50px; +} + +h1{ + font-size: 32px ; + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + border-radius: 30px 30px 0 0 ; +} +#hgroup{ + + padding-top: 30px; + padding-bottom: 20px; + margin-bottom: 10px; + text-align: center; + display: flex; + flex-direction: row; + justify-content: center; +} +#sign{ + height: 70px; + font-size: 24px; + background-color: white; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 20px 0 0 20px; + box-shadow: 10px 0px 50px grey; +} + +#log{ + + height: 70px; + font-size: 24px; + background-color: #848181; + width: 40%; + padding: 10px; + border: 1px solid grey; + border-radius: 0 20px 20px 0; + +} +ul{ + list-style-type: none; +} +li{ + float: left; + margin-top: 16px; + margin-left: 70px; + margin-right: 70px; +} +#pop{ + + background-color: white; + width: 40%; + height: 550px; + margin: 50px auto; + box-shadow: 0px 0px 30px grey; + border-radius: 30px; +} +a{ + color: black; + text-decoration: none ; +} +h3{ + margin: 10px; +} +form{ + width: 80%; + margin-right: auto; + margin-left: auto; + display: flex; + flex-direction: column; + align-items: center; + +} +input{ + border: 0px; + width:80%; + text-align: center; + height: 50px; + margin: 10px; + padding: 0 20px; + font-size: 16px; + border-radius: 10px ; + background-color: #e8e8e8; + +} +#button{ + width: 50%; + height: 40px; + margin: 20px; + font-size: 16px; + border-radius: 15px ; + background-color: #e8e8e8; +} + +#copyright{ + padding:10px; +} \ No newline at end of file diff --git a/Week3-Project/Taran012/signup.html b/Week3-Project/Taran012/signup.html new file mode 100644 index 0000000..bad0f7b --- /dev/null +++ b/Week3-Project/Taran012/signup.html @@ -0,0 +1,58 @@ + + + + + + + Sign UP + + + +
+ + +
+
+
+
+ + + +
+
+ + + + + + + + + + + + + +
+
+
+ + + \ No newline at end of file diff --git a/Week3-Project/Taran012/signup.js b/Week3-Project/Taran012/signup.js new file mode 100644 index 0000000..f88269c --- /dev/null +++ b/Week3-Project/Taran012/signup.js @@ -0,0 +1,25 @@ +function myfunc(){ + var fields = ["fname","lname","email","password"]; + + + for(var i =0;i<4;i++){ + var x = document.forms["myForm"][fields[i]].value; + if (x == "") { + alert("All fields are required"); + return false; + } + } + window.location.href = "login.html"; +// var FName = document.getElementById("fname").value; +// var LName = document.getElementById("lname").value; +// var email = document.getElementById("email").value; +// var password = document.getElementById("password").value; +// +// var myOBJ = { +// FName,LName,email,password +// } +// console.log(myOBJ); +// var myJSON = JSON.stringify(myOBJ); +// + +} \ No newline at end of file