Same old file reference in project when 'Add reference' issue

March 15, 2013 ·

Same old file reference in project when 'Add reference' issue

Here is the "STUPID" scenario i came across,Following is the problem i had

Issue
I had one folder in my computer and it had two different version of dlls,My project already had reference of one of the dll,But now i wanted the reference of other dll,I simply deleted the old reference and tried to add new reference of the other file by selecting it,It was added but was showing old version when i tried to see its property ,I tried multiple times with multiple ways but no luck

Solution


First just check out the folder structure i had in my project,Here "Dlls" is the folder from which i wanted to add another file


You can see the "Dlls" folder is included in the project, And thanks to "Mr. Zakir Rana", One of project partner who insisted me to try excluding this folder and adding reference, It sounded foolish to me as its physical folder after all no matter if it is included or not,But i was surprised as soon as i excluded the folder,And it started taking new reference !!!

February 20, 2013 ·

Ajax call inside for loop issue and solution


Hello people, This post is regarding real day to day issue in coding and its resolution, It sometimes looks small issue but when it starts eating your time you start getting feeling that its no more smaller one, Here goes the issue

As the title of the blog suggests, When you are making AJAX calls inside loop, It is finitely possible that inside loop when the call is made, It takes time to get the result back to client side and by that time loop has already ended and counter has reached to limit and you end up thinking how to keep track of the request, it should get the correct index in "Success" method of $.ajax call, Otherwise it will keep on giving you one count higher than your total count of loop, There can be many way as we know in our world but below is one of the good solution to it

Solutions
See below code for an example

for (var i = 0; i < groupCount.length; i++) 
{
                !function (i) {
                    $.ajax({
                        type: 'POST',
                        url: ,
                        data: data,
                        dataType: "json",
                        success: function (respons) {
                            // Do some action
                            
                        },
                        error: function (err, para1, parra2) {
                           // Do some action 
                        }
                    });
                } (i);

Here we can see we have wrapped the ajax call into !function(), It will make sure that your ajax call works, no matter what !!!, One more dirty fix is that we can change the property called async=false in $.ajax parameters but that does not serve the purpose as when we use ajax it has to be async.

Small but helpful !!!

January 08, 2013 ·

Facebook Graph API calls for facebook integration

FACEBOOK the world of it's own,But it sounds good if you get its power in your site,Photos,Status,Like,Commenting,Facebook albums, In short you can simply go and create your app which does everything for you without even going on to facebook

Facebook has its very superb API which you can find on developer.facebook.com, You can download full binaries to be coded in C# but i will skip that and put that on readers to explore as and when you have time,Lets talk something short and sweet

Facebook Page
Here i am only going to talk about the get API calls,That means only things which only get the data from any public page,Say you have a page on facebook for your business and you want the data from your facebook page to be shown onto your website,You can use these calls,Fast,Easy and Fun,Lets get started

Say i have a photography page on my facebook or any other page,You can get its photo albums and its photos by following code,Some of the things required to make a call are following

  • Unique Id or name of the facebook page
  • Facebook Graph API url on which you will make a http request and wait for the response
  • Each call are different (i.e photos,albums etc,Depending on your requirement) so proper URL of those calles

The Calls
Lets say i want to get the basic details of my FB page,like it's description,cover photo,profile pic,so following is the url you would be using

NOTE: Here i am using my photography page to show,You can replace the page name with yours

Get the FACEBOOK page basic info
https://graph.facebook.com/147326062077207

Try hitting above url into browser and you will get an idea what you would be doing,As it returns well formed JSON string and you will make use of that JSON and display the things
Get the list of photo albums on your page
https://graph.facebook.com/147326062077207/albums

Get list of photos into specific album

From above url you will get list of albums with their album id,and in below url you will pass that album id to get photos inside it

https://graph.facebook.com/153930304750116/photos
Getting album cover photo to show

From above url you will get list of photos for particular album,and if you see its JSON string,The 'picture' property is thumbnail preview of the cover photo, So you can take that 'picture' property and show that image from FACEBOOK's CDN.

There are many other useful properties and functions with GET and POST request,I will be covering them in next blog post, Enjoy playing with it,And do provide feedback !!!

October 22, 2012 ·

Importance of flushing memory

As we know in our day to day life how important 'Flush' is :),But that teaches us same thing in our programming life as well

Let me share a scenario where i faced the issue,In our day to day life of deadlines,Sometimes we forget to write the code which is actually needed there,You achieved the best with your code but you do not achieve the better sometimes

The Scenario :

I before few days created export to CSV and export functionality of my one of the list (Grid),It was importing the data very well,But on the close examination of data i found out that its inconsistent data,At some point of time it stopped writing the data and from that point onward there were no data in exported file.

Following is the code.


HSSFRow row = wsheet.GetRow(i);
for (short j = 0; j < row.LastCellNum; j++)
{

     HSSFCell cell = row.GetCell(j);
     string strValue = string.Format("\"{0}\",",   Convert.ToString(cell.RichStringCellValue.String));
       StreamWriter.Write(strValue);
       
 

}
StreamWriter.WriteLine();
StreamWriter.Flush();

If you see above code you do not find any issue,Same happened with me,I tried debugging it over and over,logging the operation but surprising thing was in log each and everything was coming,And i end up finding the issue was below

Issue The mistake i did was i was not clearing our StreamWriter from memory by flushing the memory and hence it was creating issue,One single statement introduced and woooo...issue got resolved like below


HSSFRow row = wsheet.GetRow(i);
for (short j = 0; j < row.LastCellNum; j++)
{

     HSSFCell cell = row.GetCell(j);
     string strValue = string.Format("\"{0}\",",   Convert.ToString(cell.RichStringCellValue.String));
       StreamWriter.Write(strValue);
       StreamWriter.Flush();
 

}
StreamWriter.WriteLine();
StreamWriter.Flush();

Everything started working as it should be,Simple but very important to follow the theories.

September 26, 2012 ·

An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

You have noticed many times that everything was working fine and suddenly the below error starts coming and you find no way to work it out An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

The reason for this is the receiving size of WCF service is smaller then the data which is coming from service It was working before because it was small,So you will have to try to increase the receiving setting in your end point,Possible settings can be following

maxStringContentLength="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"
maxArrayLength="2147483647"

That would definately help you!!!

September 18, 2012 ·

Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a runtime error

Or any file which fires this error,it may be any dll you are using in project

Today fine morning,i opened my old project which is live and needed to change something and upload,but as soon as i tried to run,It fired above error,and i was wondering everything was working fine and what has happened now? But i think our human body sometimes stops working without warning and this is just a code so there may be something wrong with it and i tried figuring it out and below is the story and conclusion

I got one of the targeted solution on below link http://live.mscommunity.net/blogs/damirdobric/archive/2011/03/18/cannot-start-wcf-web-service-because-of-aspnetadapter-failure.aspx

It basically deals with 32bit and 64 bit versions and i end up putting following lines in web.config file

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Resource" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <codeBase version="10.0.0.0" href="file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.QualityTools.Resource/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.QualityTools.Resource.dll" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <codeBase version="10.0.0.0" href="file:///C:/Program%20Files/Microsoft%20Visual%20Studio%2010.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.QualityTools.HostAdapters.ASPNETAdapter.DLL" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <codeBase version="10.0.0.0" href="file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.QualityTools.Common/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.QualityTools.Common.dll" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.ExecutionCommon" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <codeBase version="10.0.0.0" href="file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.QualityTools.ExecutionCommon/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll" />
      </dependentAssembly>
  </assemblyBinding>
</runtime>

Ssy you have UI project,Web services,content delivery etc projects,If you are using hosting in IIS and your project is directly referencing that virtual directory,That means you will end up inserting above lines in all the projects web.config file

Just restart the IIS and try to run your project,It will work now !!!

April 17, 2012 ·

DateTime format and decimal or currency issue resoved using Custom model binders in MVC

Hi all,

You can't keep yourself away from writing blog when you have faced an issue while development and you tried to solve it and finally you come across something interesting which finally resolved the issue

Today's post is regarding the scenario which we face in day to day life (But i faced it for the first time today) where i had multilingual application running on telerik controls

One of the page had DateTimePicker,We have "da-DK" (Danish) clients,When tried to save Date from one page,The page kept on giving error message "DateTime format is not valid" for this field (Typical MVC datetime validation error messgae)

So scenario was in UI everything was coming as per culture,If i select date from DatePicker it was returning correct format,But still couldn't figure out what was wrong

So let me cut the story short and tell you,Model binder was the key to success

The code looks like following

public class DateTimeModelBinder : IModelBinder
{
  public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
  {
            ValueProviderResult valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
            ModelState modelState = new ModelState { Value = valueResult };
            object actualValue = null;
            try
            {
                string culture = Convert.ToString(HttpContext.Current.Session["culture"]);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
                actualValue = Convert.ToDateTime(valueResult.AttemptedValue, Thread.CurrentThread.CurrentCulture);
            }
            catch (FormatException e)
            {
                modelState.Errors.Add(e);
            }

            bindingContext.ModelState.Add(bindingContext.ModelName, modelState);
            return actualValue;
  }
}

Above is simple class created under folder "Helper",Now what it does is it tells compiler that which format the date should be parsed so that its valid on server

Now,We are not done yet,We need to register this binders in global.asax file on Application_Start so that at runtime this class gets called and later on can parse the date as per culture,Which is like below

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     RegisterGlobalFilters(GlobalFilters.Filters);
     RegisterRoutes(RouteTable.Routes);
           
      ModelBinders.Binders.Add(typeof(DateTime), new DateTimeModelBinder());
     WebAssetDefaultSettings.UseTelerikContentDeliveryNetwork = true;
}


Now,Try to submit the date which previously you were trying to in different culture and all will work,Same applies for currency,You can use Convert.Deciaml() instead of Convert.DateTime

Cheers!!!

January 05, 2012 ·

telerik multiple window bug

Many of you (just like me) might have came across the multiple telerik window bug which is just as annoying as it can get

Scenario : In my case i had two telerik window which were opening from the same grid,one was inbuilt window for editing the record (GridEditMode.PopUp) and the other one was opening from one hyperlink inside the same grid

Here i had used the same model for both the partial controls which were loading inside window,so the control's generated html contained id same as property name of strongly model

So now when i was opening first window it came loaded with all controls and my partial control,now i opened second window as well,everything worked fine till now.

Now if you people might have observed that when you close the telerik window,It does not clear the content which you rendered inside it,so window was closed but the html inside remained as it is.

Now problem occurs now if i try to open the default edit pop up window for telerik grid it tries to render the html and now we have used the same model here so it gets same "Id" for the controls inside (as out previous window which we closed already has same content in it),and hence it does not know what to do and fires an error

So we always wonder,It was working when i first opened it but now when i opened it for the second time,It does not work and we run out of ideas what to do

Below is the solution for the same,It might help you solve the issue for your telerik multiple window

Solution : Just clear the content of the window in OnClose event like following,Write a client side event for window which calls below function

function OnClose()
{
   // MyWindow is id of my window
   $('#MyWindow').html('');
}

This is simple but it avoids many issues and saves time

Cheers !!!

February 28, 2011 ·

Telerik Mvc Combobox large data loading issue on AutoCompleteFilterMode

Hi all

Its been long break...Here i am back with little out of box solution which is not available on internet,i did the solution and felt to share it with you all so that you people do not face the issues which i faced while working with telerik mvc combobox

As we know (People who use telerik mvc combobox) that when telerik mvc combobox is used and there is huge data to be loaded from controls action method, and if AutoCompleteFilterMode is on,the combo simply hangs in IE and traditional IE error will come up saying "SCRIPT IS RUNNING INFINITE,DO YOU WANT TO STOP THE SCRIPT", and will just kill the browser

So, let us cut the story short and come up directly on solution,say you are having following combobox code

<%: Html.Telerik().ComboBoxFor(model => modelfooId)
.AutoFill(true)
.BindTo(new SelectList(Model.fooList, "Value", "Text", Model.fooId))
.HtmlAttributes(new {style = "width:400px"})
.Filterable(filtering => filtering.FilterMode(AutoCompleteFilterMode.StartsWith))
.ClientEvents(c => c.OnChange("MakeSelection").OnClose("MakeSelection"))
.HighlightFirstMatch(true)
%>

you can observe the client event registered,which is actual hack for the solution,now those javascript function is as simple as that like following

function MakeSelection(e) {
    $('.t-animation-container').hide();
}

Now, try refreshing your page and try selecting any of the options, it will not hang and will run as you want

Its like magic,"Its misty until you know the trick behind"...

let me know your feedback...
Translate my page with google translate

August 31, 2010 ·

Translate my page with google translate

As we all know the world is getting multilingual,in our daily lives, specially on internet we find the things which are in another language and we need a way to translate it into the language we understand

As we all know about Google Translate is the place we all will go and paste the content that we want to translate,but what if we have power of that tool into our website or web page,yes it is possible with GOOGLE TRANSLATE (which is able to translate the page into more than 50 languages) to have that integrated into your own website,today we will see how with example



This tool is available from quite sometimes now,but the point is very less of the people from developer community are aware of this,so the reason behind this post is to show how any developer can make use of it and make it so simple to translate their pages...


The process...


The only need to have the power of translation on your website is copy and paste snippet of following code into your web page

<div id="google_translate_element">
</div>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en'
}, 'google_translate_element');
}
</script>
<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit">
</script>

Just put above snippet in your HTML mark up and run the page,you will get standard google translator logo as well as few options which we are interested in right now,see the image below




now you have the full control over language change,just select the language from available languages and see how google translate it for you

What if i do not want to translate some of the content???
Now question comes is what if there are certain portion which you do not want to translate and you want to keep it as it is,so that fix is also there,say there is copyright text or email address which you want to keep as it is,so you just have to add one CSS class to it and gogle will take care of it like following

Contact us at <span class="notranslate">daivagnas@gmail.com</span>

Now if you do not want to translate whole page so just add following

<meta name="google" value="notranslate"></meta>

I was quite amazed with the power which google provides,i hope you also do...i hope this post was useful


To see live demo just have a look at the gadget on this page at top-right-most corner
Delete duplicate records from table even when there is no key field

August 13, 2010 ·

Delete duplicate records from table even when there is no key field

Hi all,yesterday only i was discussing with my colleague Kamlesh Samnani who is MCTS about deleting records which does not have any primary key field based on which we can delete the data (actually he only fired this question yesterday to me)

so i thought to write a blog post about it,there are many posts which talk about deleting duplicate records from the table which has some key field,so i started working on the query and what i got is what i am gonna write here.

Lets start creating the table and after inserting some data in it,we will fire our query in that and will check the output as well

CREATE TABLE [dbo].[Employee](
[EmployeeId] [int] NULL,
[Salary] [money] NULL
) ON [PRIMARY]

INSERT INTO Employee VALUES(1,1000)
INSERT INTO Employee VALUES(1,2000)
INSERT INTO Employee VALUES(1,3000)
INSERT INTO Employee VALUES(2,2000)
INSERT INTO Employee VALUES(3,3000)
INSERT INTO Employee VALUES(3,4000)
INSERT INTO Employee VALUES(4,4000)
INSERT INTO Employee VALUES(4,5000)


after creating table and inserting some data table will look like following



Now we will try solving the problem using two method,first one is using simple query which is quite interesting (It was new for me when i created this query and performed) and second approach is using CTE (Common Table Expression)

1) Using Simple Query with Row_Number()

DELETE temp FROM
  (
      SELECT id FROM
      (
        SELECT row_number() over (PARTITION BY EmployeeId order by EmployeeId) AS   
        id, EmployeeId,Salary 
        FROM Employee
      ) AS t WHERE id > 1
   ) temp
   SELECT * FROM Employee

Here what row_number() will do is will create numbers for each of the row,now we have PARTITION BY EmployeeId so it will reset the number when EmployeeId changes,so on every new EmployeeId there will be number generated from 1,so we can directly delete data which are > 1,because they are duplicate,now in case if we do not have any duplicate record this row_number() will generated only once and it will never be reset,so in that case no records would be having same number generated

2) Using CTE

;WITH temp (uniquid,id,salary) AS 
 (
    SELECT row_number() OVER (PARTITION BY EmployeeId order by EmployeeId) AS id, 
    EmployeeId,Salary 
    FROM Employee
 )
 DELETE FROM temp WHERE uniquid>1
 SELECT * FROM Employee

Output




Both of the query will produce the desire output and will delete the duplicate records

I hope this is interesting one right,honestly i was not knowing until i performed it my self yesterday,so you can also hands on...

August 11, 2010 ·

Roll back truncate command

How many times it has happened that somebody asks u a difference of Truncate and Delete,Atleast i am the person who used to say the very first point is that "TRUNCATE CAN NOT BE ROLLED BACK" untill i came across the blog post of Pinal Dave

So,the best way to understand any point is start with sample,here what we will do is we will create one table and we will create one transaction and under which we will be doing our truncate thing...and finally we will observe the result

Lets us start it by creating sample table and our transaction like following as shown below


CREATE TABLE temp (Name varchar(50))
INSERT INTO temp SELECT 'Moe'
INSERT INTO temp SELECT 'Larry'
INSERT INTO temp SELECT 'Curley'


BEGIN TRAN
   SELECT * FROM temp
   TRUNCATE TABLE temp
   SELECT * FROM temp
ROLLBACK TRAN
   SELECT * FROM temp
   
DROP TABLE temp


Now if you just copy and paste this above in your query editor and hit F5 (RUN),you would be surprise to see that even if you have performed TRUNCATE operation on your table,your data are still available at the end of transaction if we ROLLBACK

I was also got the feeling of learning something new with this helpful post by Pinal,which inspired me to write this post,so that we can use it for further reference

i hope this post is larning for you people as well

comments are welcomed...:-D