MY Favorite .Net Question For Interview

This are not tidy. Just for rough. In Sha Allah will make it tiddy soon. 1.  DateTime2 Date range 0001-01-01 through 9999-12-31  vs Date...

Tuesday, November 27, 2018

Programming language & library Exceptions that occurred while developing in C#, JavaScript, Jquery, SQL, Entity framework

C#-SQL: Procedure or function SPROC_GET_DBTEXQuality_SearchBatchCardDetails has too many arguments specified. 
It occurs when System.Data.SqlClient SqlCommand command.Parameters have more parameter rather than declared in the Stored procedure

Parse String to Date Time: Worked For ME:
   string CreatedDateStr = "2018-12-13 11:05:45.313";
   DateTime CreateDate = DateTime.Parse( CreatedDateStr );

Thursday, November 1, 2018

Using SqlClient connect to sql server and CRUD in Databse thorough Stored Procedure


  1.   public List<LDNo> LDNoList(Int64? LDNo)
  2.         {

  3.             ResultModel result = new Models.ViewModel.CommonViewModel.ResultModel();
  4.             string error = String.Empty;
  5.             QUERY2 query = new QUERY2();
  6.             Dictionary<string, object> dict = new Dictionary<string, object>();//= new Dictionary<string, string> 
  7.             List<LDNo> ldnoList = new List<LDNo>();

  8.             dict.Add("@LDNO", LDNo);
  9.             dict.Add("@Result", 1.ToString());
  10.             dict.Add("@Message", "Message".ToString());
  11.             query.SQL = @"SPROC_GET_tblDyesForecastingHead_LDNO";
  12.             query.PARAMETER = dict;
  13.             clsDataprocess cls = new clsDataprocess();
  14.             result = cls.ExecuteSqlStoredProcedureSaveEdit(query, "get", out error);
  15.             if (result.Result && result.DtTable != null && result.DtTable.Rows.Count > 0)
  16.             {
  17.                 Int64 tempi = 0;
  18.                 for (int i = 0; i < result.DtTable.Rows.Count; i++)
  19.                 {
  20.                     LDNo lDNo = new LDNo();
  21.                     Int64.TryParse(result.DtTable.Rows[i]["LDNO"].ToString(), out tempi);
  22.                     lDNo.LdNo = tempi;
  23.                     ldnoList.Add(lDNo);

  24.                 }
  25.                 string Message = result.Message;
  26.                 string Result = result.Result.ToString();
  27.             }
  28.             else if (!result.Result)
  29.             {
  30.                 throw new Exception(result.Message);
  31.             }

  32.             return ldnoList;
  33.         }

Thursday, October 18, 2018

Programming Or Algorithms Snippet

1. Swap value of 2 variable with out using any third variable.
Suppose

  1.  a= 5
  2.  b = 7
  3.  a = a + b;  = 12;
  4.  b =  a - b ;  =  5;
  5.  a = a -b; = 7

 You can also swap two equal length array with out using any temporary third variable by looping and traversing the arrays. 

Tuesday, October 9, 2018

C# Snippet


1. Formatting Date-time:  string.Format("{0:dd/MM/yy}", DateTime.Today)
2. Storing List Data in ViewBag and retrieve the List Data in View Or Getting List Data From ViewBag :

List<MachForeCastedSumRpt> MachForeCastedSumRptList = ViewBag.MachForeCastedSumRptList as List<MachForeCastedSumRpt>;

SQL Snippet


Select multiple columns from a subquery in SQL Server Or Use OF Outer Apply
  1. SELECT t1.ID, t1.fck, t1.f1, t3.f2, t3.f3
  2. FROM tbl1 AS t1
  3. OUTER APPLY (
  4. SELECT f2, f3 
  5. FROM tbl2 AS t2 
  6. WHERE t2.ID = t1.fck) AS t3

Decaaring table as Variable And Inserting In it:
  1. declare @listOfTablesArrangementIDs table (id int);  
  2. insert @listOfTablesArrangementIDs(id) values(1),(2),(3) 
  3. insert @listOfTablesArrangementIDs(id) values(2027),(20258),(7)  
  4. select  * from TablesArrangement where ID NOT IN (select * from @listOfTablesArrangementIDs ) AND AreaCode = 'tst1'

Create Trigger
  1.  -- ============================================= 
  2.  -- Author: <Muhammad Ashikuzzaman,,Name> 
  3.  -- Create date: <24-10-2018,,> 
  4.  -- Edit date: <14-08-2018, > 
  5.  -- Description: <Initial server: 192.168.153.208 > 
  6.  -- ============================================= 
  7.  CREATE TRIGGER [ccl2].[TRG_TBL_PriceSetup] 
  8.  ON [ccl2].[TBL_PriceSetup] 
  9.  AFTER UPDATE 
  10.  AS 
  11.  BEGIN 
  12.  -- SET NOCOUNT ON added to prevent extra result sets from 
  13.  -- interfering with SELECT statements. 
  14.  SET NOCOUNT ON; 
  15.  --Declare @PriceID bigint 
  16.  --Select @PriceID = PriceID From deleted 
  17.  
  18.  insert into ccl2.ARC_PriceSetup (PriceID,Price) 
  19.  select PriceID,Price from deleted 
  20.  END
Create A Stored Procedure
  1. USE [ProjectInfoDB]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[SPROC_GET_tblDyesForecastingHead_LDNO]    Script Date: 11/1/2018 12:44:51 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author: <Muhammad Ashikuzzaman,,Name>
  10. -- Create date: <14-08-2018,,>
  11. -- Edit date: < ,,>
  12. -- Description: <Initial server: 192.168.153.208 ,,>
  13. -- =============================================
  14.  ALTER PROCEDURE [dbo].[SPROC_GET_tblDyesForecastingHead_LDNO] 
  15.  @LDNO bigint = null, 
  16.  @Result  bit =1 out ,
  17.  @Message  nvarchar(200) = 'ok' out   
  18.   
  19.  AS
  20. BEGIN
  21.   
  22. SET NOCOUNT ON;

  23. --select top 50  CommonId_For_ForeCastingDetails, DyeingPart, DyesID  from dbo.tblDyesForecastingDetail

  24.  select DISTINCT  LDNO  from dbo.tblDyesForecastingHead 
  25.  where   Convert(nvarchar(50), LDNO) like '%'+ Convert(nvarchar(50), ISNULL(@LDNO, LDNO) ) +'%'

  26.  --select top 50  CommonId_For_ForeCastingDetails, DyeingPart, DyesID  from dbo.tblDyesForecastingDetail

  27.  If (@@ERROR<>0)
  28. Begin
  29. set @Result = 0
  30. set @Message = 'Failed to Retrieve, Try Again'
  31. End
  32. Else
  33. BEGIN
  34.      set @Result = 1
  35.      set @Message = 'Data was Retrieved successfully'
  36. END
  37. END
Create a Cursor and traverse selected row through this cursor

  1.      declare @BatchCardID2 bigint
  2.      declare @UnitID int
  3.      declare @BatchNO2 varchar(200)
  4.      declare @DemoVariable varchar(200)
  5.      declare @FinishType varchar(50)  
  6.      declare @CtnInfo cursor 
  7.      set @CtnInfo= CURSOR FOR 
  8.      SELECT    top(2)    BatchCardID, UnitID, BatchNO, FinishType  FROM    dbo.tblBatchCardHead B   
  9.      declare @tblBody nvarchar(max)
  10.      set @tblBody= 'Start : ' 
  11.      OPEN @CtnInfo  
  12. FETCH NEXT
  13.         FROM @CtnInfo INTO 
  14.   @BatchCardID2, @UnitID  ,@BatchNO2   , @FinishType  
  15.         
  16.   WHILE @@FETCH_STATUS = 0
  17.     BEGIN 

  18.  SET @tblBody=@tblBody+ ', ' + @BatchNO2 
  19.        FETCH NEXT FROM @CtnInfo INTO
  20.    @BatchCardID2, @UnitID  ,@BatchNO2   , @FinishType   
  21.      END 
  22.    CLOSE @CtnInfo
  23.    DEALLOCATE @CtnInfo 
  24.    select @tblBody as TotalSelecteddata

Tuesday, September 11, 2018

ASP .NET MVC 5 Multi Tenant Example With New Project (Single Different Database For Per Tenant Using Entity Framework)

In the name of Allah, Most Gracious, Most Merciful بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم

Welcome to Hamdoon Soft Fun: 
Here I just use this ASP .Net MVC5 application as Multitenant application with single database per tenant 
I am doing it from Windows 10 .

All code and supports can achieved from here https://www.fiverr.com/ashikcse20 

And video is here : 

A. Technical Steps: 
1. Go to C:\Windows\System32\drivers\etc open hosts file with Sublime Text or Notepad with administarator mode. find # 127.0.0.1 localhost and replace it by the following instruction. 
# In hosts file a line starting with # is a comment line #The below line is an active line which make many alias of local host (remove the #) 127.0.0.1 localhost hamdoonsoft.com tenant1.hamdoonsoft.com tenant2.hamdoonsoft.com tenant3.hamdoonsoft.com 


Thursday, August 16, 2018

Jquery Code Snippet

Use Of :not(), :not, :nth-child()
Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why $( ".myclass:eq(1)" ) selects the second element in the document with the class myclass, rather than the first. In contrast, :nth-child(n)uses 1-based indexing to conform to the CSS specification.
ecause jQuery's implementation of :nth- selectors is strictly derived from the CSS specification, the value of n is "1-indexed", meaning that the counting starts at 1. For other selector expressions such as :eq() or :even jQuery follows JavaScript's "0-indexed" counting. Given a single <ul> containing two <li>s, $( "li:nth-child(1)" ) selects the first <li> while $( "li:eq(1)" ) selects the second.
https://api.jquery.com/nth-child-selector/ 
https://api.jquery.com/eq-selector/ 
$("#table4 tr:not(:last,:first,#table4-first-tr, :nth-child(2) )").remove(); 

Check If A Checkbox Is Checked With jQuery 

// Trigger checkbox click on it's parent click

  1. $("body").on("click", ".checkbox-td", function (event) {
  2.             debugger;
  3.             $(':checkbox', this).trigger('click');
  4.             event.stopPropagation(); 
  5.         }); 

If checkbox is checked or not

  1. if (jQuery(this).is(':checked')) { }
  2. else if (jQuery(this).is(':not(:checked)')) { }
When testing local server ajax was working fine. But when put in http://192.168.153.253/ERP/ ajax wasn't working.
get that ERP was added and for the shake a base url is needed.

  1. <script type="text/javascript"> 
  2.         var base = '@Url.Content("~/")';
  3. </script>

jQuery track when #Mymodal is colosed

  1. $('#myModal').on('hidden.bs.modal', function (e) {})
  2. jQuery Delaying While Removing/Adding CSS
  3. setTimeout(function () {
  4. ClickedTd.css("border", "0px solid green");
  5. }, 2000);

#Remove checkbox with delay one by one:  First one work. If I put  check box in setTimeout then it will refer  $(this) = wind function and checkbox aren't removed
  1.                var i = 0;
  2.                 $(".checkbox-td .ckbox:checkbox:not(:disabled)").each(function () {
  3.                     i++;
  4.                     var chkbox = $(this);
  5.                     setTimeout(function () {
  6.                         chkbox.remove();
  7.                     }, 1000 - 100 * i);
  8.                 });
  9.                 i = 0;
  10.                 $(".checkbox-td .ckbox:checkbox:not(:disabled)").each(function () {
  11.                     i++;
  12.                     setTimeout(function () {
  13.                         $(this).remove();
  14.                     }, 1000 - 100 * i);
  15.            });

# Juquery $.Ajax  Jquery Ajax Method  with object variable as data

  1.  //dyes_forecasting.ForecastingHead = dyes_forecasting_head_list;
  2. //dyes_forecasting.DyesRecipe = dyes_recipe_list;
  3. //var data = "{'model':" + JSON.stringify(dyes_forecasting) + "}";
  4. function LoadList() {
  5.     var jdata = PrepearJasonData('filter-item');
  6.     //alert(JSON.stringify(jdata));
  7.     WaitMeStart();
  8.     $.ajax({
  9.         type: 'POST',
  10.         url: '/tablessetup/List',
  11.         contentType: "application/json; charset=utf-8",
  12.          data: JSON.stringify(jdata),
  13.        // data: JSON.stringify({ "Ldno": Ldno }),
  14.         success: function (data) {
  15.             $('#content-box').html(data);
  16.             InitForm();
  17.             InitSortingHeader("content-box");
  18.         },
  19.         error: function (e) {
  20.             //alert(e.responseText);
  21.             WaitMeStop();
  22.            // l.stop();
  23.             alertify.error("Something technical error occurred");
  24.         }
  25.     }).done(function () {
  26.         WaitMeStop();
  27.        // l.stop();
  28.     });
  29.  }
  30.   
 Ajax Call To Load Search Data From Server And Get Title Error 
  1.                 $.ajax({
  2.                     type: 'POST',
  3.                     url: base + "Chemical/SearchOrderDetails",
  4.                     contentType: "application/json; charset=utf-8",
  5.                     //data: JSON.stringify(jdata),
  6.                    //data: JSON.stringify({ "Ldno": Ldno }),
  7.                     success: function (data) {
  8.                         if (data.indexOf("No record was found") >= 0) {

  9.                             IaoCustomizedMessage(data.toString(), "warning", "dark", true, 2500);
  10.                             $("#grid").append("<tr><td colspan='12'>" + data + "</tr></td>");
  11.                         }
  12.                         else {

  13.                             $("#grid").append(data);
  14.                             ProcesDyesRecipePercantageTableDivVisibility("show");
  15.                         }

  16.                     },
  17.                     error: function (error) {

  18.                         if (typeof error.message == "undefined") {
  19.                             var element = $(error.responseText);
  20.                             var message = element.get(1).innerText;
  21.                             IaoCustomizedMessage(message, "error", "dark", true, 8000);
  22.                         }
  23.                         else IaoCustomizedMessage(e.message, "error", "dark", true, 5500);

  24.                     }
  25.                 }).done(function () {
  26.                 IaoCustomizedMessage("Successfully retrieve data from server", "success", true, 1500);
  27. });
Juquery $.Ajax  Jquery Ajax Method with variable as data For Php Page
  1.     $("body").on("change", "#buyer", function() {
  2.     console.log("Allahu Akbor");
  3.     var buyer = $("#buyer").val().trim();
  4.     var order = $("#order").val().trim();
  5.     $.ajax({
  6.         type: 'GET',
  7.         url: 'GetOrderList.php',
  8.         contentType: "application/json; charset=utf-8",
  9.         data:   { buyer : buyer, order : order   } ,
  10.         success: function (data) {
  11.             $('#message').html(data);
  12.              
  13.         },
  14.         error: function (e) { 
  15.         }
  16.     }).done(function () {
  17.      console.log("Alhamdulilla"); 
  18.     });
  19.    });
       Iao Customized Message
  1. IaoCustomizedMessage(data.toString(), "warning", "dark", true, 2500);
  2.     <link href="@Url.Content("~/Bootstrap/iao-alert.css?_" + DateTime.Now.Ticks)" rel="Stylesheet" /> 
  3.    <script src="@Url.Content("~/Bootstrap/iao-alert.jquery.js?v=" + 1.1)"></script>
  4.  function IaoCustomizedMessage(msg, type, mode, autoHide, alertTime) { // By Muhammad Ashikuzzaman in 2018.10.06
  5.             if (typeof type == "undefined" || type === "") {
  6.                 type = "notification";
  7.             } if (typeof autoHide == "undefined" || autoHide === "") {
  8.                 autoHide = true;
  9.             }
  10.             if (typeof alertTime == "undefined" || alertTime === "") {
  11.                 // alertTime = 3000;
  12.             }
  13.             if (typeof mode == "undefined" || mode === "") {
  14.                 mode = "dark";
  15.             }
  16.             $.iaoAlert({ 
  17.                 // default message
  18.                 msg: msg, 
  19.                 // or 'success', 'error', 'warning'
  20.                 type: type, //"notification", 
  21.                 // or light dark
  22.                 mode: mode, 
  23.                 // auto hide true, false
  24.                 ////  autoHide: true,
  25.                 autoHide: autoHide, 
  26.                 // fade animation speed
  27.                 fadeTime: "2800",
  28.                 // timeout in milliseconds
  29.                 alertTime: alertTime, 
  30.                 // shows close button
  31.                 closeButton: true, 
  32.                 // close on click
  33.                 closeOnClick: true, 
  34.                 // custom position
  35.                 position: 'bottom-right', 
  36.                 // fade on hover
  37.                 fadeOnHover: true, 
  38.                 // z-index
  39.                 zIndex: '999', 
  40.                 // additional CSS class(es)
  41.                 alertClass: '' 
  42.             });
  43.         } 
   Data Table Related Code Snippet :

  Reload Datatable after ajax success
  1.   $('body #quality_control_table').dataTable().fnDestroy();

Wednesday, August 15, 2018

Using SqlClient connect to sql server and CRUD in Databse thorough code base Inner Query Query

2.  SqlClientCode For Calling StoredProcedure for Getting Data

  1.   public JsonResult BuyerList()
  2.         {
  3.             Chemical_DAL obj_dal = new Chemical_DAL();
  4.             return Json(obj_dal.BuyerList());
  5.         }

2. Service
  1. public class QUERY
  2. {
  3.     public string SQL { get; set; }
  4.     public Dictionary<string, string> PARAMETER { get; set; }
  5.     public Dictionary<string, byte[]> BYTEPARAMETER { get; set; }
  6. }



Wednesday, July 11, 2018

MY Favorite .Net Question For Interview

This are not tidy. Just for rough. In Sha Allah will make it tiddy soon.

1.  DateTime2 Date range 0001-01-01 through 9999-12-31  vs DateTime Date range January 1, 1753, through December 31, 9999 in SQL Server
Ans: https://stackoverflow.com/questions/1334143/datetime2-vs-datetime-in-sql-server

2.  Dictionary  value different types use object as datatype of the eky value

3. If one property of a class is list<> of another class then how to deal with it if we want to initialize it in essential place to avoid Null Reference. See question 17 below.

4. How to create multi valued dictionary rather  than one valued dictionary.


5. Instance Methods as Delegates
6.  Generic:  Base Class Constraint
7. Defference btn logical ("AND, OR") vs  shortcircuit ("AND, OR")repectively

8. Use ref and out Parameters
9. Indexer vs Property Difference
10.Variable Number of Arguments function Arguments

11. How you copy one object to another object . Not reference of the object?

12. Make a simple character stack by a C# class and push pop public member function

13. How to use one constructor to invoke another Constructor and which one will execute first
Optional Arguments vs. Overloading: How optional argument become an alternative to Function Overloading

14. Static class and static method

15. C# 4.0: The Complete Reference: 296 PG: When Are Constructors Called?
 For multilevel hierarchy inheritance : During creation of  child class object which class constructor is executed first? The one in the derived class or the one defined by the base class? Or only one constructor will be called?


16. Dynamic method dispatch/ C# runtime polymorphism: (C# 4.0: The Complete Reference 297 - 305 PG : Base Class References and Derived Objects and Virtual Methods and Overriding)
For multilevel hierarchy inheritance, because of calling the virtual method with any level base class reference variable referring to a any of the child /base class object.
case 1: When both have the virtual method then Object  being referred class method/reference class overridden method will be called?
Case 2:  If a derived class does not override a virtual
method, then, while moving up the hierarchy/down the hierarchy,  the only first override of the method that is encountered is the one executed or only the last? or All from first to last vice versa?


        clsDataprocess  cls2 = new clsDataprocess();// Wrong
static  public   SqlConnection Con = cls2.getConnection253_Mymun(); // cls2 showing the errror

You cannot use an instance variable to initialize another instance variable. Why? Because the compiler can rearrange these - there is no guarantee that cls2 will be initialized before Con , so the above line might throw a NullReferenceException.
                static clsDataprocess  cls2 = new clsDataprocess(); // Correct  put static in both  variable 

               static  public   SqlConnection Con = cls2.getConnection253_Mymun();// Correct


18.Why can't I use alias in a count(*) “column” and reference it in a having clause?

The HAVING clause is evaluated before the SELECT - so the server doesn't yet know about that alias.

Answer : 
When you create BookList, you haven't actually initialized the list that is its member. You can do this by changing your initialization to:
BookList myBookList = new BookList() {bookList = new List<Book>()};
Or by writing a constructor for the BookList class which initializes the list; which would look like this:
class BookList
{
    public List<Book> bookList { get; set; }

    public BookList(){ //New constructor
        bookList = new List<Book>();
    }
}


Local variables aren't initialized. You have to manually initialize them.
Members are initialized, for example:
public class X
{
    private int _tmpCnt; // This WILL initialize to zero
    ...
}
But local variables are not:
public static void SomeMethod()
{
    int tmpCnt;  // This is not initialized and must be assigned before used.

    ...
}

Add Choice

Add Choice