예제 #1
0
        public bool SaveOTP(OTPDTO otp)
        {
            OTPMaster otpmaster = new OTPMaster();

            ObjectMapper.Map(otp, otpmaster);
            return(SecurityRepository.SaveOTP(otpmaster));
        }
예제 #2
0
        /// <summary>
        /// Change password of User
        /// </summary>
        /// <param name="GUID"> uniqe string </param>
        /// <param name="Password">password entered by user</param>
        /// <returns></returns>
        public bool ChangePassword(string GUID, string Password)
        {
            int       OTPExirationHrs = Convert.ToInt32(AppUtil.GetAppSettings(AspectEnums.ConfigKeys.OTPExirationHrs));
            DateTime  StartTime       = DateTime.Now.Subtract(new TimeSpan(OTPExirationHrs, 0, 0));
            DateTime  EndTime         = DateTime.Now;
            OTPMaster objOTP          = AccuitAdminDbContext.OTPMasters.FirstOrDefault(k => k.CreatedDate >= StartTime && k.CreatedDate <= EndTime && k.GUID == GUID);

            if (objOTP != null)
            {
                UserMaster user = AccuitAdminDbContext.UserMasters.FirstOrDefault(k => k.UserID == objOTP.UserID && !k.isDeleted);
                user.Password      = EncryptionEngine.EncryptString(Password);
                user.AccountStatus = (int)AspectEnums.UserLoginStatus.Active;
                user.ModifiedDate  = DateTime.Now;
                user.ModifiedBy    = objOTP.UserID;
                AccuitAdminDbContext.Entry <UserMaster>(user).State = System.Data.Entity.EntityState.Modified;
                //Delete all previous OTPs
                foreach (var o in AccuitAdminDbContext.OTPMasters.Where(k => k.UserID == user.UserID))
                {
                    AccuitAdminDbContext.OTPMasters.Remove(o);
                }
                return(AccuitAdminDbContext.SaveChanges() > 0);
            }
            else
            {
                return(false);
            }
        }
예제 #3
0
        /// <summary>
        /// Authenticate OTP (One Time Password) entered by user
        /// </summary>
        /// <param name="userid">Userid</param>
        /// <param name="otp">One Time Password</param>
        /// <returns>reurns true if user have enterered latest OTP</returns>
        public bool AuthenticateOTP(long userid, string otp, out string GuidString, out int MaxAttempts)
        {
            OTPMaster ObjOTP = DbContext.OTPMasters.OrderByDescending(k => k.CreatedDate).FirstOrDefault(k => k.UserID == userid);

            GuidString  = "";
            MaxAttempts = 0;
            if (ObjOTP != null)
            {
                MaxAttempts = ObjOTP.Attempts.Value;
                if (ObjOTP.OTP == otp)
                {
                    GuidString = ObjOTP.GUID;
                    return(true);
                }
                else
                {
                    ObjOTP.Attempts = ++MaxAttempts;
                    DbContext.Entry <OTPMaster>(ObjOTP).State = System.Data.Entity.EntityState.Modified;
                    DbContext.SaveChanges(); // TBD
                }
            }

            //}

            return(false);
        }
예제 #4
0
        public IHttpActionResult PostOTPMaster(OTPMaster oTPMaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.OTPMasters.Add(oTPMaster);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (OTPMasterExists(oTPMaster.requestId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = oTPMaster.requestId }, oTPMaster));
        }
예제 #5
0
        public IHttpActionResult PutOTPMaster(int id, OTPMaster oTPMaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != oTPMaster.requestId)
            {
                return(BadRequest());
            }

            db.Entry(oTPMaster).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OTPMasterExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #6
0
        public IHttpActionResult GetRequest(decimal aadharNo, string eUid, string type)
        {
            //Getting id and birth day from aadhar number
            var data = from asd in db.AadharMasters where asd.aadharNo == aadharNo select new { asd.id, asd.dob };
            int id   = 0;

            System.DateTime dob = System.DateTime.Now;
            foreach (var item in data)
            {
                id  = item.id;
                dob = Convert.ToDateTime(item.dob);
            }

            //It can be improved.
            DateTime today = DateTime.Today;
            int      age   = today.Year - dob.Year;

            if (dob > today.AddYears(-age))
            {
                age--;
            }

            IntigrationMaster im = new IntigrationMaster()
            {
                id = id, aadharNo = aadharNo, externalUniqueId = eUid, clientType = type, requestDateTime = DateTime.Now
            };

            db.IntigrationMasters.Add(im);
            db.SaveChanges();
            int newRequestID = im.requestId;

            Random rnd  = new Random();
            int    motp = rnd.Next(1000, 9999);
            int    eotp = rnd.Next(100000, 999999);

            OTPMaster om = new OTPMaster()
            {
                requestId = newRequestID, mOTP = motp, eOTP = eotp
            };

            db.OTPMasters.Add(om);
            db.SaveChanges();

            var     cinfo = from asd in db.ContectMasters where asd.id == id && asd.isPrimary == true select asd;
            decimal pno   = 0;
            string  email = null;

            foreach (var item in cinfo)
            {
                pno   = Convert.ToDecimal(item.phoneNumber);
                email = item.emailId;
            }
            var result = new { requestId = newRequestID, Age = age, phoneNo = pno, emailId = email };

            return(Ok(result));
        }
예제 #7
0
        public UserMaster GetUserByGUID(string GUID)
        {
            OTPMaster objOTP = HIQAdminContext.OTPMasters.FirstOrDefault(x => x.GUID == GUID);

            if (objOTP != null)
            {
                return(HIQAdminContext.UserMasters.FirstOrDefault(k => k.UserID == objOTP.UserID));
            }
            return(null);
        }
예제 #8
0
        public IHttpActionResult GetOTPMaster(int id)
        {
            OTPMaster oTPMaster = db.OTPMasters.Find(id);

            if (oTPMaster == null)
            {
                return(NotFound());
            }

            return(Ok(oTPMaster));
        }
예제 #9
0
        /// <summary>
        /// save OTP (One Time Password) to database
        /// </summary>
        /// <param name="otp"> Object of OTP</param>
        /// <returns>returns true when data is saved</returns>
        public bool SaveOTP(OTPMaster otp)
        {
            bool IsSuccess = false;

            // In case from Generating OTP from Automatic redirect to Change Password because of not complex password multiple OTPs can be generated
            // Use this validation to restrict user to generate multiple OTPs
            //if (ValidateEmployee(otp.UserID, AspectEnums.EmployeeValidationType.LastAttemptDuration))
            //{
            DbContext.OTPMasters.Add(otp);
            IsSuccess = DbContext.SaveChanges() > 0;
            //}
            return(IsSuccess);
        }
예제 #10
0
        /// <summary>
        /// save OTP (One Time Password) to database
        /// </summary>
        /// <param name="otp"> Object of OTP</param>
        /// <returns>returns true when data is saved</returns>
        public bool SaveOTP(OTPMaster otp)
        {
            bool IsSuccess = false;

            // In case from Generating OTP from Automatic redirect to Change Password because of not complex password multiple OTPs can be generated
            // Use this validation to restrict user to generate multiple OTPs
            if (ValidateUser(otp.UserID, AspectEnums.UserValidationType.LastAttemptDuration))
            {
                HIQAdminContext.Entry(otp).State = EntityState.Added;
                IsSuccess = HIQAdminContext.SaveChanges() > 0;
            }
            return(IsSuccess);
        }
예제 #11
0
        /// <summary>
        /// Get UserID By Employee Code given in parameter
        /// </summary>
        /// <param name="EmplCode"></param>
        /// <returns></returns>
        //public long? GetUserIDByEmployeeCode(string EmplCode)
        //{
        //    UserMaster user = null;
        //    user = HIQAdminContext.UserMasters.FirstOrDefault(k => k.EmplCode == EmplCode && !k.IsDeleted);
        //    if (user != null)
        //        return user.UserID;
        //    else
        //        return null;
        //}

        /// <summary>
        /// Validate GUID in the link of forget password email
        /// </summary>
        /// <param name="GUID"> uniqe string </param>
        /// <returns>true if GUID in the URL is correct</returns>
        public bool ValidateGUID(string GUID)
        {
            int OTPExirationHrs = Convert.ToInt32(AppUtil.GetAppSettings(AspectEnums.ConfigKeys.OTPExirationHrs));

            DateTime  StartTime = DateTime.Now.Subtract(new TimeSpan(OTPExirationHrs, 0, 0));
            DateTime  EndTime   = DateTime.Now.AddMinutes(1);
            OTPMaster objOTP    = HIQAdminContext.OTPMasters.FirstOrDefault(k => k.CreatedDate >= StartTime && k.CreatedDate <= EndTime && k.GUID == GUID);

            if (objOTP != null)
            {
                return(true);
            }
            return(false);
        }
예제 #12
0
        public IHttpActionResult DeleteOTPMaster(int id)
        {
            OTPMaster oTPMaster = db.OTPMasters.Find(id);

            if (oTPMaster == null)
            {
                return(NotFound());
            }

            db.OTPMasters.Remove(oTPMaster);
            db.SaveChanges();

            return(Ok(oTPMaster));
        }
예제 #13
0
        /// <summary>
        /// Change password of User
        /// </summary>
        /// <param name="GUID"> uniqe string </param>
        /// <param name="Password">password entered by user</param>
        /// <returns></returns>
        public bool ChangePassword(string GUID, string Password)
        {
            int       OTPExirationHrs = Convert.ToInt32(AppUtil.GetAppSettings(AspectEnums.ConfigKeys.OTPExirationHrs));
            DateTime  StartTime       = DateTime.Now.Subtract(new TimeSpan(OTPExirationHrs, 0, 0));
            DateTime  EndTime         = DateTime.Now;
            OTPMaster objOTP          = HIQAdminContext.OTPMasters.FirstOrDefault(k => k.CreatedDate >= StartTime && k.CreatedDate <= EndTime && k.GUID == GUID);

            if (objOTP != null)
            {
                UserMaster user = HIQAdminContext.UserMasters.FirstOrDefault(k => k.UserID == objOTP.UserID && !k.IsDeleted);
                user.Password = EncryptionEngine.EncryptString(Password);
                HIQAdminContext.Entry(user).State = EntityState.Modified;
                //Delete all previous OTPs
                foreach (var o in HIQAdminContext.OTPMasters.Where(k => k.UserID == user.UserID))
                {
                    HIQAdminContext.OTPMasters.Remove(o);
                }

                return(HIQAdminContext.SaveChanges() > 0);
            }

            return(false);
        }
        public int saveOTP(UserAccounts ua)
        {
            int result = 0;

            using (db = new iGratifyEntities())
            {
                try
                {
                    OTPMaster otp = new OTPMaster();
                    otp.UserId = ua.UserID;
                    otp.Email  = ua.Email;
                    otp.Mobile = ua.MobileNo;
                    otp.OTP    = ua.OTP;

                    db.OTPMasters.Add(otp);
                    db.SaveChanges();
                    return(result = 1);
                }
                catch (Exception e)
                {
                    return(result = -1);
                }
            }
        }