コード例 #1
0
        public HttpResponseMessage AddExerciseSchedule(AddExerciseRequestModel objAddExerciseRequestModel)
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  userId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                int value = _objIExerciseRepository.AddExerciseSchedule(objAddExerciseRequestModel);
                if (value > 0)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Exercise added successfully!";
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    result.Message    = "Parameters are not correct";
                }
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);

            return(_response);
        }
コード例 #2
0
        public HttpResponseMessage ExerciseDetailsByWorkOutId(Int64 WorkOutId)
        {
            EditExerciseResponseModel result = new EditExerciseResponseModel();
            FResponse res = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  userId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                result = _objIExerciseRepository.ExerciseDetailsByWorkOutId(WorkOutId, userId);

                //result.Response.editExercise.weightList = _objIExerciseRepository.WeightExerciseList(result.Response.editExercise.ExerciseSetId).ToList(); ;
                if (result.Response != null)
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Response.Message    = "Success!!";
                }
                else
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Response.Message    = "No Records";
                }
            }
            catch (Exception ex)
            {
                res.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response      = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #3
0
        public HttpResponseMessage UpdateScheduleWorkout(UpdateScheduleWorkoutRequestModel objUpdateScheduleWorkoutRequestModel, Int64 ScheduleId)
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                int updateModel = _objIScheduleRepository.UpdateScheduleWorkout(objUpdateScheduleWorkoutRequestModel, ScheduleId, UserId);
                if (updateModel > 0)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Success!!";
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    result.Message    = "Parameters are not correct";
                }
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #4
0
        public HttpResponseMessage ListOfWorkoutsForMobile(ListOfWorkoutRequestModel objListOfWorkoutRequestModel, string Search)
        {
            WorkoutListModelResponse result = new WorkoutListModelResponse();
            FResponse res = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  userId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                result.Response.workoutlist = _objIWorkoutRepository.WorkoutListForMobile(objListOfWorkoutRequestModel, Search).ToList();
                if (result.Response.workoutlist.Count > 0)
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Response.Message    = "Success!!";
                }
                else
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Response.Message    = "No Records";
                }
            }
            catch (Exception ex)
            {
                res.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response      = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #5
0
        public HttpResponseMessage Logout()
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select userId from Token where TokenCode={0}", token).FirstOrDefault();

                //result.Response = _objIUserSettings.LogoutUser();
                int LogoutUser = _objIUserSettings.LogoutUser(UserId);

                if (result != null)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Logout successfully....";
                    _response         = Request.CreateResponse(HttpStatusCode.OK, result);
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Message    = "Some Error Occurred...";
                    _response         = Request.CreateResponse(HttpStatusCode.OK, result);
                }
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.InternalServerError);
                result.Message    = ex.ToString();
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, result);
            }
            return(_response);
        }
コード例 #6
0
        public HttpResponseMessage StatusUpdateCompleted(Int64 WorkoutId)
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                int StatusCompleted  = _objFriendFitDBEntity.Database.ExecuteSqlCommand("update Workout set StatusId=1 where Id={0} and UserId={1}", WorkoutId, UserId);
                int FinishTimeUpdate = _objFriendFitDBEntity.Database.ExecuteSqlCommand("Update Workout set FinishTime=@FinishTime where Id=@Id and UserId=@UserId",
                                                                                        new SqlParameter("FinishTime", System.DateTime.Now),
                                                                                        new SqlParameter("Id", WorkoutId),
                                                                                        new SqlParameter("UserId", UserId));
                if (StatusCompleted > 0)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Completed";
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    result.Message    = "This workout id is not in database";
                }
            }
            catch (Exception ex)
            {
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #7
0
        public HttpResponseMessage UserUpdateImperialMatrics(ImperialUpdateModelRequest objImperialUpdateModelRequest)
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                var model = _objIUserSettings.UpdateUserimperial(objImperialUpdateModelRequest, UserId);
                if (model > 0)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Your profile updated successfully!!";
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Message    = "Data is invalid!!";
                }
            }
            catch (Exception ex)
            {
                _response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }


            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #8
0
        public HttpResponseMessage StatusInProgress(Int64 WorkoutId)
        {
            FResponse result = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                int StatusCompleted = _objFriendFitDBEntity.Database.ExecuteSqlCommand("update Workout set StatusId=3, Actual_StartTime={2} where Id={0} and UserId={1}", WorkoutId, UserId, DateTime.Now);
                if (StatusCompleted > 0)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "In Progress";
                    result.WorkoutId  = WorkoutId;
                }
                else
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    result.Message    = "This workout id is not in database";
                }
            }
            catch (Exception ex)
            {
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #9
0
        public HttpResponseMessage UserEditProfile(EditProfileRequestModel objEditProfileRequestModel)
        {
            FResponse res = new FResponse();
            UserDetailsModelResponse result = new UserDetailsModelResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                Int64  userId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                result.Response.details = _objIUserSettings.EditUser(objEditProfileRequestModel);
                if (result.Response.details != null)
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Response.Message    = "Success!!";
                }
                else
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Response.Message    = "UserId is not valid!!";
                }
            }
            catch (Exception ex)
            {
                _response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #10
0
        public HttpResponseMessage ListOfSchedule(Int64 UserId)
        {
            ScheduleListResponseModel result = new ScheduleListResponseModel();
            FResponse res = new FResponse();

            try
            {
                var    headers = Request.Headers;
                string token   = headers.Authorization.Parameter.ToString();
                UserId = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();


                result.Response.scheduleLists = _objIScheduleRepository.ScheduleList(UserId);
                if (result.Response.scheduleLists.Count > 0)
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Response.Message    = "Success!!";
                }
                else
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                    result.Response.Message    = "No Records";
                }
            }
            catch (Exception ex)
            {
                res.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response      = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #11
0
        public async Task <HttpResponseMessage> ResendMailForForget(string Email)
        {
            FResponse result = new FResponse();

            try
            {
                Int64  UserId    = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select Id from UserProfile where Email={0}", Email).FirstOrDefault();
                string UserToken = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();
                if (Email != null)
                {
                    var SendingMessage = new MailMessage();
                    SendingMessage.To.Add(new MailAddress(Email));                   // replace with valid value
                    SendingMessage.From       = new MailAddress("*****@*****.**"); // replace with valid value
                    SendingMessage.Subject    = "Verify your email (noti.fit)";
                    SendingMessage.Body       = "Hi,<br/>You've requested a reset of your noti.fit password. If you didn't make the request, please ignore this email and your password won't be reset.<br/><br/> You can reset your password by visiting <br/> <br/><a href='" + ChangePasswordUrl + UserToken + "'>" + ChangePasswordUrl + UserToken + "</a> <br/><br/>This email will be valid for the next 12 hours.,<br/><br/><br/><br/>Kind regards<br/>The noti.fit team";
                    SendingMessage.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "******",  // replace with valid value
                            Password = "******" // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host        = "smtp.gmail.com";
                        smtp.Port        = 587;
                        smtp.EnableSsl   = true;
                        await smtp.SendMailAsync(SendingMessage);
                    }
                    //track sent Email time for expiry time :

                    EmailTimeSaveModel objreq = new EmailTimeSaveModel();
                    objreq.UserId       = UserId;
                    objreq.ResetMail    = true;
                    objreq.VerifyMail   = false;
                    objreq.MailSentTime = DateTime.Now.TimeOfDay;
                    EmailTrackerWrapper wrapper = new EmailTrackerWrapper();
                    wrapper.EmailTimeSave(objreq);
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Please check your Email for further instructions";
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }

            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #12
0
        public async Task <HttpResponseMessage> ResendRegistrationMaiil(string Email)
        {
            FResponse result = new FResponse();

            try
            {
                Int64  UserId    = _objFriendFitDBEntity.Database.SqlQuery <Int64>("Select Id from UserProfile where Email={0}", Email).FirstOrDefault();
                string UserToken = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();
                if (Email != null)
                {
                    var SendingMessage = new MailMessage();
                    SendingMessage.To.Add(new MailAddress(Email));                   // replace with valid value
                    SendingMessage.From       = new MailAddress("*****@*****.**"); // replace with valid value
                    SendingMessage.Subject    = "Verify your email (noti.fit)";
                    SendingMessage.Body       = "Hi,<br/>Congratulations on signing up to noti.fit, the fitness tracker that keeps you honest!<br/><br/>Please visit <a href='" + RegistrationUrl + UserToken + "'>" + RegistrationUrl + UserToken + "</a> <br/>  to verify your email address and activate your account, or copy the link into a browser if you can't open it from your email address.<br/><br/>Kind regards,<br/>The noti.fit team";
                    SendingMessage.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "******",  // replace with valid value
                            Password = "******" // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host        = "smtp.gmail.com";
                        smtp.Port        = 587;
                        smtp.EnableSsl   = true;
                        await smtp.SendMailAsync(SendingMessage);
                    }
                    //track sent Email time for expiry time :

                    EmailTimeSaveModel objreq = new EmailTimeSaveModel();
                    objreq.UserId       = UserId;
                    objreq.ResetMail    = false;
                    objreq.VerifyMail   = true;
                    objreq.MailSentTime = DateTime.Now.TimeOfDay;
                    EmailTrackerWrapper wrapper = new EmailTrackerWrapper();
                    wrapper.EmailTimeSave(objreq);

                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Please check your Email for further instructions";
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #13
0
        public HttpResponseMessage VerifyEmail(string Token)
        {
            FResponse result = new FResponse();

            try
            {
                Int64 UserId = _objFriendFitDBEntity.Database.SqlQuery <Int64>("Select UserId from UserToken where TokenCode={0}", Token).FirstOrDefault();
                //check link is valid or not

                TimeSpan mailSentTime = _objFriendFitDBEntity.Database.SqlQuery <TimeSpan>("SELECT TOP 1 MailSentTime FROM MailTimeLogs where UserId=@UserId ORDER BY Id DESC",
                                                                                           new SqlParameter("UserId", UserId)).FirstOrDefault();
                TimeSpan Nowtime  = DateTime.Now.TimeOfDay;
                var      TimeDiff = Nowtime - mailSentTime;
                if (TimeDiff.Hours > 12)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    result.Message    = "Link is Expired";
                }
                else
                {
                    bool confirmation = _objFriendFitDBEntity.Database.SqlQuery <bool>("select EmailConfirmed from UserProfile where Id={0}", UserId).FirstOrDefault();

                    if (confirmation == true)
                    {
                        result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                        result.Message    = "Your email address was verified successfully.” Or “Your phone number was verified successfully.";
                    }
                    else
                    {
                        int mailConfirmation = _objFriendFitDBEntity.Database.ExecuteSqlCommand("Update UserProfile set EmailConfirmed=1 where Id={0}", UserId);
                        if (mailConfirmation > 0)
                        {
                            result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                            result.Message    = "Mail Id has been Verified!!";
                        }
                        else
                        {
                            result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                            result.Message    = "Something went wrong,Please Try again";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #14
0
        public HttpResponseMessage DeleteSchedule(int ScheduleId)
        {
            FResponse result = new FResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    var    headers = Request.Headers;
                    string token   = headers.Authorization.Parameter.ToString();
                    Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                    int value = _objIScheduleRepository.DeleteSchedule(ScheduleId, UserId);
                    if (value > 0)
                    {
                        result.WorkoutId  = value;
                        result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                        result.Message    = "Workout Schedule Deleted successfully!";
                    }
                    else
                    {
                        result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                        result.Message    = "Parameters are not correct";
                    }
                }
                catch (Exception ex)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                    _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
                }
                _response = Request.CreateResponse(HttpStatusCode.OK, result);
            }
            else
            {
                ModelState.AddModelError("", "One or more errors occurred.");
            }
            return(_response);
        }
コード例 #15
0
        public async Task <HttpResponseMessage> UserForgetPassword(ForgetPasswordRequest reqForgetPasswordRequest)
        {
            FResponse result = new FResponse();

            try
            {
                Int64 UserId = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select Id from UserProfile where Email={0}", reqForgetPasswordRequest.Email).FirstOrDefault();

                if (UserId != 0)
                {
                    _objIUserSettings.UpdateToken(UserId);
                    string token = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();

                    string Email = _objFriendFitDBEntity.Database.SqlQuery <string>("Select Email from UserProfile Where Id=" + UserId).FirstOrDefault();


                    var SendingMessage = new MailMessage();
                    SendingMessage.To.Add(new MailAddress(Email));                   // replace with valid value
                    SendingMessage.From       = new MailAddress("*****@*****.**"); // replace with valid value
                    SendingMessage.Subject    = "Password Reset (noti.fit)";
                    SendingMessage.Body       = "Hi,<br/>You've requested a reset of your noti.fit password. If you didn't make the request, please ignore this email and your password won't be reset.<br/><br/> You can reset your password by visiting <br/> <br/><a href='" + ChangePasswordUrl + token + "'>" + ChangePasswordUrl + token + "</a> <br/><br/>This email will be valid for the next 12 hours.,<br/><br/><br/><br/>Kind regards<br/>The noti.fit team";
                    SendingMessage.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "******",  // replace with valid value
                            Password = "******" // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host        = "smtp.gmail.com";
                        smtp.Port        = 587;
                        smtp.EnableSsl   = true;
                        await smtp.SendMailAsync(SendingMessage);
                    }
                    //track sent Email time for expiry time :

                    EmailTimeSaveModel objreq = new EmailTimeSaveModel();
                    objreq.UserId       = UserId;
                    objreq.ResetMail    = true;
                    objreq.VerifyMail   = false;
                    objreq.MailSentTime = DateTime.Now.TimeOfDay;
                    EmailTrackerWrapper wrapper = new EmailTrackerWrapper();
                    wrapper.EmailTimeSave(objreq);

                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Please check your Email for further instructions";
                }
                else
                {
                    FileStream   fs  = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/Content/ErrorLog.txt"), FileMode.Append, FileAccess.Write);
                    StreamWriter swr = new StreamWriter(fs);
                    swr.Write("Enter ur Exception Here");
                    swr.Close();
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                    result.Message    = "This Mail Id is not registered";
                }
                var message = Request.CreateResponse(HttpStatusCode.Created, result);
                return(message);
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            return(_response);
        }
コード例 #16
0
        public HttpResponseMessage Login(LoginModelRequest objLoginModelRequest)
        {
            LoginModelResponse result = new LoginModelResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    Int64 UserId       = _objFriendFitDBEntity.Database.SqlQuery <Int64>("Select Id from UserProfile where Email={0}", objLoginModelRequest.Email).FirstOrDefault();
                    bool  mailVerified = _objFriendFitDBEntity.Database.SqlQuery <bool>("select EmailConfirmed from UserProfile where Id={0}", UserId).FirstOrDefault();
                    if (mailVerified == false)
                    {
                        result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                        result.Response.Message    = "Please Verify Your Email Id that has been sent to your mail.";
                    }
                    else
                    {
                        result.Response = _objIUserSettings.Login(objLoginModelRequest);
                        //Int64 UserId = _objFriendFitDBEntity.Database.SqlQuery<Int64>("select Id from UserProfile where Email={0}", objLoginModelRequest.Email).FirstOrDefault();

                        if (result.Response != null)
                        {
                            string Token = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();

                            if (Token == null || Token == "0")
                            {
                                if (Token == null)
                                {
                                    UserToken objToken = new UserToken()
                                    {
                                        UserId     = result.Response.Id,
                                        RoleId     = result.Response.RoleId,
                                        CreatedOn  = DateTime.Now,
                                        IsActive   = true,
                                        ExpiryDate = DateTime.Now.AddDays(7),
                                        TokenCode  = Guid.NewGuid().ToString() + result.Response.Id.ToString() + Guid.NewGuid().ToString()
                                    };
                                    _objFriendFitDBEntity.UserTokens.Add(objToken);
                                    _objFriendFitDBEntity.SaveChanges();
                                    result.Response.TokenCode = objToken.TokenCode;
                                }
                                else
                                {
                                    int rowEffected = _objFriendFitDBEntity.Database.ExecuteSqlCommand("Update Token set TokenCode=@TokenCode,ExpiryDate=@ExpiryDate where UserId=@UserId",
                                                                                                       new SqlParameter("TokenCode", Guid.NewGuid().ToString() + result.Response.Id.ToString() + Guid.NewGuid().ToString()),
                                                                                                       new SqlParameter("ExpiryDate", DateTime.Now.AddDays(7)),
                                                                                                       new SqlParameter("UserId", UserId));
                                }
                            }
                            else
                            {
                                result.Response.TokenCode = Token;
                            }
                            result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                            result.Response.Message    = "You are logged in successfully!";
                        }
                        else
                        {
                            var GetIsActive = _objFriendFitDBEntity.UserProfiles.Where(a => a.Password == objLoginModelRequest.Password && a.Email == objLoginModelRequest.Email).FirstOrDefault();
                            if (GetIsActive != null)
                            {
                                var IsActive = _objFriendFitDBEntity.UserProfiles.Where(a => a.Password == objLoginModelRequest.Password && a.Email == objLoginModelRequest.Email && a.IsActive == true && a.IsDeleted == false).FirstOrDefault();
                                if (IsActive != null)
                                {
                                    FResponse res = new FResponse();
                                    res.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                                    res.Message    = "Email or Password is Incorrect";
                                    _response      = Request.CreateResponse(HttpStatusCode.Unauthorized, res);
                                }
                                else
                                {
                                    FResponse res = new FResponse();
                                    res.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                                    res.Message    = "Your Account is currently disabled kindly contact Admin.";
                                    _response      = Request.CreateResponse(HttpStatusCode.Unauthorized, res);
                                }
                            }
                            else
                            {
                                FResponse res = new FResponse();
                                res.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                                res.Message    = "Email or Password is Incorrect";
                                _response      = Request.CreateResponse(HttpStatusCode.Unauthorized, res);
                            }

                            return(_response);
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                    _response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
                }
            }
            else
            {
                result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Model is not valid");
            }
            //result.Response.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
            //result.Response.Message = "Success";
            _response = Request.CreateResponse(HttpStatusCode.OK, result);
            return(_response);
        }
コード例 #17
0
        public HttpResponseMessage UserResetPassword(ResetPasswordRequest objResetPasswordRequest)
        {
            FResponse result = new FResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    IsPasswordValid = (Regex.IsMatch(objResetPasswordRequest.Password, passwordRegex));
                    //if (IsPasswordValid == true)
                    //{
                    var    headers = Request.Headers;
                    string token   = headers.Authorization.Parameter.ToString();
                    Int64  UserId  = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select UserId from UserToken where TokenCode={0}", token).FirstOrDefault();

                    TimeSpan mailSentTime = _objFriendFitDBEntity.Database.SqlQuery <TimeSpan>("SELECT TOP 1 MailSentTime FROM MailTimeLogs where UserId=@UserId ORDER BY Id DESC",
                                                                                               new SqlParameter("UserId", UserId)).FirstOrDefault();
                    TimeSpan Nowtime  = DateTime.Now.TimeOfDay;
                    var      TimeDiff = Nowtime - mailSentTime;
                    if (TimeDiff.Hours > 12)
                    {
                        result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                        result.Message    = "Link is Expired";
                    }
                    else
                    {
                        //update password if link is not expired
                        var model = _objIUserSettings.ResetPassword(objResetPasswordRequest, UserId);

                        if (model > 0)
                        {
                            result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                            result.Message    = "Your password has been updated successfully.";
                        }
                        else
                        {
                            result.StatusCode = Convert.ToInt32(HttpStatusCode.NotFound);
                            result.Message    = "Not Updated";
                        }
                    }
                    //}
                    //else
                    //{

                    //    result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                    //    result.Message = "Password Must contain at least one number and one uppercase and lowercase letter,  and atleast one special character and  must be in between 6 to 20 characters";
                    //}

                    _response = Request.CreateResponse(HttpStatusCode.OK, result);
                    return(_response);
                }
                catch (Exception ex)
                {
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                    _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
                }
            }
            else
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.NotAcceptable);
                result.Message    = "Request is not valid !!";
            }

            return(_response);
        }