/// <summary>
        /// Update Caution List For Trucks
        /// </summary>
        /// <param name="truckDetails"></param>
        /// <returns></returns>
        public int UpdateCautionListForTrucks(TruckDetailsDTO truckDetails)
        {
            truckdetail truckdetailEntity = new truckdetail();
            AutoMapper.Mapper.Map(truckDetails, truckdetailEntity);

            ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>().Update(truckdetailEntity);

            //return value
            return truckdetailEntity.Truck_Id;
        }
    protected void grdTruckCautionLst_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int truckId = Convert.ToInt32(grdTruckCautionLst.DataKeys[e.RowIndex].Value);

        TruckDetailsDTO truckDetails = new TruckDetailsDTO();
        truckDetails = ESalesUnityContainer.Container.Resolve<ITruckService>().GetTruckDetailsByTruckId(truckId);
        truckDetails.Truck_IsBlacklisted = false;
        truckDetails.Truck_BlacklistedBy = null;
        truckDetails.Truck_LastUpdatedDate = DateTime.Now;
        truckDetails.Truck_IsDeleted = false;

        ESalesUnityContainer.Container.Resolve<ICautionListService>().UpdateCautionListForTrucks(truckDetails);
        txtDocNumber.Text = "";
        ucMessageBoxForGrid.ShowMessage(Resources.Messages.TruckCautionListDeletedSuccessfully);
    }
        /// <summary>
        /// Save And Update Truck Details For Customer
        /// </summary>
        /// <param name="truckDetails"></param>
        public int SaveAndUpdateTruckDetailsForCustomer(TruckDetailsDTO truckDetails)
        {
            truckdetail truckDetailsEntity = new truckdetail();
            AutoMapper.Mapper.Map(truckDetails, truckDetailsEntity);

            if (truckDetails.Truck_Id == 0)
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>().Save(truckDetailsEntity);
            }
            else
            {
                ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>().Update(truckDetailsEntity);
            }

            //return the value
            return truckDetailsEntity.Truck_Id;
        }
    protected void grdTruckCautionLst_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == Globals.GridCommandEvents.ADDNEW)
        {
            GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;

            TruckDetailsDTO truckDetails = new TruckDetailsDTO();

            truckDetails = ESalesUnityContainer.Container.Resolve<ITruckService>()
                .GetTruckDetailsByTruckId(Convert.ToInt32(((DropDownList)row.FindControl("ddlTruckRegNo")).SelectedValue));
            truckDetails.Truck_IsBlacklisted = true;
            truckDetails.Truck_BlacklistedBy = ((DropDownList)row.FindControl("ddlBlackListedBy")).SelectedValue;
            truckDetails.Truck_LastUpdatedDate = DateTime.Now;
            truckDetails.Truck_IsDeleted = true;

            int truckId = ESalesUnityContainer.Container.Resolve<ICautionListService>()
                .UpdateCautionListForTrucks(truckDetails);
            //PopulateTruckCautionList();
            ucMessageBoxForGrid.ShowMessage(Resources.Messages.TruckCautionListAddedSuccessfully);
        }
    }
 /// <summary>
 /// Get inactive truck details by truck type and truck no and activate it
 /// </summary>
 /// <param></param>
 /// <returns></returns>
 public void ActivateInactiveTruck(int truckType, string truckNumber)
 {
     using (TransactionScope transaction = new TransactionScope())
     {
         if (truckType == 1)
         {
             TruckDetailsDTO _truckObj = new TruckDetailsDTO();
             truckdetail upTruckEntity = new truckdetail();
             AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>()
                 .GetSingle(item => item.Truck_RegNo == truckNumber), _truckObj);
             _truckObj.Truck_IsDeleted = false;
             _truckObj.Truck_IsSuspended = false;
             AutoMapper.Mapper.Map(_truckObj, upTruckEntity);
             ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>().Update(upTruckEntity);
         }
         else if (truckType == 2)
         {
             StandaloneTrucksDTO _standaloneTruckObj = new StandaloneTrucksDTO();
             standalonetruck upstandaloneTruckEntity = new standalonetruck();
             AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<standalonetruck>>()
                 .GetSingle(item => item.StandaloneTruck_RegNo == truckNumber), _standaloneTruckObj);
             _standaloneTruckObj.StandaloneTruck_IsDeleted = false;
             _standaloneTruckObj.StandaloneTruck_IsSuspended = false;
             AutoMapper.Mapper.Map(_standaloneTruckObj, upstandaloneTruckEntity);
             ESalesUnityContainer.Container.Resolve<IGenericRepository<standalonetruck>>().Update(upstandaloneTruckEntity);
         }
         transaction.Complete();
     }
 }
        /// <summary>
        /// Get Truck Details By Truck Registration Id
        /// </summary>
        /// <param name="truckRegistrationId">string:truckRegistrationId</param>
        /// <returns></returns>
        public TruckDetailsDTO GetTruckDetailsByTruckRegistrationId(string truckRegistrationId)
        {
            TruckDetailsDTO truckDetails = new TruckDetailsDTO();
            AutoMapper.Mapper.Map(ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>()
            .GetSingle(item => item.Truck_RegNo == truckRegistrationId), truckDetails);

            //return the value
            return truckDetails;
        }
        /// <summary>
        /// Delete Truck
        /// </summary>
        /// <param name="truckDetails"></param>
        public void DeleteTruck(TruckDetailsDTO truckDetails)
        {
            using (TransactionScope transactionScope = new TransactionScope())
            {
                TruckDocService truckDocuments = new TruckDocService();
                IList<TruckDocDetailsDTO> lstTruckDocDetails = truckDocuments.GetTruckDocDetailsByTruckId(truckDetails.Truck_Id);

                (from truckDocDetail in lstTruckDocDetails select truckDocDetail).Update(
                    truckDocDetail => truckDocDetail.Truck_Doc_IsDeleted = true);

                foreach (var truckDocs in lstTruckDocDetails)
                {
                    DeleteTruckDocDetails(truckDocs);
                }

                truckdetail truckEntity = new truckdetail();
                AutoMapper.Mapper.Map(truckDetails, truckEntity);

                ESalesUnityContainer.Container.Resolve<IGenericRepository<truckdetail>>().Update(truckEntity);

                transactionScope.Complete();
            }
        }
	/// <summary>
	/// 
	/// </summary>
	/// <returns></returns>
	private TruckDetailsDTO InitializeTruckDetails()
	{
		TruckDetailsDTO truckDetails = new TruckDetailsDTO();
		if (ViewState[Globals.StateMgmtVariables.TRUCKID] != null)
		{
			truckDetails.Truck_Id = Convert.ToInt32(ViewState[Globals.StateMgmtVariables.TRUCKID]);
		}

		truckDetails.Truck_CustomerId = Convert.ToInt32(ViewState[Globals.StateMgmtVariables.CUSTOMERID]);
		truckDetails.Truck_RegNo = txtTruckRegNo.Text.Trim();
		truckDetails.Truck_OwnerName = txtOwnerName.Text.Trim();
		truckDetails.Truck_DriverName = txtDriverName.Text.Trim();
		truckDetails.Truck_Make = Convert.ToInt32(ddlTruckMake.SelectedItem.Value);
		truckDetails.Truck_Address = txtRegAddress.Text.Trim();
		truckDetails.Truck_OwnerShortAdd = txtOwnerShortAdd.Text.Trim();
		truckDetails.Truck_DriverShortAdd = txtDriverShortAdd.Text.Trim();
		truckDetails.Truck_State = Convert.ToInt32(ddlStates.SelectedItem.Value);
		truckDetails.Truck_MobileNo = txtMobileNo.Text.Trim();
		truckDetails.Truck_PhoneNo = txtPhoneNo.Text.Trim();
		truckDetails.Truck_CreatedBy = GetCurrentUserId();
        truckDetails.Truck_DriverShortAdd = txtDriverShortAdd.Text.Trim();
        truckDetails.Truck_OwnerShortAdd = txtOwnerShortAdd.Text.Trim();
        truckDetails.Truck_RegType = Convert.ToInt32(ddltruckregistration.SelectedItem.Value);

		if (truckDetails.Truck_Id > 0)
		{
			truckDetails.Truck_LastUpdatedDate = DateTime.Now;
		}
		else
		{
			truckDetails.Truck_CreatedDate = DateTime.Now;
		}

		//return the value
		return truckDetails;
	}