Exemple #1
0
        public PetWhizzResponse EnrollUser(EnrollUserRequest EnrollUserRequest)
        {
            PetWhizzResponse _oResponse;

            try
            {
                EnrollUserResponse EnrollUserResponse = userServices.EnrollUser(EnrollUserRequest);
                _oResponse = Utils.CreateSuccessResponse(EnrollUserResponse);
            }
            catch (Exception ex)
            {
                _oResponse = Utils.CreateErrorResponse(ex);
            }
            return(_oResponse);
        }
Exemple #2
0
        internal EnrollUserResponse EnrollUser(EnrollUserRequest EnrollUserRequest)
        {
            logger.Debug("Recived enroll user request");
            EnrollUserResponse EnrollUserResponse;

            try
            {
                ValidateUserRequest ValidateUserRequest = new ValidateUserRequest()
                {
                    email    = EnrollUserRequest.email,
                    username = EnrollUserRequest.username
                };
                ValidatUser(ValidateUserRequest);

                EnrollUserRequest.username = Decryptor.Decrypt(EnrollUserRequest.username).Split('|')[1];
                EnrollUserRequest.password = Decryptor.Decrypt(EnrollUserRequest.password).Split('|')[1];
                EnrollUserRequest.email    = Decryptor.Decrypt(EnrollUserRequest.email).Split('|')[1];
                EnrollUserRequest.deviceId = Decryptor.Decrypt(EnrollUserRequest.deviceId).Split('|')[1];

                String GeneratedToken = Guid.NewGuid().ToString();
                int    GeneratedCode  = new Random().Next(100000, 999999);

                logger.Debug("Decrypted enroll user request details userName - " + EnrollUserRequest.username +
                             " password - " + EnrollUserRequest.password + " email - " + EnrollUserRequest.email +
                             " deviceId - " + EnrollUserRequest.deviceId);

                //validating details
                if (!String.IsNullOrEmpty(EnrollUserRequest.username) &&
                    !String.IsNullOrEmpty(EnrollUserRequest.password) &&
                    !String.IsNullOrEmpty(EnrollUserRequest.email) &&
                    !String.IsNullOrEmpty(EnrollUserRequest.deviceId))
                {
                    //setting up user details
                    var user = new user()
                    {
                        createdDate     = DateTime.Now,
                        lastUpdatedDate = DateTime.Now,
                        userName        = EnrollUserRequest.username,
                        password        = EnrollUserRequest.password,
                        eMail           = EnrollUserRequest.email,
                        status          = "EMAILVERIFY"
                    };
                    using (var ctx = new PetWhizzEntities())
                    {
                        //saving user
                        ctx.users.Add(user);
                        ctx.SaveChanges();
                        //saving user device
                        var userDevice = new userDevice()
                        {
                            deviceId = EnrollUserRequest.deviceId,
                            // deviceName = EnrollUserRequest.deviceName,
                            userId = user.id,
                        };
                        ctx.userDevices.Add(userDevice);
                        ctx.SaveChanges();
                        //saving user token
                        var userToken = new userToken()
                        {
                            tokenType     = "AUTHTOKEN",
                            useCount      = 0,
                            generatedTime = DateTime.Now,
                            userDeviceId  = userDevice.id,
                            expiryTime    = DateTime.Now.AddSeconds(TokenExpiryTime),
                            token         = GeneratedToken,
                        };
                        ctx.userTokens.Add(userToken);
                        ctx.SaveChanges();
                        //user verification data
                        var userVerificationInfo = new userVerification()
                        {
                            code             = GeneratedCode.ToString(),
                            generatedTime    = DateTime.Now,
                            expiryTime       = DateTime.Now.AddSeconds(VerificationCodeExpiryTime),
                            isValid          = true,
                            userId           = user.id,
                            verificationType = "EMAILVERIFY",
                        };
                        ctx.userVerifications.Add(userVerificationInfo);
                        ctx.SaveChanges();
                    }
                    SendEmailVerification(user.eMail, user.userName, user.id, GeneratedCode.ToString());
                    EnrollUserResponse = new EnrollUserResponse()
                    {
                        token    = Encryptor.Encrypt(DateTime.Now.ToString("M/d/yyyy h:mm:ss tt") + "|" + GeneratedToken),
                        username = Encryptor.Encrypt(DateTime.Now.ToString("M/d/yyyy h:mm:ss tt") + "|" + user.userName),
                        email    = Encryptor.Encrypt(DateTime.Now.ToString("M/d/yyyy h:mm:ss tt") + "|" + user.eMail),
                        status   = Encryptor.Encrypt(DateTime.Now.ToString("M/d/yyyy h:mm:ss tt") + "|" + user.status),
                        userId   = Encryptor.Encrypt(DateTime.Now.ToString("M/d/yyyy h:mm:ss tt") + "|" + user.id)
                    };
                }
                else
                {
                    logger.Error("Some of the properties in EnrollUserRequest is null or empty");
                    throw new CustomException("All propreties should contains a value", (int)ErrorCode.VALIDATIONFAILED);
                }
            }
            catch (CustomException) { throw; }
            catch (Exception ex)
            {
                logger.Error(MethodBase.GetCurrentMethod().Name + ": exception: " + ex.Message + ", " + ex.InnerException);
                throw new CustomException("SystemError", ex, (int)ErrorCode.PROCEESINGERROR);
            }
            return(EnrollUserResponse);
        }