Thursday, August 8, 2019


Validation in server side


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="myprofile.aspx.cs" Inherits="myprofile" %> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script> 
        function OnlyNumbers(evt) { 
            var charCode = (evt.which) ? evt.which : evt.keyCode; 
            if (charCode != 46 && charCode > 31 
              && (charCode < 48 || charCode > 57)) 
                return false; 
            return true; 
        } 
        function checkEmail(event) { 
            var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
            if (!re.test(event.value)) { 
                alert("Please enter a valid email address"); 
                return false; 
            } 
            return true; 
        } 
 
        function chkvalidation() 
        { 
            var exitval = false; 
            var rsltcount = 0; 
            var msgtext = ""; 
 
            //Age Validation 
            var ageval = document.getElementById("<%= txtAge.ClientID %>").value; 
            var agerslt = false; 
            if (ageval.length > 0) 
            { 
                agerslt = OnlyNumbers(document.getElementById("<%= txtAge.ClientID %>")); 
                if (agerslt == false) 
                { 
                    msgtext = "Invalid age entered."; 
                    rsltcount = 1 
                } 
                else 
                { 
                    if (ageval > 100) { 
                        msgtext = msgtext + "\n Check your entered age."; 
                        rsltcount += 1 
                    } 
                } 
            } 
            else 
            { 
                msgtext =  msgtext + "\n Invalid age or age required."; 
                rsltcount += 1 
            } 
             
            //Mobile Validation 
            var mobileval = document.getElementById("<%= txtMobile.ClientID %>").value; 
            var mobilerslt = false; 
            if (mobileval.length != 10) { 
                msgtext = msgtext + "\n Invalid mobile number or mobile number required"; 
                rsltcount += 1 
            } 
            else { 
                mobilerslt = OnlyNumbers(document.getElementById("<%= txtMobile.ClientID %>")); 
                if (mobilerslt == false) { 
                    msgtext = msgtext + "\n Invalid mobile number or mobile number required."; 
                    rsltcount += 1 
                } 
            } 
 
            //Email Validation 
            var emailidval = document.getElementById("<%= txtEmailID.ClientID %>").value; 
            var emailidrslt = false; 
           if (emailidval.length > 1) { 
                    emailidrslt = checkEmail(document.getElementById("<%= txtEmailID.ClientID %>")); 
                if (emailidrslt == false) { 
                    msgtext = msgtext + "\n Invalid email id entered."; 
                    rsltcount += 1 
                } 
            } 
            else { 
               msgtext = msgtext + "\n Email id required."; 
               rsltcount += 1 
            } 
 
            if (rsltcount > 0) 
            { 
                exitval = false; 
            } 
            else 
            { 
                exitval = true; 
            } 
             
            alert(msgtext); 
            return exitval; 
            } 
    </script> 
 
</head> 
<body> 
    <form id="form1" runat="server"> 
        <div> 
            <table> 
                <tr> 
                    <td>Name 
                    </td> 
                    <td> 
                        <asp:TextBox ID="txtName" runat="server" ClientIDMode="Static"></asp:TextBox> 
                    </td> 
                </tr> 
                <tr> 
                    <td>Age 
                    </td> 
                    <td> 
                        <asp:TextBox ID="txtAge" runat="server" onkeypress="return OnlyNumbers(event)" MaxLength="3"  ></asp:TextBox> 
                    </td> 
                </tr> 
                <tr> 
                    <td>Mobile 
                    </td> 
                    <td> 
                        <asp:TextBox ID="txtMobile" runat="server" MaxLength="10" onkeypress="return OnlyNumbers(event)" ></asp:TextBox> 
                    </td> 
                </tr> 
                <tr> 
                    <td>Email ID 
                    </td> 
                    <td> 
                        <asp:TextBox ID="txtEmailID" runat="server" placeholder="yourname@server.com" onblur="checkEmail(this)"></asp:TextBox> 
                    </td> 
                </tr> 
                <tr> 
                    <td rowspan="1"> 
                        <asp:Button ID="btnSubmit" Text="Submit" runat="server"  OnClick="btnSubmit_Click" OnClientClick="return chkvalidation()" /> 
                         
                    </td> 
                </tr> 
            </table> 
            <asp:Label ID="lblResultMessage" runat="server" Text=""></asp:Label> 
 
 
        </div> 
    </form> 
</body> 

</html>



using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text.RegularExpressions; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
 
public partial class myprofile : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
 
    } 
 
    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
        string MsgText = ""; 
        Int32 rsltcount = 0; 
 
 
        //Age Validation 
        bool ageValStatus = VerifyNumericValue(txtAge.Text); 
        if (ageValStatus == false) 
        { 
            rsltcount += 1; 
            MsgText += "Invalid age or age required.</br>"; 
        } 
        if (ageValStatus == true) 
        { 
            if(Convert.ToDecimal(txtAge.Text) > 100) 
            { 
                rsltcount += 1; 
                MsgText +=  " Check your entered age.</br>"; 
            } 
        } 
 
        //Mobile Validation 
        bool mobileValStatus = VerifyNumericValue(txtMobile.Text); 
        if (mobileValStatus == false) 
        { 
            rsltcount += 1; 
            MsgText += "Invalid mobile number or mobile number required.</br>"; 
        } 
        if (mobileValStatus == true) 
        { 
            if (txtMobile.Text.Length != 10) 
            { 
                rsltcount += 1; 
                MsgText += "Check your entered mobile number.</br>"; 
            } 
        } 
 
        //Email ID Validation 
        bool emailidValStatus = VerifyEmailID(txtEmailID.Text); 
        if (emailidValStatus == false) 
        { 
            rsltcount += 1; 
            MsgText += "Invalid email id or email id required.</br>"; 
        } 
 
        lblResultMessage.Text = MsgText; 
        lblResultMessage.Font.Bold = false; 
        lblResultMessage.Font.Size = 14; 
        lblResultMessage.ForeColor = System.Drawing.Color.Red;   
 
    } 
 
    public bool VerifyNumericValue(string ValueToCheck) 
    { 
        Int32 numval; 
        bool rslt = false; 
 
        rslt = Int32.TryParse(ValueToCheck, out numval); 
 
        return rslt; 
    } 
 
    public static bool VerifyEmailID(string email) 
    { 
        string expresion; 
        expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; 
        if (Regex.IsMatch(email, expresion)) 
        { 
            if (Regex.Replace(email, expresion, string.Empty).Length == 0) 
            { 
                return true; 
            } 
            else 
            { 
                return false; 
            } 
        } 
        else 
        { 
            return false; 
        } 
    } 



GridView bind
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <table style="width:100%;"> 
        <tr> 
            <td> 
                 </td> 
            <td> 
                 </td> 
            <td> 
                 </td> 
        </tr> 
        <tr> 
            <td> 
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" 
                    CellPadding="4" DataKeyNames="id"> 
                    <Columns> 
                        <asp:TemplateField HeaderText="Name"> 
                            <EditItemTemplate> 
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>'></asp:TextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label> 
                            </ItemTemplate> 
                        </asp:TemplateField> 
                        <asp:TemplateField HeaderText="City"> 
                            <EditItemTemplate> 
                                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("city") %>'></asp:TextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="Label2" runat="server" Text='<%# Bind("city") %>'></asp:Label> 
                            </ItemTemplate> 
                        </asp:TemplateField> 
                    </Columns> 
                    <FooterStyle BackColor="#99CCCC" ForeColor="#003399" /> 
                    <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" /> 
                    <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" /> 
                    <RowStyle BackColor="White" ForeColor="#003399" /> 
                    <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> 
                    <SortedAscendingCellStyle BackColor="#EDF6F6" /> 
                    <SortedAscendingHeaderStyle BackColor="#0D4AC4" /> 
                    <SortedDescendingCellStyle BackColor="#D6DFDF" /> 
                    <SortedDescendingHeaderStyle BackColor="#002876" /> 
                </asp:GridView> 
            </td> 
            <td> 
                 </td> 
            <td> 
                 </td> 
        </tr> 
        <tr> 
            <td> 
                 </td> 
            <td> 
                 </td> 
            <td> 
                 </td> 
        </tr> 
    </table> 
    <div> 
     
    </div> 
    </form> 
</body> 
</html> 



using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
 
public partial class Default2 : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!Page.IsPostBack) 
        { 
            refreshdata(); 
        } 
    } 
 
    public void refreshdata() 
    { 
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); 
        SqlCommand cmd = new SqlCommand("select * from tbl_data", con); 
        SqlDataAdapter sda = new SqlDataAdapter(cmd); 
        DataSet ds = new DataSet(); 
        sda.Fill(ds); 
        GridView1.DataSource = ds; 
        GridView1.DataBind(); 
     
     
    }   
 
}  

Tuesday, February 19, 2019

setdataatt

ar:function (){

var obj={"lbl1":this.view.textbx.text}

var legthdata = this.view.seg.data;
syntax
------------------------------------------------------
dataObj1 = {globaDdataId1:"label1", globaDataId2:"label2", globalDataId3:"label3"};

//addAt method call ,adding the above row at 15th index position.
segment.addDataAt(dataObj1,15);
------------------------------------

this.view.segment.addDataAt(array,(legthdata.length));
}



alter way

var array =[];
ar:function (){
var cname = this.view.textbx.text;
var obj={"lbl1":this.view.textbx.text}
array.push(obj);
this.view.segment.removeAll();
this.view.seg.setdataAll(array);
}

Friday, February 8, 2019

how to do Push Notification

1.firebase console -> addproject -> create project ->android
2.kony visualizer ->projectSeting ->Native->Android-> packageName->
  pushnotification->select GCM.
3.take sha1key from google:
   {keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android}
  take debug keystore from system i.e sdk Path.
   {C:\Users\Truetech\.android\debug.keystore}
4.Cmd la paste.(SHA key gets generated.)
5.Open kpns-> add new app ->Application Name->Application ID we need to generate(note the app id for further use)->App Category :other-> next-> {android} ->GCM/FCM key ## firebase->settings->cloudmesseges
      -> Legacy server key-> save##

6.app should be published. ## main point##

7. In kpns Go to api help-> select {JSON} ->now we have baseURL and sample request .go to mfconsole do integration with the help of baseURL and sample request.
8. open  kony document kony.push.namespace-> senderid code-> Other coding.

/**
* Name : registerMyAndroidPush
* Author : Kony
* Purpose : This function registers the senderID on the Google cloud.
**/

function registerMyAndroidPush()
{
    var config = {senderid:"4815552342"};
    kony.push.register(config);
}




/**
* Name : regSuccessAndroidCallback
* Author : Kony
* Purpose : This function is the callback for the successful registration of the device to the GCM server. It returns the callerID.
*
**/

function regSuccessAndroidCallback(regId)
{
    kony.print("** JavaScript regSuccessCallback() called **");
    kony.print(regId);
}


/**
* Name : regFailureAndroidCallback
* Author : Kony
* Purpose : This function is the callback for the registration failure to the GCM server.
**/

function regFailureAndroidCallback(errormsg)
{
    kony.print("* JavaScript regFailureCallback() called *");
    kony.print(errormsg.failurereason]);
    kony.print(errormsg.description);
}

function onlinePushNotificationAndroidCallback(msg)
{
    kony.print("* JavaScript onlinePushNotificationCallback() called *");
    kony.print(msg);
    kony.print(msg.message);
}

/**
* Name : offlinePushNotificationAndroidCallback
* Author : Kony
* Purpose : This function is the callback for the received push msg event while offline
**/

function offlinePushNotificationAndroidCallback(msg)
{
    kony.print("* JavaScript offlinePushNotificationCallback() called *");
    kony.print(msg);
}

/**
* Name : unregSuccessAndroidCallback
* Author : Kony
* Purpose : This is the callback for the successful unregistration from the GCM server.
**/

function unregSuccessAndroidCallback()
{
    kony.print("* JavaScript unregSuccessCallback() called *");
}

/**
* Name : unregFailureAndroidCallback
* Author : Kony
* Purpose : This is the callback for the unsuccessful deregistration from the GCM server.
**/

function unregFailureAndroidCallback(errormsg)
{
    kony.print("* JavaScript unregFailureCallback() called *");
    kony.print(errormsg.errorcode);
    kony.print(errormsg.errormessage);
}


/**
* Name : callbackAndroidSetCallbacks
* Author : Kony
* Purpose : This function sets the callback for registration,deregistration and pushnotification events.
**/

function callbackAndroidSetCallbacks()
{
    kony.push.setCallbacks({
        onsuccessfulregistration: regSuccessAndroidCallback,
        onfailureregistration: regFailureAndroidCallback,
        onlinenotification: onlinePushNotificationAndroidCallback,
        offlinenotification: offlinePushNotificationAndroidCallback,
        onsuccessfulderegistration: unregSuccessAndroidCallback,
        onfailurederegistration: unregFailureAndroidCallback});
}




9. Do Changes in coding { Add alert to   #function onlinePushNotificationAndroidCallback#, #function regSuccessAndroidCallback#} 

10.create other new function and place this two functions 1.function callbackAndroidSetCallbacks 2.function registerMyAndroidPush
!!!!!!!!!!!!!!!!!!!!!!!!!!      call this function in postappinit        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

11.Change sender id in coding.   GET from ->firebase.


****

function pushNotificationNew(){
 
 callbackAndroidSetCallbacks();
  registerMyAndroidPush();
}

 *******
12.getting device id goto  mfconsole ->create new integration and paste base url FROM kpns API help URL and save and create operation (suffix no need).set method post

copy sample request from kpns

{
  "subscriptionService" : {
    "subscribe" : {
      "sid" : "xxxx",
      "appId" : "xxxx",
      "ufid" : "xxxx",
      "authToken" : "xxxx",
      "osType" : "xxxx",
      "deviceId" : "xxxx",
      "deviceName" : "xxxx"
    }
  }
}

pass input from (sample sid) from above json.here
___________________________________________________________
      "sid" : "123456"(anynumber),
      "appId" : ""(autogenerate kpns),
      "ufid" : "",
      "authToken" : "",
      "osType" : "android",
      "deviceId" : ""(can got it by ddms),
      "deviceName" : ""(your device name)
___________________________________________________________
 check by online gcm testing

give device token (device id)
app key(legecy sever key)
message("ha ha")


















*************************************************************************************************************************************
keytool -list -v -keystore C:\Users\somefolder\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
app id:132332-1992211795
*************************************************************************************************************************











Tuesday, January 29, 2019

Widget Mapping

var gridArr2 = [];
var gridArr3 = [];
function PusSD(){
  try{
    var SName = frmwMdata.txtName.text;
    var Smark = frmwMdata.txtMark.text;
    var SPercent = frmwMdata.txtpercenntage.text;
    var SPass = frmwMdata.rdoResult.selectedKeyValue[1];
    if(frmwMdata.txtName.text ==="" || frmwMdata.txtName.text === null || frmwMdata.txtName.text ===" " ||frmwMdata.txtName.text === undefined){
    frmwMdata.txtName.setFocus(true);
    return false;
  }
    if(frmwMdata.txtMark.text ==="" || frmwMdata.txtMark.text === null || frmwMdata.txtMark.text ===" " ||frmwMdata.txtMark.text === undefined){
    frmwMdata.txtMark.setFocus(true);
    return false;
  }
      if(frmwMdata.txtpercenntage.text ==="" || frmwMdata.txtpercenntage.text === null || frmwMdata.txtpercenntage.text ===" " ||frmwMdata.txtpercenntage.text === undefined){
    frmwMdata.txtpercenntage.setFocus(true);
    return false;
  }
      if(SPass ==="" || SPass === null || SPass ===" " ||SPass === undefined){
    frmwMdata.rdoResult.setFocus(true);
    return false;
  }
    var OBJ = {"SName":frmwMdata.txtName.text,"Smark":frmwMdata.txtMark.text,
               "SPercent": frmwMdata.txtpercenntage.text,"SPass":frmwMdata.rdoResult.selectedKeyValue[1]};
 
    if(OBJ.SPass === "PASS"){
       frmWM.segwm.widgetDataMap = {"lblName":"SName","lblMark":"Smark","lblPercentage":"SPercent"};
      frmWM.segwm.rowTemplate = flxmainPS;
    //  frmWM.segwm.setData(gridArr2);
    }else if(OBJ.SPass === "FAIL"){
      frmWM.segwm.widgetDataMap = {"lblNameF":"SName","lblMarkf":"Smark","lblPercentagef":"SPercent"};
      frmWM.segwm.rowTemplate = flxmainFS;
      //frmWM.segwm.data ="";
    }
    gridArr2.push(OBJ);
    //gridArr3.push(gridArr2);
    frmWM.segwm.setData(gridArr2);
    //gridArr2=[];
    frmwMdata.destroy();
    frmWM.show();

  }catch(err){
    alert("Error "+ err);
  }
}

Sunday, January 27, 2019

How to do touch ID



function isAuthUsingTouchSupported()
{
  var status = kony.localAuthentication.getStatusForAuthenticationMode(constants.LOCAL_AUTHENTICATION_MODE_TOUCH_ID);
  alert("satatofisAuthUsingTouchSupported"+status);
  if(status == 5000)
   {
     kony.ui.Alert({message: "AUTHENTICATION BY TOUCHID SUPPORTED", alertType: constants.ALERT_TYPE_INFO, yesLabel:"Close"}, {});
   }
  else
   {
     var msg = "TOUCHID AUTHENTICATION RETURNED THE STATUS ::"+status;
     kony.ui.Alert({message: status, alertType: constants.ALERT_TYPE_INFO, yesLabel:"Close"}, {});
   }
}

function statusCB(status,message)
{
  if(status == 5000)
   {
     kony.ui.Alert({message: "AUTHENTICATION SUCCESSFULL", alertType: constants.ALERT_TYPE_INFO, yesLabel:"Close"}, {});
   }
  else
   {
     var messg = status+message;
     kony.ui.Alert({message: messg, alertType: constants.ALERT_TYPE_INFO, yesLabel:"Close"}, {});
   }
}
function authUsingTouchID()
{
  var config = {"promptMessage" : "PLEASE AUTHENTICATE USING YOUR TOUCH ID","fallbackTitle" :  "Please Enter your Password"};
  kony.localAuthentication.authenticate(constants.LOCAL_AUTHENTICATION_MODE_TOUCH_ID,statusCB,config);


}

In this only support IOS device:

function getBiometryTypeOfDevice(){
  var promptMessage = "Sign in with ";
  alert("typeofkonybio"+ kony.localAuthentication.getBiometryType());
  var Typof = kony.localAuthentication.getBiometryType();
  switch(Typof){
    case constants.BIOMETRY_TYPE_NONE:
      // Handle the case if the device doesn't support any biometryType
      break;        
    case constants.BIOMETRY_TYPE_TOUCHID:
      promptMessage += "TouchID";
      break;
    case constants.BIOMETRY_TYPE_FACEID:
      promptMessage += "FaceID";
      break;
    case constants.BIOMETRY_TYPE_UNDEFINED:
    
      // Handle the case if the device is not a iOS11 device (or) above
      break;
      
  }
   
}

Sunday, December 30, 2018

Tuesday, December 18, 2018

NFI and FFI Difference

NFI(Native Function Integration) programming code for application has been created in native(android application).we can access through the native package to  Kony. (like predefined Program).

AAR if a full package with UI


all widget created in Kony as like JSON obj.


FFI (Foreign Function Integration) jar contains functionality.we have to insert it in kony third-party  integration.
https://basecamp.kony.com/s/article-detail/a046A00000CbHMIQA3/support-for-nfiffi-in-kony-visualizer