tag:blogger.com,1999:blog-80831156881803788122024-03-05T14:13:31.551-06:00CodeFlunkieSimple solutions to common questions on MVC, LINQ, Blazor and C# web development.CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.comBlogger120125tag:blogger.com,1999:blog-8083115688180378812.post-71876916580380367642022-12-06T09:16:00.006-06:002022-12-06T09:20:14.705-06:00Localizer in Controller<p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 20px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><b>Localizer in Controller</b></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 16px;"><b></b><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 16px;"><b></b><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><b>Using</b></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">using Microsoft.Extensions.<wbr></wbr>Localization;</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><b>Includes</b></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">private readonly IStringLocalizer<<wbr></wbr>AppAccessController> _localizer;</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 16px;"><b></b><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">Resource file must be in a Controller Folder in Resources</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><b>Method example</b></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">public Dictionary<string,string> GetRoleList(string appName, bool includeX)</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">{</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span style="white-space: pre-wrap;"> </span>//Code here</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;"><br /></p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span style="white-space: pre-wrap;"> </span>return allItems.ToDictionary<string, string, string>(i => i, i => <b>_localizer[i]</b>);</p><p style="background-color: white; color: #222222; font-family: "Helvetica Neue"; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;">}</p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-15466408088645982042022-08-24T14:15:00.003-05:002022-08-24T14:15:36.189-05:00Excel download with Jquery using Table<pre style="background-color: white; font-family: "JetBrains Mono", monospace; font-size: 9.8pt;"><span style="color: #444444;">I have a tricky dynamic table built from a model that I did not want to fashion in the controller so wanted to just download the table as shown.<br />This Jquery/Javascript solution allowed me to do just that.</span></pre><pre style="background-color: white; font-family: "JetBrains Mono", monospace; font-size: 9.8pt;"><span style="color: #444444;">Using a button on the page id='export' and using a table on the page id='tblExport'</span></pre><pre style="background-color: white; font-family: "JetBrains Mono", monospace; font-size: 9.8pt;"><span style="color: #444444;">We add an event listener for the button - I have declared everything explicitly but could probably have shortened some references to objects.</span></pre><br /><pre style="background-color: white; color: #202020; font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;"><span style="color: #248700; font-style: italic;"> </span></pre><pre style="background-color: white; color: #202020; font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;"><span style="color: #248700; font-style: italic;">//For the Csv Export<br /></span><span style="color: #0f54d6;">const </span><span style="color: #00855f;">toCsv </span><span style="color: #383838;">= </span><span style="color: #0f54d6;">function </span><span style="color: #383838;">(table) {<br /></span><span style="color: #383838;"> </span><span style="color: #248700; font-style: italic;">// Query all rows<br /></span><span style="color: #248700; font-style: italic;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">data = </span><span style="color: #8c6c41;">""</span><span style="color: #383838;">;<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">tableData = [];<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">rows = </span><span style="color: #0093a1;">$</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">"</span><span style="color: #6b2fba;">table tr</span><span style="color: #8c6c41;">"</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> rows.</span><span style="color: #00855f;">each</span><span style="color: #383838;">(</span><span style="color: #0f54d6;">function </span><span style="color: #383838;">(index, row) {<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">rowData = [];<br /></span><span style="color: #383838;"> </span><span style="color: #0093a1;">$</span><span style="color: #383838;">(row).</span><span style="color: #00855f;">find</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">"</span><span style="color: #6b2fba;">th</span><span style="color: #8c6c41;">, </span><span style="color: #6b2fba;">td</span><span style="color: #8c6c41;">"</span><span style="color: #383838;">).</span><span style="color: #00855f;">each</span><span style="color: #383838;">(</span><span style="color: #0f54d6;">function </span><span style="color: #383838;">(index, column) {<br /></span><span style="color: #383838;"> rowData.</span><span style="color: #00855f;">push</span><span style="color: #383838;">(column.</span><span style="color: #0093a1;">innerText</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> });<br /></span><span style="color: #383838;"> tableData.</span><span style="color: #00855f;">push</span><span style="color: #383838;">(rowData.</span><span style="color: #00855f;">join</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">","</span><span style="color: #383838;">));<br /></span><span style="color: #383838;"> });<br /></span><span style="color: #383838;"> data += tableData.</span><span style="color: #00855f;">join</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">"</span><span style="color: #941290;">\n</span><span style="color: #8c6c41;">"</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">return </span><span style="color: #383838;">data;<br /></span><span style="color: #383838;">};<br /></span><span style="color: #383838;"><br /></span><span style="color: #0f54d6;">const </span><span style="color: #00855f;">download </span><span style="color: #383838;">= </span><span style="color: #0f54d6;">function </span><span style="color: #383838;">(text, fileName) {<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">const </span><span style="color: #383838;">link = document.</span><span style="color: #00855f;">createElement</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'a'</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> link.</span><span style="color: #00855f;">setAttribute</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'href'</span><span style="color: #383838;">, </span><span style="color: #8c6c41;">`data:text/csv;charset=utf-8,</span>$<span style="color: #383838;">{</span><span style="color: #00855f;">encodeURIComponent</span><span style="color: #383838;">(text)}</span><span style="color: #8c6c41;">`</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> link.</span><span style="color: #00855f;">setAttribute</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'download'</span><span style="color: #383838;">, fileName);<br /></span><span style="color: #383838;"><br /></span><span style="color: #383838;"> link.</span><span style="color: #0093a1;">style</span><span style="color: #383838;">.</span><span style="color: #0093a1;">display </span><span style="color: #383838;">= </span><span style="color: #8c6c41;">'none'</span><span style="color: #383838;">;<br /></span><span style="color: #383838;"> document.</span><span style="color: #0093a1;">body</span><span style="color: #383838;">.</span><span style="color: #00855f;">appendChild</span><span style="color: #383838;">(link);<br /></span><span style="color: #383838;"><br /></span><span style="color: #383838;"> link.</span><span style="color: #00855f;">click</span><span style="color: #383838;">();<br /></span><span style="color: #383838;"><br /></span><span style="color: #383838;"> document.</span><span style="color: #0093a1;">body</span><span style="color: #383838;">.</span><span style="color: #00855f;">removeChild</span><span style="color: #383838;">(link);<br /></span><span style="color: #383838;">};<br /></span><span style="color: #383838;"><br /></span><span style="color: #0f54d6;">const </span><span style="color: #383838;">table = document.</span><span style="color: #00855f;">getElementById</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'tblExport'</span><span style="color: #383838;">);<br /></span><span style="color: #0f54d6;">const </span><span style="color: #383838;">exportBtn = document.</span><span style="color: #00855f;">getElementById</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'export'</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"><br /></span><span style="color: #383838;">exportBtn.</span><span style="color: #00855f;">addEventListener</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">'click'</span><span style="color: #383838;">, </span><span style="color: #0f54d6;">function </span><span style="color: #383838;">() {<br /></span><span style="color: #383838;"> </span><span style="color: #248700; font-style: italic;">// Export to csv<br /></span><span style="color: #248700; font-style: italic;"> </span><span style="color: #0f54d6;">const </span><span style="color: #383838;">csv = </span><span style="color: #00855f;">toCsv</span><span style="color: #383838;">(table);<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">reportName = </span><span style="color: #0093a1;">$</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">"#ReportName"</span><span style="color: #383838;">).</span><span style="color: #00855f;">val</span><span style="color: #383838;">();<br /></span><span style="color: #383838;"> </span><span style="color: #0f54d6;">var </span><span style="color: #383838;">repDate = </span><span style="color: #0093a1;">$</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">"#RepTitle"</span><span style="color: #383838;">).</span><span style="color: #00855f;">text</span><span style="color: #383838;">().</span><span style="color: #0093a1;">replaceAll</span><span style="color: #383838;">(</span><span style="color: #8c6c41;">" "</span><span style="color: #383838;">,</span><span style="color: #8c6c41;">"_"</span><span style="color: #383838;">);<br /></span><span style="color: #383838;"> </span><span style="color: #248700; font-style: italic;">// Download it<br /></span><span style="color: #248700; font-style: italic;"> </span><span style="color: #00855f;">download</span><span style="color: #383838;">(csv, </span><span style="color: #8c6c41;">`</span>$<span style="color: #383838;">{reportName}</span><span style="color: #8c6c41;">_</span>$<span style="color: #383838;">{repDate}</span><span style="color: #8c6c41;">.csv`</span><span style="color: #383838;">);<br /></span><span style="color: #383838;">});</span></pre><p></p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-59002224779018377622022-08-24T14:10:00.000-05:002022-08-24T14:10:23.296-05:00Linq Remove from list based on other tableOne way to do it when you have two lists (repYearlyData and otherdata)<br />
<br />
<br />
foreach (var yd in repYearlyData)<br />
{<br />
for(int d=0;d<otherdata.Count;d++)<br />
{<br />
if (yd.AssignedRep == otherdata[d].AssignedRep)<br />
{<br />
otherdata.RemoveAt(d);<br />
}<br />
}<br />
}<br />
<br />
<pre class="lang-cs prettyprint prettyprinted" style="background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; color: #393318; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;"><code style="border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span class="kwd" style="border: 0px; box-sizing: inherit; color: #101094; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">var</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> result </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> peopleList2</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Where</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">p </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">!</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">peopleList1</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Any</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">p2 </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> p2</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ID </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">==</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> p</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ID</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">));</span></code></pre>
<br />
<br />
public List<TeamAverages> GetRepMonthlyAverages()<br />
{<br />
int tday = DateTime.Now.Day;<br />
int mnth = DateTime.Now.Month;<br />
int yr = DateTime.Now.Year;<br />
<br />
var otherdata = (from c in db.calldetail_viw<br />
join w in db.UserWorkgroups on c.LocalUserId equals w.UserId into workGroups<br />
from ug in workGroups.Where(w => !w.WorkGroup.Contains("Team")).Where(w => !w.WorkGroup.Contains("Email"))<br />
.Where(w => !w.WorkGroup.Contains("Dummy")).DefaultIfEmpty()<br />
where c.ConnectedDate.Value.Year == yr<br />
<br />
&& c.InteractionType == 5<br />
<br />
group c by new { c.LocalUserId } into grouped<br />
select new {<br />
<br />
AssignedRep = grouped.Key.LocalUserId,<br />
YearlyAverageResponse = grouped.Average(x => x.CallDurationSeconds.Value),<br />
YearlyEmailCount = grouped.Count(),<br />
FullName = "Other"<br />
}).ToList();<br />
<br />
<br />
var repDailyData = db.calldetail_viw<br />
.Where(d => d.ConnectedDate.Value.Year == yr)<br />
.Where(d => d.ConnectedDate.Value.Month == mnth)<br />
.Where(d => d.ConnectedDate.Value.Day == tday)<br />
.Where(d => d.InteractionType == 5)<br />
.Join(db.UserWorkgroups, d => d.LocalUserId, w => w.UserId, (d, w) => new { calldetail_viw = d, UserWorkgroup = w }).Where(o => o.UserWorkgroup.WorkGroup.Contains("Team")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Dummy")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Email"))<br />
.Join(db.Individuals, w => w.UserWorkgroup.UserId, i => i.ICUserID, (d, i) => new { calldetail_viw = d, Individual = i }).Where(p => !p.Individual.JobTitle.Contains("Supervisor"))<br />
.GroupBy(x => new { x.calldetail_viw.calldetail_viw.LocalUserId, x.Individual.FirstName, x.Individual.LastName, x.calldetail_viw.UserWorkgroup.WorkGroup })<br />
.Select(y => new<br />
{<br />
AssignedRep = y.Key.LocalUserId,<br />
TodaysAverageResponse = y.Average(x => x.calldetail_viw.calldetail_viw.CallDurationSeconds.Value),<br />
TodaysEmailCount = y.Count(),<br />
// FullName = y.Key.FirstName + " " + y.Key.LastName<br />
}).OrderBy(d => d.AssignedRep).ToList();<br />
<br />
//(from z in otherdata where z.AssignedRep !=repDailyData.Any(p=>p.AssignedRep));<br />
// var filteredList = otherdata.Where(a => repDailyData.All(b => b.AssignedRep != a.AssignedRep)).Dump();<br />
var repMonthlyData = db.calldetail_viw<br />
.Where(d => d.ConnectedDate.Value.Year == yr)<br />
.Where(d => d.ConnectedDate.Value.Month == mnth)<br />
.Where(d => d.InteractionType == 5)<br />
.Join(db.UserWorkgroups, d => d.LocalUserId, w => w.UserId, (d, w) => new { calldetail_viw = d, UserWorkgroup = w }).Where(o => o.UserWorkgroup.WorkGroup.Contains("Team")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Dummy")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Email"))<br />
.Join(db.Individuals, w => w.UserWorkgroup.UserId, i => i.ICUserID, (d, i) => new { calldetail_viw = d, Individual = i }).Where(p => !p.Individual.JobTitle.Contains("Supervisor"))<br />
<br />
.GroupBy(x => new { x.calldetail_viw.calldetail_viw.LocalUserId, x.Individual.FirstName, x.Individual.LastName, x.calldetail_viw.UserWorkgroup.WorkGroup })<br />
.Select(y => new<br />
{<br />
AssignedRep = y.Key.LocalUserId,<br />
MonthlyAverageResponse = y.Average(x => x.calldetail_viw.calldetail_viw.CallDurationSeconds.Value),<br />
MonthlyEmailCount = y.Count(),<br />
// FullName = y.Key.FirstName + " " + y.Key.LastName<br />
}).Where(d => d.MonthlyEmailCount > 0).OrderBy(d => d.AssignedRep).ToList();<br />
<br />
var repYearlyData = db.calldetail_viw<br />
.Where(d => d.ConnectedDate.Value.Year == yr)<br />
.Where(d => d.InteractionType == 5)<br />
.Join(db.UserWorkgroups, d => d.LocalUserId, w => w.UserId, (d, w) => new { calldetail_viw = d, UserWorkgroup = w }).Where(o => o.UserWorkgroup.WorkGroup.Contains("Team")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Dummy")).Where(o => !o.UserWorkgroup.WorkGroup.Contains("Email"))<br />
.Join(db.Individuals, w => w.UserWorkgroup.UserId, i => i.ICUserID, (d, i) => new { calldetail_viw = d, Individual = i }).Where(p => !p.Individual.JobTitle.Contains("Supervisor"))<br />
<br />
.GroupBy(x => new { x.calldetail_viw.calldetail_viw.LocalUserId, x.Individual.FirstName, x.Individual.LastName, x.calldetail_viw.UserWorkgroup.WorkGroup })<br />
.Select(y => new<br />
{<br />
AssignedRep = y.Key.LocalUserId,<br />
YearlyAverageResponse = y.Average(x => x.calldetail_viw.calldetail_viw.CallDurationSeconds.Value),<br />
YearlyEmailCount = y.Count(),<br />
FullName = y.Key.FirstName + " " + y.Key.LastName<br />
}).OrderBy(d => d.AssignedRep).ToList();<br />
<br />
foreach (var yd in repYearlyData)<br />
{<br />
for(int d=0;d<otherdata.Count;d++)<br />
{<br />
if (yd.AssignedRep == otherdata[d].AssignedRep)<br />
{<br />
otherdata.RemoveAt(d);<br />
}<br />
}<br />
}<br />
<br />
var finalData = (from co in otherdata<br />
<br />
<br />
group co by new { co.FullName } into othGroup<br />
select new<br />
{<br />
<br />
AssignedRep = "" ,<br />
YearlyAverageResponse = othGroup.Average(x => x.YearlyAverageResponse),<br />
YearlyEmailCount = othGroup.Sum(x=>x.YearlyEmailCount),<br />
FullName = othGroup.Key.FullName<br />
}).ToList();<br />
<br />
var totalYearlyData = repYearlyData.Concat(finalData);<br />
var returnList = new List<TeamAverages>();<br />
foreach (var row in totalYearlyData)<br />
{<br />
var t = new TeamAverages();<br />
t.FullName = row.FullName;<br />
t.AssignedRep = row.AssignedRep;<br />
t.bestrep = 0;<br />
t.YearlyEmailCount = row.YearlyEmailCount;<br />
t.YearlyAverageResponse = row.YearlyAverageResponse;<br />
foreach (var d in repDailyData.Where(p => p.AssignedRep == row.AssignedRep))<br />
if (row.AssignedRep == d.AssignedRep)<br />
{<br />
<br />
t.TodaysEmailCount = d.TodaysEmailCount;<br />
t.TodaysAverageResponse = d.TodaysAverageResponse;<br />
}<br />
foreach (var d in repMonthlyData.Where(p => p.AssignedRep == row.AssignedRep))<br />
if (row.AssignedRep == d.AssignedRep)<br />
{<br />
<br />
t.MonthlyEmailCount = d.MonthlyEmailCount;<br />
t.MonthlyAverageResponse = d.MonthlyAverageResponse;<br />
}<br />
returnList.Add(t);<br />
}<br />
<br />
<br />
<br />
return returnList.ToList();<br />
}CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-25409840297059756182022-08-24T14:09:00.000-05:002022-08-24T14:09:33.557-05:00Disable Button based on checked items in CheckboxListWindows Forms using the ClientID<br />
<br />
<br />
<h4>
<span style="font-size: x-small;"> $("#<%=chkMinCedProgramManagers.ClientID %>").find('input[type="checkbox"]').click(function () {<br /> <br /> $("#<%=btnSaveSubGroup.ClientID %>").removeAttr("disabled");<br /> <br /><span style="color: orange;">//Identify How many checkboxes are checked so that we can toggle the button </span> <br /> var prgchecked = $('#<%=chkMinCedProgramManagers.ClientID%>').find('input[type="checkbox"]:checked').length;</span></h4>
<h4>
<span style="color: orange; font-size: x-small;">//Disable button if we have zero checked</span></h4>
<h4>
<span style="font-size: x-small;"> if (prgchecked===0)<br />{ </span></h4>
<h4>
<span style="font-size: x-small;"> $("#<%=btnSaveSubGroup.ClientID %>").attr("disabled", "disabled");<br /> };</span></h4>
<h4>
<span style="font-size: x-small;"><br /> });</span></h4>
CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-19076500881692272482022-08-24T14:04:00.000-05:002022-08-24T14:04:10.636-05:00Sparkline Chart<h2>
VIEW<br />
</h2>
<hr />
<script src="~/scripts/jquery.sparkline.min.js"></script><br />
<br />
<div style="border:2px solid #cccccc;padding:10px;width:50%; box-shadow: 10px 10px 5px #888888;text-align:center;float:left;"><br />
<h4 style="color:#58B609;">Expirations by Month next 12 months</h4><hr /><br />
<div class="sparkline" data-type="bar" data-width="97%" data-height="250px" data-bar-Width="12" data-bar-Spacing="10" data-bar-Color="#58B609" style="float:left;margin-left:30px;"><br />
<span style="background-color: yellow;"> @ViewBag.Expire </span><br />
</div><br />
<br />
$(".sparkline").each(function () {<br />
var $this = $(this);<br />
$this.sparkline('html', $this.data());<br />
});<br />
<br />
<h2>
<b>CONTROLLER</b></h2>
<hr />
public ActionResult Index(int? id, int? reportType)<br />
{<br />
<span style="background-color: yellow;"> ViewBag.Expire</span> = getExpiringMonths();<br />
..............................<br />
<br />
<br />
<br />
public string getExpiringMonths()<br />
{<br />
List<int> listofRecords = new List<int>();<br />
string mylist = string.Empty;<br />
List<AgreementExpiration> exp = new List<AgreementExpiration>();<br />
exp = prog.getExpiringChart();<br />
foreach(var a in exp)<br />
{<br />
listofRecords.Add(a.ExpireCount);<br />
mylist = mylist + a.ExpireCount + ",";<br />
}<br />
return mylist;<br />
<br />
}<br />
<br />CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-37310386676559529672022-08-24T14:02:00.000-05:002022-08-24T14:02:03.948-05:00Multiple Filters<p> $(document).ready(function () {</p><p> ManageRadioButtons();</p><p> numerizeRows();</p><p> $('[data-toggle="tooltip"]').tooltip();</p><p>});</p><p><br /></p><p>jQuery.expr[':'].icontains = function (a, i, m) {</p><p> return jQuery(a).text().toUpperCase()</p><p> .indexOf(m[3].toUpperCase()) >= 0;</p><p>};</p><p><br /></p><p>$("#searchInputResponsibility").keyup(function () {</p><p> if (checkMultiple() == true) {</p><p> filterMultiple();</p><p> return true;</p><p><span style="white-space: pre;"> </span>}</p><p><br /></p><p> var data = this.value.split(" ");</p><p> var currentRow = $("#fbody").find("tr").not('.H').not('.thead');</p><p> </p><p><br /></p><p> if (this.value == "") {</p><p> currentRow.show();</p><p> return;</p><p> }</p><p> //hide all the rows</p><p> currentRow.hide();</p><p> </p><p> currentRow.filter(function (i, v) {</p><p> var $t = $(this).find("td:eq(0)");</p><p> for (var d = 0; d < data.length; ++d) {</p><p> if ($t.is(":icontains('" + data[d] + "')")) {</p><p> return true;</p><p> }</p><p> }</p><p> return false;</p><p>})</p><p> .show();</p><p>}).focus(function () {</p><p> this.value = "";</p><p> $(this).css({</p><p> "color": "black"</p><p> });</p><p> $(this).unbind('focus');</p><p> });</p><p><br /></p><p>function numerizeRows() {</p><p> var eachRow = $("#fbody").find("tr").not('.H').not('.thead');</p><p> </p><p> var start = 1;</p><p> </p><p><br /></p><p> eachRow.each(function () {</p><p> </p><p> $(this).children('td:eq(1)').html(start);</p><p><br /></p><p> start = start + 1;</p><p> </p><p> });</p><p><br /></p><p>};</p><p>$("#searchInputTask").keyup(function () {</p><p> if (checkMultiple() == true) {</p><p> filterMultiple();</p><p> return true;</p><p> }</p><p><br /></p><p> var data = this.value.split(" ");</p><p> </p><p><br /></p><p> var currentRow = $("#fbody").find("tr").not('.H').not('.thead');</p><p><br /></p><p> if (this.value == "") {</p><p> currentRow.show();</p><p> return;</p><p> }</p><p> //hide all the rows</p><p> currentRow.hide();</p><p><br /></p><p> currentRow.filter(function (i, v) {</p><p> var $t = $(this).find("td:eq(2)");</p><p> for (var d = 0; d < data.length; ++d) {</p><p> if ($t.is(":icontains('" + data[d] + "')")) {</p><p> return true;</p><p> }</p><p> }</p><p> return false;</p><p> })</p><p> //show the rows that match.</p><p> .show();</p><p>}).focus(function () {</p><p> this.value = "";</p><p> $(this).css({</p><p> "color": "black"</p><p> });</p><p> $(this).unbind('focus');</p><p>});</p><p><br /></p><p><br /></p><p><br /></p><p>$("#searchInputNotes").keyup(function () {</p><p> if (checkMultiple() == true) {</p><p> filterMultiple();</p><p> return true;</p><p> // return;</p><p> }</p><p><br /></p><p> var data = this.value.split(" ");</p><p> var currentRow = $("#fbody").find("tr").not('.H').not('.thead');</p><p> if (this.value == "") {</p><p> currentRow.show();</p><p> return;</p><p> }</p><p> //hide all the rows</p><p> currentRow.hide();</p><p><br /></p><p> currentRow.filter(function (i, v) {</p><p> </p><p> var $t = $(this).find("td:eq(3)");</p><p> for (var d = 0; d < data.length; ++d) {</p><p> if ($t.is(":icontains('" + data[d] + "')")) {</p><p> return true;</p><p> }</p><p> }</p><p> return false;</p><p> })</p><p> //show the rows that match.</p><p> .show();</p><p>}).focus(function () {</p><p> this.value = "";</p><p> $(this).css({</p><p> "color": "black"</p><p> });</p><p> $(this).unbind('focus');</p><p>});</p><p>function checkMultiple() {</p><p> var dataP = $("#searchInputResponsibility").val().split(" ");</p><p> var dataR = $("#searchInputTask").val().split(" ");</p><p> var dataI = $("#searchInputNotes").val();</p><p> if (dataI != "" && dataR != "") return true;</p><p> if (dataI != "" && dataP != "") return true;</p><p> if (dataP != "" && dataR != "") return true;</p><p> return false;</p><p>};</p><p>function filterMultiple () {</p><p><br /></p><p> var dataI = $("#searchInputNotes").val().split(" ");</p><p> var dataR = $("#searchInputTask").val().split(" ");</p><p> var dataP = $("#searchInputResponsibility").val().split(" ");</p><p> var allRows = $("#fbody").find("tr").not('.H').not('.thead');</p><p> if (dataI == "" && dataR == "" && dataP == "") {</p><p> allRows.show();</p><p> return;</p><p> }</p><p> //hide all the rows</p><p> allRows.hide();</p><p><br /></p><p> allRows.filter(function (i, v) {</p><p> var $v = $(this).find("td:eq(0)");</p><p> var $u = $(this).find("td:eq(1)");</p><p> var $t = $(this).find("td:eq(2)");</p><p> if (dataI != "" && dataR != "" && dataP != "") {</p><p> for (var p = 0; p < 2; ++p) {</p><p> if ($v.is(":icontains('" + dataP[p] + "')") && ($u.is(":icontains('" + dataR[p] + "')")) && $t.is(":icontains('" + dataI[p] + "')") ) {</p><p> return true;</p><p> }</p><p> </p><p> }</p><p> }</p><p> if (dataI != "" && dataR != "" && dataP == "") {</p><p> for (var p = 0; p < 2; ++p) {</p><p> if (($u.is(":icontains('" + dataR[p] + "')")) && $t.is(":icontains('" + dataI[p] + "')")) {</p><p> return true;</p><p> }</p><p><br /></p><p> }</p><p> }</p><p> if (dataI == "" && dataR != "" && dataP != "") {</p><p> for (var p = 0; p < 2; ++p) {</p><p> if (($u.is(":icontains('" + dataR[p] + "')")) && $v.is(":icontains('" + dataP[p] + "')")) {</p><p> return true;</p><p> }</p><p><br /></p><p> }</p><p> }</p><p> if (dataI != "" && dataR == "" && dataP != "") {</p><p> for (var p = 0; p < 2; ++p) {</p><p> if (($t.is(":icontains('" + dataI[p] + "')")) && $v.is(":icontains('" + dataP[p] + "')")) {</p><p> return true;</p><p> }</p><p><br /></p><p> }</p><p> }</p><p> if (dataI != "" && dataR != "" && dataP == "") {</p><p> for (var p = 0; p < 2; ++p) {</p><p> if (($u.is(":icontains('" + dataR[p] + "')")) && $t.is(":icontains('" + dataI[p] + "')")) {</p><p> return true;</p><p> }</p><p><br /></p><p> }</p><p> }</p><p> </p><p> return false;</p><p> })</p><p> .show();</p><p> </p><p>};</p><p><br /></p><p>$("input[type='radio']").change(function () {</p><p> </p><p> ManageRadioButtons();</p><p><br /></p><p>});</p><p><br /></p><p>function ManageRadioButtons() {</p><p><br /></p><p> $("#searchInputResponsibility").val('');;</p><p> $("#searchInputTask").val('');;</p><p> $("#searchInputNotes").val('');;</p><p> var selection = $('input[name=env]:checked').val();</p><p> var currentRow = $("#fbody").find("tr").not('.H');</p><p> currentRow.hide();</p><p> if (selection == "QA") {</p><p> var QARows = $("#fbody").find("tr.Q");</p><p> QARows.show();</p><p> } else {</p><p> var PRows = $("#fbody").find("tr.P");</p><p> PRows.show();</p><p> }</p><p>};</p><p><br /></p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-36356685218625036612022-08-24T14:01:00.000-05:002022-08-24T14:01:03.835-05:00Jquery add dynamic numeric column<p> Jquery adding column options</p><p><br /></p><p>function numerizeRows() {</p><p> var eachRow = $("#fbody").find("tr").not('.H').not('.thead');</p><p> </p><p> var start = 1;</p><p> $(".id").each(function() {</p><p> this.text(start);</p><p> start = start + 1;</p><p> });</p><p> //eachRow.each(function () {</p><p> $(this).children('td:eq(0)').html(start);</p><p> // var myNumber = '<td>' + start + '</td>';</p><p> // this.prepend(start);</p><p> // start = start + 1;</p><p> //});</p><p><br /></p><p>};</p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-63216750753184192842021-10-29T10:19:00.004-05:002021-10-29T10:19:39.407-05:00Linq list filtered on list<p>modelItems is a list of Model <br /><b>intList </b>is a list of Integers</p><p><br /></p><p>I am looking for modelItems where the id is in my Int List</p><p><br /></p><p>var myFilteredList= modelItems.Where(item => intList.Contains(item.Id))</p><p><span style="white-space: pre;"> </span> .Select(a => a).ToList();</p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-48931604308256081002021-09-29T09:33:00.002-05:002021-09-29T09:33:17.835-05:00Dynamic Dropdowns NetCore and Json<p><b><span style="color: #ffa400; font-size: medium;"> Html for placeholder</span></b></p><p> <select id="AppList" class="form-control input-sm"></select></p><p><br /></p><p><span style="color: #ffa400; font-size: medium;"><b>Controller returns a Model - Add records to the Model and then return as JsonResult</b></span></p><p> public async Task<JsonResult> GetApplications(int id)<br />{ var selectAppList = new List<ModelName>();<br /> var apps = _applicationService.GetApplicationModels();<br /><span> </span><span> </span><span> </span>var modelVariable = (await GetModelRecords);</p><p> if (modelVariable is object )<br />{ <br /><span> </span><span> </span>selectAppList.Add(modelVariable);<br />}</p><p><span> </span> return Json(selectAppList);</p><p> }</p><p><span style="color: #ffa400; font-size: medium;">Jquery<br />Add something like this to document.ready</span><br /></p><p>$("#brandId").change(function () {</p><p><span style="white-space: pre;"> </span>var id = $("#brandId").val();</p><p><span style="white-space: pre;"> </span>BuildAppList(id);</p><p><span style="white-space: pre;"> </span>});</p><p><span style="color: #ffa400; font-size: medium;">Then add the function</span><br /></p><p>function BuildAppList(id) {</p><p><span style="white-space: pre;"> </span>$.ajax({</p><p><span style="white-space: pre;"> </span>type: 'GET',</p><p><span style="white-space: pre;"> </span>url:'ConfigureKey/GetApplications/' + id,</p><p><span style="white-space: pre;"> </span>data: { id: id },</p><p><span style="white-space: pre;"> </span>success: function (result) {</p><p><span style="white-space: pre;"> </span>$('#AppList').empty();</p><p><span style="white-space: pre;"> </span>$.each(result, function (i, item) {</p><p><span style="white-space: pre;"> </span>$('#AppList').append('<option value="' + item.modelid + '"> ' + item.name + ' </option>');</p><p><span style="white-space: pre;"> </span>});</p><p><span style="white-space: pre;"> </span>},</p><p><span style="white-space: pre;"> </span>error: function (xhr, status, err) {</p><p><span style="white-space: pre;"> </span>// error handling</p><p><span style="white-space: pre;"> </span>}</p><p><span style="white-space: pre;"> </span>});</p><p>}</p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-11533790718235795972021-02-26T08:56:00.000-06:002021-02-26T08:56:07.199-06:00Ajax Loop Photos<div>function GetPhotos() {</div><div> var row = "<div class='w3-container w3-row-padding'>";</div><div> var itemcount = 0;</div><div> $.ajax({</div><div> url: '/Photos/PhotoList',</div><div> type: 'GET',</div><div> contentType: 'application/json',</div><div> data: "{}",</div><div> dataType: "json",</div><div> success: function (data) {</div><div> var count = Object.keys(data).length;</div><div> // var row = "";</div><div> </div><div><br /></div><div> $.each(data, function (item) {</div><div> </div><div> </div><div> if (itemcount % 6 != 0) {</div><div> row += "<div class='w3-left w3-padding-16'><div class='w3-container w3-center' style='width: 150px;'><img class='w3-round-xlarge' alt='"+ itemcount +"' onclick=" + "if(event.shiftKey){document.getElementById('dispImage')" + ".src='" + data[item].photoSrc + "';" + "document.getElementById('id01')" + ".style.display='block';}else{if(event.ctrlKey||event.metaKey){$(this).toggleClass('csam');}else{$(this).toggleClass('rev');}}" + " id='" + data[item].photoId + "' src=" + data[item].photoSrc + " data-src=" + data[item].photoSrc + " style='width: 100px;' /></div></div>";</div><div><br /></div><div> }</div><div> if (itemcount % 6 == 0) {</div><div> row += "</div>";</div><div> row += "<div class='w3-container w3-row-padding'>";</div><div> row += "<div class='w3-left w3-padding-16'><div class='w3-container w3-center' style='width: 150px;'><img class='w3-round-xlarge' alt='" + itemcount + "' onclick=" + "if(event.shiftKey){document.getElementById('dispImage')" + ".src='" + data[item].photoSrc + "';" + "document.getElementById('id01')" + ".style.display='block';}else{if(event.ctrlKey||event.metaKey){$(this).toggleClass('csam');}else{$(this).toggleClass('rev');}}" + " id='" + data[item].photoId + "' src=" + data[item].photoSrc + " data-src=" + data[item].photoSrc + " style='width: 100px;' /></div></div>";</div><div><br /></div><div> }</div><div> itemcount++;</div><div> </div><div> });</div><div> row += "</div>";</div><div> $("#photos").html(row + " itemcount=" + itemcount);</div><div><br /></div><div><br /></div><div> },</div><div> error: function (result) {</div><div> alert("Error");</div><div> }</div>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-53984246967852493162021-01-27T10:10:00.001-06:002021-01-27T10:10:33.515-06:00MVC Changed State with no query string<p> I needed to take action if i was in the edit state of my page. So in the controller I set a ViewBag object then from my jquery I checked the value</p><p>I needed to check a NO value in a checkbox if there was no textarea value in the model set</p><p><br /></p><p> var number = parseInt(@<span style="background-color: #fcff01;">ViewBag.Edit</span>);</p><p> if (number == 1) {</p><p><br /></p><p> if ($("#TextAreaEngagement").val().length == 0) {</p><p> $("#chkEngagedNo").prop("checked", true);</p><p> }</p><p> </p><p> }</p>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-43394438550069113742020-05-19T09:52:00.001-05:002020-05-19T09:52:51.578-05:00Linq Query Syntax vs Method Syntax<pre style="font-family: Consolas, Courier, monospace !important; font-size: 13px; overflow-wrap: normal; overflow: auto; padding: 5px;"><span style="color: green;"><pre style="overflow-wrap: normal; overflow: auto; padding: 5px;"><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><b><font size="2">Referenced from MSDN:</font></b></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2">https://msdn.microsoft.com/en-us/library/bb397947.aspx</font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><b><font size="2"><br /></font></b></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><b><font size="2">Query syntax:</font></b></p><p class="p2" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 14px; white-space: normal;"><font size="2"><br /></font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2">IEnumerable<int> numQuery1 =<span class="Apple-converted-space"> </span></font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2"><span class="Apple-converted-space"> </span>from num in numbers</font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2"><span class="Apple-converted-space"> </span>where num % 2 == 0</font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2"><span class="Apple-converted-space"> </span>orderby num</font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2"><span class="Apple-converted-space"> </span>select num;</font></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><b><font size="2"><br /></font></b></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><b><font size="2">Method syntax:<br /><br /></font></b></p><p class="p1" style="color: black; font-family: "Helvetica Neue"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;"><font size="2"><span class="Apple-converted-space"> </span>IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n)</font></p><p class="p2" style="color: black; font-family: "Helvetica Neue"; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 14px; white-space: normal;"><br /></p></pre></span></pre>
CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-66679663681669675062020-05-19T09:40:00.004-05:002022-08-24T14:05:29.017-05:00Sticky Footer made simpleCSS Footers are simple but people tend to overthink them. Here is how it works<br />
<br />
You have two pieces<br />
<br />
A container that all your other stuff is in<br />
A footer that you want to always stay at the bottom of the page<br />
<br />
In Blazor I put this container on my content pages and not my host page because I didn't want my left hand nav to be involved<br />
<br />
<div class="container"><br />
<br />
All my content<br />
<br />
</div><br />
<footer><br />
Centered footer content<br />
</footer><br />
<br />
And the CSS<br />
<br />
.container {<br />
width:100%;<br />
padding: 0 15px;<br />
}<br />
footer {<br />
font-size: 12px; (you could also use a vw value here)<br />
padding-top:20px;<br />
background-color: #xxx;<br />
color: #fff;<br />
margin: auto;<br />
height: 60px;<br />
width: 100%;<br />
position: sticky; //absolute;<br />
bottom: 0;<br />
text-align: center;<br />
}CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-28280529958512628082020-05-15T17:08:00.001-05:002020-05-18T09:00:36.138-05:00Ah Blazor - Now refresh the page!Started my first Blazor project today. New to NetCore as well so it was a fun challenge. I like that is is similar to MVC and I appreciate the ability to add code into my page while building without moving to a controller - it was a real challenge to accommodate some JQuery but I got everything to work. After looking a little closer I realized a large chunk of my JQuery and even javascript could be moved to the @code section and written differently - made for a cleaner, more readable page.<br />
<br />
I spent over an hour trying to figure out how to do a simple page refresh! Part of the challenge is that Blazor is a moving target - different libraries and ways of doing simple tasks from version to version - I am confident that most of that will stop as they more clearly define what it is they want to do with this tool.<br />
<br />
<h4>
Refresh a page (NetCore 3.1)</h4>
First set up an alias for the uriHelper - you will now find it in NavigationManager<br />
@inject NavigationManager uriHelper<br />
<br />
Attach a method to your button:<br />
<br />
<div style="text-align: center;">
<button type="submit" @onclick="Reload">Start Over </button></div>
<br />
In your <span style="background-color: yellow;">@code </span>section add this oh so simple method - you will want to include the true as it initiates a real reload otherwise you will just navigate to the same location with no StateChange. There are most likely many ways to do this - this was the easiest.<br />
<br />
<br />
private async void Reload()<br />
{<br />
uriHelper.NavigateTo("/MyPage", true);<br />
<br />
}CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-82398641434581459912020-02-12T07:58:00.005-06:002020-02-12T07:59:47.976-06:00From Checkbox to Linq list<h3>
Just the Values of the Selected Items</h3>
<br />
<pre class="lang-cs prettyprint prettyprinted" style="border-radius: 3px; border: 0px; box-sizing: inherit; color: #393318; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;"><code style="border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">List</span><span class="str" style="border: 0px; box-sizing: inherit; color: #7d2727; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><string></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> selectedValues </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">chkMyList</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Items</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Cast</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ListItem</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">>()</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Where</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">li </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> li</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Selected</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">)</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Select</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">li </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> li</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Value</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">)</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ToList</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">();</span></code></pre>
<br />
<h3>
Both Text and Value of Selected item into a listItem object</h3>
<br />
<pre class="lang-cs prettyprint prettyprinted" style="border-radius: 3px; border: 0px; box-sizing: inherit; font-family: consolas, menlo, monaco, "lucida console", "liberation mono", "dejavu sans mono", "bitstream vera sans mono", "courier new", monospace, sans-serif; font-size: 13px; font-stretch: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;"><code style="border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">List</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ListItem</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> selected </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #6fa8dc; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pln" style="border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="color: #6fa8dc;">chkMyList<span class="pun" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">Items</span><span class="pun" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">Cast</span><span class="pun" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><</span><span class="typ" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">ListItem</span><span class="pun" style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">>()</span></span><span style="color: #393318;">
</span></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Where</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">li </span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">=></span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> li</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Selected</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">)</span><span class="pln" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">.</span><span class="typ" style="border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ToList</span><span class="pun" style="border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">();</span></code></pre>
CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-8753011084810614022019-11-21T14:13:00.001-06:002019-11-21T14:13:17.599-06:00Linq Compare to a list<b><span style="font-family: Arial, Helvetica, sans-serif;">Establish your list</span></b><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">var idList = new [] {5, 7};</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Compare against the List</span></b><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"> var jobs = originaljobs.Where(t => t.StatusId != null).Where(t => <span style="background-color: yellow;">idList</span>.Contains((int)t.StatusId));</span> </span><br />
<br />CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-48669707333963320062019-09-23T08:00:00.003-05:002019-09-23T08:00:45.996-05:00Conversion Classes<h3>
<br /><b>Convert from Model to Dataset</b></h3>
<br />
public static DataSet ToDataSet<t>(this IList<t> list)<br />
{<br />
Type elementType = typeof(T);<br />
DataSet ds = new DataSet();<br />
DataTable t = new DataTable();<br />
ds.Tables.Add(t);<br />
<br />
//add a column to table for each public property on T<br />
foreach (var propInfo in elementType.GetProperties())<br />
{<br />
Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType;<br />
<br />
t.Columns.Add(propInfo.Name, ColType);<br />
}<br />
<br />
//go through each property on T and add each value to the table<br />
foreach (T item in list)<br />
{<br />
DataRow row = t.NewRow();<br />
<br />
foreach (var propInfo in elementType.GetProperties())<br />
{<br />
row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value;<br />
}<br />
<br />
t.Rows.Add(row);<br />
}<br />
<br />
return ds;<br />
}<br /></t></t><br />
<h3>
<t><t>Convert from Array to Dataset</t></t></h3>
<br />
<t><t><br />
public static DataSet ToDataSetFromArrayOfObject(this object[] arrCollection)<br />
{<br />
DataSet ds = new DataSet();<br />
try<br />
{<br />
XmlSerializer serializer = new XmlSerializer(arrCollection.GetType);<br />
System.IO.StringWriter sw = new System.IO.StringWriter();<br />
serializer.Serialize(sw, dsCollection);<br />
System.IO.StringReader reader = new System.IO.StringReader(sw.ToString());<br />
ds.ReadXml(reader);<br />
}<br />
catch (Exception ex)<br />
{<br />
throw (new Exception("Error While Converting Array of Object to Dataset."));<br />
}<br />
return ds;<br />
}</t></t>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-27141702288466460602019-09-20T14:25:00.001-05:002019-09-20T14:25:17.622-05:00Jquery ... little things<h3>
Code Snippets</h3>
<br />
Remove duplicate IDs on a page - but not the first one<br />
<br />
$('[id]').each(function () {<br />
<span style="white-space: pre;"> </span> $('[id="' + this.id + '"]:gt(0)').remove();<br />
<span style="white-space: pre;"> </span> <br />
<span style="white-space: pre;"> </span> });<br />
<br />
<br />CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-5015918909675845102019-09-20T14:24:00.001-05:002019-09-20T14:26:48.957-05:00Open XML and Word Doc creation<span style="font-family: inherit;">https://github.com/OfficeDev/office-content/blob/master/en-us/OpenXMLCon/articles/360318b5-9d17-42a1-b707-c3ccd1a89c97.md</span><br />
<span style="font-family: inherit;"><br />
</span> <span style="font-family: inherit;">While at Lockheed I created an interface that modified and created contracts on the fly - wish I had kept some code references - but I started here</span><br />
<span style="font-family: inherit;"><br />
</span> <br />
<span style="font-family: inherit;">To generate Word documents with Office Automation within .NET, specifically in C# or VB.NET:</span><br />
<ol style=" border: 0px; box-sizing: inherit; color: #242729; font-size: 15px; font-stretch: inherit; line-height: inherit; margin: 0px 0px 1em 30px; padding: 0px; vertical-align: baseline;"><li style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 0.5em; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;"><div style="border: 0px; box-sizing: inherit; clear: both; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; padding: 0px; vertical-align: baseline;"><span style="font-family: inherit;">Add the <strong style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Microsoft.Office.Interop.Word</strong> assembly reference to your project. The path is <strong style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Word.dll</strong>.</span></div></li>
<li style="border: 0px; box-sizing: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;"><div style="border: 0px; box-sizing: inherit; clear: both; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; padding: 0px; vertical-align: baseline;"><span style="font-family: inherit;">Follow the Microsoft code example you can find here: <a href="http://support.microsoft.com/kb/316384/en-us" rel="noreferrer" style="border: 0px; box-sizing: inherit; color: #005999; cursor: pointer; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">http://support.microsoft.com/kb/316384/en-us</a>.</span></div></li>
</ol>CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-58569333246624118862019-09-20T14:22:00.000-05:002019-09-20T14:22:44.300-05:00API Examples Returning various ...<h2>
API Examples</h2>
<br />
public IQueryable<Customer> GetCustomers()<br />
{<br />
return db.Customers;<br />
<br />
<br />
[ResponseType(typeof(Customer))]<br />
public IHttpActionResult GetCustomer(string email)<br />
{<br />
Customer customer = db.Customers.Where(c=>c.Email== email).FirstOrDefault();<br />
if (customer == null)<br />
{<br />
return NotFound();<br />
}<br />
<br />
return Ok(customer);<br />
} }<br />
<br />
<br />
// PUT: api/Customers/5<br />
[ResponseType(typeof(void))]<br />
public IHttpActionResult PutCustomer(int id, Customer customer)<br />
{<br />
if (!ModelState.IsValid)<br />
{<br />
return BadRequest(ModelState);<br />
}<br />
<br />
if (id != customer.Id)<br />
{<br />
return BadRequest();<br />
}<br />
<br />
db.Entry(customer).State = EntityState.Modified;<br />
<br />
try<br />
{<br />
db.SaveChanges();<br />
}<br />
catch (DbUpdateConcurrencyException)<br />
{<br />
if (!CustomerExists(id))<br />
{<br />
return NotFound();<br />
}<br />
else<br />
{<br />
throw;<br />
}<br />
}<br />
<br />
return StatusCode(HttpStatusCode.NoContent);<br />
}<br />
<br />
----<br />
protected override void Dispose(bool disposing)<br />
{<br />
if (disposing)<br />
{<br />
db.Dispose();<br />
}<br />
base.Dispose(disposing);<br />
}<br />
----<br />
private bool CustomerExists(int id)<br />
{<br />
return db.Customers.Count(e => e.Id == id) > 0;<br />
}<br />
---<br />
private readonly MemoryStream _Stream = new MemoryStream();<br />
public JsonContent(object value)<br />
{<br />
<br />
Headers.ContentType = new MediaTypeHeaderValue("application/json");<br />
var jw = new JsonTextWriter(new StreamWriter(_Stream));<br />
jw.Formatting = Formatting.Indented;<br />
var serializer = new JsonSerializer();<br />
serializer.Serialize(jw, value);<br />
jw.Flush();<br />
_Stream.Position = 0;<br />
<br />
}<br />
<br />
protected override Task SerializeToStreamAsync(Stream stream, TransportContext context)<br />
{<br />
return _Stream.CopyToAsync(stream);<br />
}<br />
<br />
protected override bool TryComputeLength(out long length)<br />
{<br />
length = _Stream.Length;<br />
return true;<br />
}<br />
<br />
<br />
public IHttpActionResult PostTaskStart(OrderManfTask orderManfTask)<br />
{<br />
<br />
List<OrderManfTask> items = new List<OrderManfTask>();<br />
items = (from a in db.OrderManfTasks where a.OrderId == orderManfTask.OrderId && a.TaskId == orderManfTask.TaskId select a).ToList();<br />
<br />
foreach (var i in items)<br />
{<br />
i.EmployeeName = orderManfTask.EmployeeName;<br />
i.TaskId = orderManfTask.TaskId;<br />
i.TaskEnd = orderManfTask.TaskEnd;<br />
db.SaveChanges();<br />
}<br />
string tasktext = string.Empty;<br />
switch (orderManfTask.TaskId)<br />
{<br />
case 1:<br />
tasktext = "Cut";<br />
break;<br />
case 2:<br />
tasktext = "Sewn";<br />
break;<br />
case 3:<br />
tasktext = "Filled";<br />
break;<br />
}<br />
//Add Note<br />
OrderNote orderNote = new OrderNote();<br />
orderNote.DownloadId = 0;<br />
orderNote.OrderId = orderManfTask.OrderId;<br />
orderNote.CreatedOnUtc = DateTime.Now;<br />
orderNote.Note = "Production " + tasktext + " Task Completed by: " + orderManfTask.EmployeeName + " on " + DateTime.Now;<br />
db.OrderNotes.Add(orderNote);<br />
db.SaveChanges();<br />
return Ok(new { success = true });<br />
<br />
}<br />
}<br />
<br />
-----<br />
<br />
<br />
public int PostTaskStart(OrderManfTask orderManfTask)<br />
{<br />
<br />
int items = 0;<br />
int taskstarted = 0;<br />
int taskEnded = 0;<br />
items = (from a in db.OrderManfTasks where a.OrderId == orderManfTask.OrderId && a.TaskId == orderManfTask.TaskId select a.id).Count();<br />
taskstarted = (from a in db.OrderManfTasks where a.OrderId == orderManfTask.OrderId && a.TaskId == orderManfTask.TaskId && a.TaskStart != null select a.id).Count();<br />
taskEnded = (from a in db.OrderManfTasks where a.OrderId == orderManfTask.OrderId && a.TaskId == orderManfTask.TaskId && a.TaskEnd != null select a.id).Count();<br />
<br />
//Task has an End Date<br />
if (taskEnded > 0) { return 4; }<br />
//Task has started<br />
if (taskstarted > 0) { return 2; }<br />
//task is not started but is valid<br />
if (items > 0) { return 1; }<br />
//task is invalid for this order<br />
return 0;<br />
<br />
<br />
<br />
}<br />
<br />
----<br />
Called in Javascript<br />
summaryByTech.DataSource = app.DataSource("SummaryByTech", summaryByTech.Model, urlFilter, salesPerformanceTech.objGroup, salesPerformanceTech.objAggregate);<br />
dsSummaryByTech = summaryByTech.DataSource;<br />
<br />
Within WEBSERVICES PROJECT<br />
[Authorize(Roles = "Franchisee,HomeOffice")]<br />
public class SummaryByTechController : ApiController<br />
{<br />
// 1. Group By Tech over a date range<br />
// 2. Group By Tech by Week for single column<br />
<br />
[HttpGet]<br />
public List<Model_BigBoard.DTO.DTOSummaryByTech> FetchSummaryByTech(string bNumber, DateTime startDate, DateTime endDate)<br />
{<br />
BusinessLogic.BLSummaryByTech bl = new BusinessLogic.BLSummaryByTech();<br />
string bNumberConvert = Dwyer.BIMS.BigBoard.Base.Util.Tools.BusinessSupport.HexToASCIICharString(bNumber);<br />
return bl.LoadSummaryByTech(bNumberConvert, startDate, endDate);<br />
}<br />
}<br />
}<br />
<br />
https://nordicapis.com/3-common-methods-api-authentication-explained/<br />
<br />
CALLING THE API<br />
<br />
From Javascript<br />
<br />
<script><br />
$("#Create").click(function () {<br />
<br />
<br />
var source = {<br />
'OrderId': $("#OrderId").val(),<br />
'TrackingNumber': $('#TrackingNumber').val(),<br />
'TotalWeight': $('#TotalWeight').val(),<br />
'ShippedDateUtc': $('#ShippedDateUtc').val(),<br />
'AdminComment': $('#AdminComment').val(),<br />
'CreatedOnUtc': new Date().toISOString(),<br />
}<br />
$.ajax({<br />
type: "POST",<br />
data: source,<br />
url: "/api/Shipments",<br />
})<br />
.done(function (data, status, jqXHR) {<br />
if (data.Success)<br />
{<br />
$("#OrderId").val("");<br />
$('#TrackingNumber').val("");<br />
$('#TotalWeight').val("");<br />
$('#ShippedDateUtc').val("");<br />
$('#AdminComment').val("");<br />
<br />
}<br />
else<br />
{<br />
alert(data.Message) //display exception<br />
}<br />
<br />
//alert("Success");<br />
})<br />
.fail(function (jqXHR, textStatus, err) {<br />
//alert("Failed");<br />
})<br />
<br />
event.preventDefault();<br />
});<br />
</script><br />
<br />
<script type="text/javascript"><br />
function getcustomer() {<br />
$("#stateID").empty();<br />
$("#stateID").append("<option value='0'>--Select State--</option>");<br />
var email = $('#Email').val();<br />
var Url="@Url.Content("~/api/customers/getcustomer")";<br />
$.ajax({<br />
url:Url,<br />
dataType: 'json',<br />
data: { email: countryID },<br />
success: function (data) {<br />
<br />
$.each(data, function (index, optiondata) {<br />
$("#FirstName").val(optiondata.firstName);<br />
});<br />
}<br />
});<br />
}<br />
</script><br />
<br />
<script><br />
$('#ppTable').on('click', '.btnSelect', function () {<br />
// var tds = $(this).addClass('row-highlight').find('td');<br />
<br />
var currentRow = $(this).closest("tr");<br />
<br />
<br />
var OrderId = currentRow.find("td:eq(0)").text(); // get current row 1st TD value<br />
var OrderItemId = currentRow.find("td:eq(1)").text();<br />
var tracking = currentRow.find(".tracking").val(); // get current row 2nd TD<br />
var weight = currentRow.find(".totalweight").val(); // get current row 3rd TD<br />
var shipdate = currentRow.find(".shipdate").val(); // get current row 4rd TD<br />
// var data = OrderId + "-" + tracking + "-" + weight + "-" + shipdate;<br />
//alert(data);<br />
<br />
var source = {<br />
<br />
'OrderId':OrderId,<br />
'TrackingNumber': tracking,<br />
'TotalWeight': weight,<br />
'ShippedDateUtc': shipdate,<br />
'AdminComment': OrderItemId,<br />
'CreatedOnUtc': new Date().toISOString(),<br />
}<br />
$.ajax({<br />
type: "POST",<br />
data: source,<br />
url: "/api/PPShipments",<br />
})<br />
.done(function (data, status, jqXHR) {<br />
if (data.Success)<br />
{<br />
// $("#OrderId").val("");<br />
// $('#TrackingNumber').val("");<br />
// $('#TotalWeight').val("");<br />
//$('#ShippedDateUtc').val("");<br />
// $('#AdminComment').val("");<br />
currentRow.remove();<br />
}<br />
else<br />
{<br />
alert(data.Message) //display exception<br />
}<br />
<br />
//alert("Success");<br />
})<br />
.fail(function (jqXHR, textStatus, err) {<br />
//alert("Failed");<br />
})<br />
<br />
event.preventDefault();<br />
});CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-19034687344416704572019-09-20T14:21:00.000-05:002019-09-20T14:21:47.579-05:00Securityusing System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Security.Cryptography;<br />
using System.Text;<br />
using System.Web;<br />
<br />
namespace LM_API<br />
{<br />
public static class SiteMethods<br />
{<br />
public static string ComputeHash(string plainText,<br />
string hashAlgorithm,<br />
byte[] saltBytes)<br />
{ // If salt is not specified, generate it on the fly.<br />
if (saltBytes == null)<br />
{<br />
// Define min and max salt sizes.<br />
int minSaltSize = 4;<br />
int maxSaltSize = 8;<br />
<br />
// Generate a random number for the size of the salt.<br />
Random random = new Random();<br />
int saltSize = random.Next(minSaltSize, maxSaltSize);<br />
//Hardcoded the salt size<br />
// int saltSize = 3;<br />
// Allocate a byte array, which will hold the salt.<br />
saltBytes = new byte[saltSize];<br />
<br />
// Initialize a random number generator.<br />
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();<br />
<br />
// Fill the salt with cryptographically strong byte values.<br />
rng.GetNonZeroBytes(saltBytes);<br />
}<br />
<br />
// Convert plain text into a byte array.<br />
byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);<br />
<br />
// Allocate array, which will hold plain text and salt.<br />
byte[] plainTextWithSaltBytes =<br />
new byte[plainTextBytes.Length + saltBytes.Length];<br />
<br />
// Copy plain text bytes into resulting array.<br />
for (int i = 0; i < plainTextBytes.Length; i++)<br />
plainTextWithSaltBytes[i] = plainTextBytes[i];<br />
<br />
// Append salt bytes to the resulting array.<br />
for (int i = 0; i < saltBytes.Length; i++)<br />
plainTextWithSaltBytes[plainTextBytes.Length + i] = saltBytes[i];<br />
<br />
// Because we support multiple hashing algorithms, we must define<br />
// hash object as a common (abstract) base class. We will specify the<br />
// actual hashing algorithm class later during object creation.<br />
HashAlgorithm hash;<br />
<br />
// Make sure hashing algorithm name is specified.<br />
if (hashAlgorithm == null)<br />
hashAlgorithm = "";<br />
<br />
// Initialize appropriate hashing algorithm class.<br />
switch (hashAlgorithm.ToUpper())<br />
{<br />
case "SHA1":<br />
hash = new SHA1Managed();<br />
break;<br />
<br />
case "SHA256":<br />
hash = new SHA256Managed();<br />
break;<br />
<br />
case "SHA384":<br />
hash = new SHA384Managed();<br />
break;<br />
<br />
case "SHA512":<br />
hash = new SHA512Managed();<br />
break;<br />
<br />
default:<br />
hash = new MD5CryptoServiceProvider();<br />
break;<br />
}<br />
<br />
// Compute hash value of our plain text with appended salt.<br />
byte[] hashBytes = hash.ComputeHash(plainTextWithSaltBytes);<br />
<br />
// Create array which will hold hash and original salt bytes.<br />
byte[] hashWithSaltBytes = new byte[hashBytes.Length +<br />
saltBytes.Length];<br />
<br />
// Copy hash bytes into resulting array.<br />
for (int i = 0; i < hashBytes.Length; i++)<br />
hashWithSaltBytes[i] = hashBytes[i];<br />
<br />
// Append salt bytes to the result.<br />
for (int i = 0; i < saltBytes.Length; i++)<br />
hashWithSaltBytes[hashBytes.Length + i] = saltBytes[i];<br />
<br />
// Convert result into a base64-encoded string.<br />
string hashValue = Convert.ToBase64String(hashWithSaltBytes);<br />
<br />
// Return the result.<br />
return hashValue;<br />
}<br />
<br />
public static bool VerifyHash(string plainText,<br />
string hashAlgorithm,<br />
string hashValue)<br />
{<br />
// Convert base64-encoded hash value into a byte array.<br />
byte[] hashWithSaltBytes = Convert.FromBase64String(hashValue);<br />
<br />
// We must know size of hash (without salt).<br />
int hashSizeInBits, hashSizeInBytes;<br />
<br />
// Make sure that hashing algorithm name is specified.<br />
if (hashAlgorithm == null)<br />
hashAlgorithm = "";<br />
<br />
// Size of hash is based on the specified algorithm.<br />
switch (hashAlgorithm.ToUpper())<br />
{<br />
case "SHA1":<br />
hashSizeInBits = 160;<br />
break;<br />
<br />
case "SHA256":<br />
hashSizeInBits = 256;<br />
break;<br />
<br />
case "SHA384":<br />
hashSizeInBits = 384;<br />
break;<br />
<br />
case "SHA512":<br />
hashSizeInBits = 512;<br />
break;<br />
<br />
default: // Must be MD5<br />
hashSizeInBits = 128;<br />
break;<br />
}<br />
<br />
// Convert size of hash from bits to bytes.<br />
hashSizeInBytes = hashSizeInBits / 8;<br />
<br />
// Make sure that the specified hash value is long enough.<br />
if (hashWithSaltBytes.Length < hashSizeInBytes)<br />
return false;<br />
<br />
// Allocate array to hold original salt bytes retrieved from hash.<br />
byte[] saltBytes = new byte[hashWithSaltBytes.Length -<br />
hashSizeInBytes];<br />
<br />
// Copy salt from the end of the hash to the new array.<br />
for (int i = 0; i < saltBytes.Length; i++)<br />
saltBytes[i] = hashWithSaltBytes[hashSizeInBytes + i];<br />
<br />
// Compute a new hash string.<br />
string expectedHashString =<br />
ComputeHash(plainText, hashAlgorithm, saltBytes);<br />
<br />
// If the computed hash matches the specified hash,<br />
// the plain text value must be correct.<br />
return (hashValue == expectedHashString);<br />
}<br />
public static string Base64Encode(string plainText)<br />
{<br />
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);<br />
return System.Convert.ToBase64String(plainTextBytes);<br />
}<br />
public static string Base64Decode(string base64EncodedData)<br />
{<br />
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);<br />
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);<br />
}<br />
}<br />
}CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-57038186069216278192019-09-20T14:20:00.001-05:002019-09-20T14:20:29.272-05:00Return View of a model or an HttpStatusCode<br />
public ActionResult Details(int? id)<br />
{<br />
if (id == null)<br />
{<br />
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);<br />
}<br />
<br />
<br />
OrderNote orderNote = mymethodtoretriverecord(id);<br />
<br />
if (orderNote == null)<br />
{<br />
return HttpNotFound();<br />
}<br />
return View(orderNote);<br />
}<br />
<br />
<br />
<br />
CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-75736853130048648752019-09-20T14:20:00.000-05:002019-09-20T14:20:10.722-05:00Pseudo Class when you need a generic object public class PseudoProduct : calldetail_viw<br />
{<br />
};<br />
<br />
public List<calldetail_viw> GetTeamMonthlySummary()<br />
{<br />
<br />
int currentmonth = DateTime.Today.Month;<br />
int lastmonth = DateTime.Today.AddMonths(-3).Month;<br />
<br />
<br />
var calldata = (from c in db.calldetail_viw<br />
where c.ConnectedDate.Value.Month >= lastmonth<br />
&& c.ConnectedDate.Value.Month <= currentmonth<br />
&& c.LocalName == "myaccountrep"<br />
&& c.CallDirection=="Inbound"<br />
group c by new {c.AssignedWorkGroup, month = c.ConnectedDate.Value.Month}<br />
into g<br />
select new PseudoProduct<br />
{<br />
AssignedWorkGroup = g.Key.AssignedWorkGroup,<br />
CustomNum1 = g.Key.month,<br />
CustomNum2 = g.Count()<br />
});<br />
<br />
var cl = new List<calldetail_viw>();<br />
foreach (var item in calldata)<br />
{<br />
cl.Add(new calldetail_viw {<br />
AssignedWorkGroup = item.AssignedWorkGroup,<br />
CustomNum1 = item.CustomNum1,<br />
CustomNum2 = item.CustomNum2,<br />
});<br />
}<br />
return cl;<br />
}CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-82453151384289549772019-09-20T14:16:00.002-05:002019-09-20T14:16:41.272-05:00HTML Helper Methodspublic static class CoverageAuthorization<br />
{<br />
public static MvcHtmlString ShowHideLink( this HtmlHelper helper,string linkSupplied, string username)<br />
{<br />
<br />
var approvalHierarchy = ConfigurationManager.AppSettings["ApprovalHierarchy"];<br />
approvalHierarchy = approvalHierarchy.Substring(approvalHierarchy.IndexOf("Supervisor"));<br />
var claimManager = new ClaimManager();<br />
var currentUser = claimManager.GetClaimUserByLogin(username);<br />
if (approvalHierarchy.IndexOf(currentUser.Role.ToString()) >= 0)<br />
{<br />
<br />
return MvcHtmlString.Create("<br />" + linkSupplied);<br />
}<br />
else<br />
{<br />
return MvcHtmlString.Empty; ;<br />
}<br />
}<br />
}<br />
<br />
To use it<br />
<br />
@Html.ShowHideLink("<a href='/CaseLoadTransition/Index'>Case Load Transition</a> ", HttpContext.Current.User.Identity.Name.ToString())<br />
CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0tag:blogger.com,1999:blog-8083115688180378812.post-21145145125948240432019-09-20T14:16:00.001-05:002019-09-20T14:16:15.734-05:00Export Grid to Excel with JQuery<h3>
Using Table2Excel</h3>
<br />
Grab the Javascript Table2Excel and make sure you have a reference to a recent Jquery library<br />
<br />
<a href="https://rawgit.com/unconditional/jquery-table2excel/master/src/jquery.table2excel.js">https://rawgit.com/unconditional/jquery-table2excel/master/src/jquery.table2excel.js</a><br />
<br />
Create a button click or other event<br />
<br />
$("#myButton").click(function(){<br />
<br />
$("#myGridorTable").table2excel({<br />
exclude: ".noExl",<br />
name: "MyExcel.xls"<br />
});<br />
};<br />
<br />
<br />
There you go - button click - excel returned as a file to the browser.CodeFlunkiehttp://www.blogger.com/profile/04090184745362426140noreply@blogger.com0