/// <summary>
 ///
 /// </summary>
 /// <param name="userDetails"></param>
 public tblAYDSUserInformation RegisterUser(tblAYDSUserInformation userDetails)
 {
     try
     {
         if (ValidateEmailMobile(userDetails.MobileNumber, userDetails.EmailId))
         {
             using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
             {
                 userDetails.IsVerified  = false;
                 userDetails.IsActivated = false;
                 userDetails.CreatedOn   = DateTime.UtcNow;
                 userDetails.LastLogin   = DateTime.UtcNow;
                 entity.tblAYDSUserInformations.Add(userDetails);
                 entity.SaveChanges();
                 //Generte & SEND OTP
                 GenerateOTP(userDetails.MobileNumber, userDetails.Id);
             }
         }
         else
         {
         }
     }
     catch (Exception ex)
     {
     }
     return(userDetails);
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="userName">EmailId / Mobile No</param>
        /// <param name="password">Pasword can be email or mobile no</param>
        public tblAYDSUserInformation ValidateUser(string userName, string password)
        {
            tblAYDSUserInformation userDetails = null;

            try
            {
                using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
                {
                    if (userName.Contains('@'))
                    {
                        userDetails = entity.tblAYDSUserInformations.Where(a => a.Password == password && a.EmailId == userName).FirstOrDefault();
                    }
                    else
                    {
                        userDetails = entity.tblAYDSUserInformations.Where(a => a.Password == password && a.MobileNumber == Convert.ToInt32(userName)).FirstOrDefault();
                    }
                    //On login update last login time
                    userDetails.LastLogin = DateTime.UtcNow;
                    entity.SaveChanges();
                }
            }
            catch (Exception ex)
            {
            }
            return(userDetails);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="userDetails"></param>
        public tblAYDSUserInformation RegisterUser(tblAYDSUserInformation userDetails)
        {
            try
            {
                if (ValidateEmailMobile(userDetails.MobileNumber, userDetails.EmailId))
                {
                    using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
                    {
                        userDetails.IsVerified = false;
                        userDetails.IsActivated = false;
                        userDetails.CreatedOn = DateTime.UtcNow;
                        userDetails.LastLogin = DateTime.UtcNow;
                        entity.tblAYDSUserInformations.Add(userDetails);
                        entity.SaveChanges();
                        //Generte & SEND OTP
                        GenerateOTP(userDetails.MobileNumber, userDetails.Id);
                    }
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
            }
            return userDetails;
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="userDetails"></param>
 public tblAYDSUserInformation UpdateUserDetails(tblAYDSUserInformation userDetails)
 {
     try
     {
         using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
         {
             entity.tblAYDSUserInformations.Attach(userDetails);
             entity.Entry(userDetails).State = EntityState.Modified;
             entity.SaveChanges();
         }
     }
     catch (Exception ex)
     {
     }
     return(userDetails);
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public tblAYDSUserInformation GetUserProfile(int userId)
        {
            tblAYDSUserInformation userDetails = null;

            try
            {
                using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
                {
                    userDetails = entity.tblAYDSUserInformations.Where(a => a.Id == userId).FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
            }
            return(userDetails);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public bool ValidateEmailMobile(int mobileNumber, string emailId)
        {
            tblAYDSUserInformation userDetails = null;
            bool result = true;

            try
            {
                using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
                {
                    userDetails = entity.tblAYDSUserInformations.Where(a => a.EmailId == emailId || a.MobileNumber == mobileNumber).FirstOrDefault();

                    if (userDetails.Id > 0)
                    {
                        result = false;
                    }
                }
            }
            catch (Exception ex)
            {
                result = false;
            }
            return(result);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="userDetails"></param>
 public tblAYDSUserInformation UpdateUserDetails(tblAYDSUserInformation userDetails)
 {
     try
     {
         using (AtYourDoorStepEntities entity = new AtYourDoorStepEntities())
         {
             entity.tblAYDSUserInformations.Attach(userDetails);
             entity.Entry(userDetails).State = EntityState.Modified;
             entity.SaveChanges();
         }
     }
     catch (Exception ex)
     {
     }
     return userDetails;
 }