private void LoginCall(ProgressDialog dialog, Activity curActivity, string username, string password)
        {
            try
            {
                var client  = new RestClient(Common.UrlBase);
                var request = new RestRequest("Account/SignIn", Method.GET);
                request.AddHeader("Content-Type", "application/json");
                request.AddQueryParameter("username", username);
                request.AddQueryParameter("password", password);
                request.AddQueryParameter("userDeviceId", Android.Provider.Settings.Secure.GetString(Android.App.Application.Context.ContentResolver, Android.Provider.Settings.Secure.AndroidId));
                IRestResponse response    = client.Execute(request);
                var           content     = response.Content;
                var           responseObj = Newtonsoft.Json.JsonConvert.DeserializeObject <AccountResponse>(content);
                if (responseObj.Status == ResponseStatus.Successful && !string.IsNullOrEmpty(responseObj.AuthToken))
                {
                    string strGoodName = string.Empty;
                    try
                    {
                        objdb = new DBaseOperations();
                        var lst = objdb.selectTable();

                        if (lst == null || lst.Count <= default(int))
                        {
                            var usr = this.FetchUserDetails(responseObj.AuthToken);
                            if (usr != null)
                            {
                                strGoodName = string.Format("{0} {1}", usr.FirstName, usr.LastName);
                            }
                            else
                            {
                                strGoodName = this.GetUserFullName(responseObj.AuthToken);
                            }
                            objdb.createDatabase();
                            objdb.insertIntoTable(new UserLoginInfo()
                            {
                                EmailId = username, GoodName = strGoodName, Password = password, IsAdmin = (usr != null && usr.IsAdmin ? 1 : default(int)), AuthToken = responseObj.AuthToken
                            });
                        }
                        else if (lst != null && lst.Count > default(int))
                        {
                            /*objdb.removeTable(lst.FirstOrDefault());*/
                            var usr  = this.FetchUserDetails(responseObj.AuthToken);
                            var uobj = lst.FirstOrDefault();
                            if (!string.IsNullOrEmpty(uobj.GoodName))
                            {
                                if (usr != null)
                                {
                                    strGoodName = string.Format("{0} {1}", usr.FirstName, usr.LastName);
                                }
                                else
                                {
                                    strGoodName = this.GetUserFullName(responseObj.AuthToken);
                                }
                            }
                            else
                            {
                                strGoodName = uobj.GoodName;
                            }
                            objdb.updateTable(new UserLoginInfo()
                            {
                                Id = uobj.Id, EmailId = username, GoodName = strGoodName, Password = password, IsAdmin = (usr != null && usr.IsAdmin ? 1 : default(int)), AuthToken = responseObj.AuthToken, ProfilePicture = uobj.ProfilePicture
                            });
                        }
                    }
                    catch { }

                    Intent intent = new Intent(curActivity, typeof(MainContentActivity));
                    StartActivity(intent);
                    curActivity.Finish();
                }
                else
                {
                    if (string.IsNullOrEmpty(responseObj.Error))
                    {
                        throw new Exception(responseObj.Error);
                    }
                    else
                    {
                        throw new Exception("Invalid credential.");
                    }
                }
            }
            catch (Exception ex)
            {
                curActivity.RunOnUiThread(() =>
                {
                    Android.App.AlertDialog.Builder alertDiag = new Android.App.AlertDialog.Builder(curActivity);
                    alertDiag.SetTitle(Resource.String.DialogHeaderError);
                    alertDiag.SetMessage(ex.Message);
                    alertDiag.SetIcon(Resource.Drawable.alert);
                    alertDiag.SetPositiveButton(Resource.String.DialogButtonOk, (senderAlert, args) =>
                    {
                    });
                    Dialog diag = alertDiag.Create();
                    diag.Show();
                    diag.SetCanceledOnTouchOutside(false);
                });
            }
            finally
            {
                if (dialog != null && dialog.IsShowing)
                {
                    dialog.Hide();
                    dialog.Dismiss();
                }
            }
        }
        private void Register(Account obj, ProgressDialog dialog, Activity curActivity)
        {
            try
            {
                var client  = new RestClient(Common.UrlBase);
                var request = new RestRequest("Account/Register", Method.POST);
                //{ "FirstName" : "Anik", "LastName" : "Sen", "UserTypeId" : 1, "password" : "1234", "Address" : " ", "EmailId" : "*****@*****.**", "FarmId" : default(int), "UserDeviceId": "71e28a9140f8712b" }
                request.AddJsonBody(new { FirstName = obj.FirstName, LastName = obj.LastName, UserTypeId = obj.UserTypeId, password = obj.password, Address = obj.Address, EmailId = obj.EmailId, FarmId = obj.FarmId, UserDeviceId = obj.UserDeviceId });
                request.AddHeader("Content-Type", "application/json");
                //request.AddHeader("token", "UnIwWlFXN0lFYWt0TG91d0tSQnU4WDZwSFhrNmU3VnZVR1A1V3lxSHVaND06YW5pay5zZW5Ab3V0bG9vay5jb206NjM2Njk1NDMyMDUwMzY5NDgy");
                IRestResponse response    = client.Execute(request);
                var           content     = response.Content;
                var           responseObj = Newtonsoft.Json.JsonConvert.DeserializeObject <AccountResponse>(content);
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (responseObj.Status == ResponseStatus.Successful && !string.IsNullOrEmpty(responseObj.AuthToken))
                    {
                        objdb = new DBaseOperations();
                        var lst = objdb.selectTable();
                        if (lst != null && lst.Count > default(int))
                        {
                            objdb.removeTable(lst.FirstOrDefault());
                        }

                        /*if (!objdb.isDBExists())
                         * {
                         *  objdb.createDatabase();
                         * }*/
                        objdb.createDatabase();
                        objdb.insertIntoTable(new UserLoginInfo()
                        {
                            EmailId        = input_useremail.Text.Trim(),
                            GoodName       = string.Format("{0} {1}", obj.FirstName, obj.LastName),
                            Password       = obj.password,
                            IsAdmin        = obj.IsAdmin ? 1 : default(int),
                            AuthToken      = responseObj.AuthToken,
                            ProfilePicture = _profilepicbase64
                        });

                        Intent intent = new Intent(curActivity, typeof(MainContentActivity));
                        StartActivity(intent);
                        curActivity.Finish();
                    }
                    else
                    {
                        throw new Exception(responseObj.Error);
                    }
                }
                else
                {
                    throw new Exception("Unable to register at this moment. Please try again later.");
                }
            }
            catch (Exception ex)
            {
                //throw ex;

                curActivity.RunOnUiThread(() =>
                {
                    Android.App.AlertDialog.Builder alertDiag = new Android.App.AlertDialog.Builder(curActivity);
                    alertDiag.SetTitle(Resource.String.DialogHeaderError);
                    alertDiag.SetMessage(ex.Message);
                    alertDiag.SetIcon(Resource.Drawable.alert);
                    alertDiag.SetPositiveButton(Resource.String.DialogButtonOk, (senderAlert, args) =>
                    {
                    });
                    Dialog diag = alertDiag.Create();
                    diag.Show();
                    diag.SetCanceledOnTouchOutside(false);
                });
            }
            finally
            {
                if (dialog != null && dialog.IsShowing)
                {
                    dialog.Hide();
                    dialog.Dismiss();
                }
            }
        }