Пример #1
0
        /// <summary>
        /// Updates an user's data in the database.
        /// </summary>
        /// <param name="user">The user to be updated.</param>
        public override void UpdateUser(MembershipUser user)
        {
            Rem2MembershipUser memUser = user as Rem2MembershipUser;

            if (memUser == null)
            {
                throw new ArgumentException("The supplied Membership user is not compatible with the DB.");
            }

            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where u.UserName == user.UserName
                        select u;
            User found = query.FirstOrDefault();

            if (found == null)
            {
                return;
            }

            found.Email     = memUser.Email;
            found.FirstName = memUser.FirstName;
            found.LastName  = memUser.LastName;
            ctx.SubmitChanges();
        }
Пример #2
0
        /// <summary>
        /// Changes password for an user.
        /// </summary>
        /// <param name="username">Name of the user.</param>
        /// <param name="oldPassword">Old password.</param>
        /// <param name="newPassword">New password.</param>
        /// <returns>True if the operation was successful, false otherwise.</returns>
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where (u.UserName == username) &&
                        (u.Password == oldPassword)
                        select u;

            User found = query.FirstOrDefault();

            if (found == null)
            {
                return(false);
            }
            try
            {
                found.Password = newPassword;
                ctx.SubmitChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #3
0
        /// <summary>
        /// Gats an user's name from the database given his e-mail address.
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public override string GetUserNameByEmail(string email)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where u.Email == email
                        select u.UserName;

            return(query.FirstOrDefault());
        }
Пример #4
0
        /// <summary>
        /// Gets an user's password from the database.
        /// </summary>
        /// <param name="username">Name of the user.</param>
        /// <param name="answer"></param>
        /// <returns>User's password.</returns>
        public override string GetPassword(string username, string answer)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where u.UserName == username
                        select u.Password;

            return(query.FirstOrDefault());
        }
Пример #5
0
        /// <summary>
        /// Validates an user against the database.
        /// </summary>
        /// <param name="username">User name.</param>
        /// <param name="password">User password.</param>
        /// <returns>True if the user was succesfully validated, false otherwise.</returns>
        public override bool ValidateUser(string username, string password)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where (u.UserName == username) &&
                        (u.Password == password)
                        select u;

            return(query.FirstOrDefault() != null);
        }
Пример #6
0
        /// <summary>
        /// Gets an MembershipUser from the database, given his username.
        /// </summary>
        /// <param name="username">User name.</param>
        /// <param name="userIsOnline"></param>
        /// <returns>The fetched MemebershipUser.</returns>
        public override MembershipUser GetUser(string username, bool userIsOnline)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where u.UserName == username
                        select u;

            User found = query.FirstOrDefault();

            if (found != null)
            {
                return(new Rem2MembershipUser(this.Name, found));
            }
            else
            {
                return(null);
            }
        }
Пример #7
0
        /// <summary>
        /// Creates a new user and inserts him into the DB.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="password">User password.</param>
        /// <param name="email">E-mail address.</param>
        /// <param name="firstName">First name.</param>
        /// <param name="lastName">Last name.</param>
        /// <param name="status">User creation status.</param>
        /// <returns>A new Membership user if successful, null otherwise.</returns>
        public Rem2MembershipUser CreateUser(string userName, string password, string email,
                                             string firstName, string lastName, out MembershipCreateStatus status)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();

            //check user name
            if (string.IsNullOrEmpty(userName))
            {
                status = MembershipCreateStatus.InvalidUserName;
                return(null);
            }

            //check if the user already exists
            if (ctx.Users.FirstOrDefault(u => u.UserName == userName) != null)
            {
                status = MembershipCreateStatus.DuplicateUserName;
                return(null);
            }

            Rem2MembershipUser memUser = null;

            try
            {
                User dbUser = new User()
                {
                    UserName  = userName,
                    Password  = password,
                    Email     = email,
                    FirstName = firstName,
                    LastName  = lastName
                };
                ctx.Users.InsertOnSubmit(dbUser);
                ctx.SubmitChanges();
                memUser = new Rem2MembershipUser(this.Name, dbUser);
            }
            catch
            {
                status = MembershipCreateStatus.ProviderError;
                return(null);
            }

            status = MembershipCreateStatus.Success;
            return(memUser);
        }
Пример #8
0
        /// <summary>
        /// Processes the HTTP request.
        /// </summary>
        /// <param name="context">Context of the HTTP operation.</param>
        protected override void InternalProcessRequest(HttpContext context)
        {
            Reminder2DataContext dataCtx = new Reminder2DataContext();
            var query = from User u in dataCtx.Users
                        where u.UserName == context.User.Identity.Name
                        select u.idUser;

            if (query.Count() > 0)
            {
                try
                {
                    Task task = new Task()
                    {
                        Message  = this.Message,
                        DateTime = this.DateTime,
                        idUser   = query.First()
                    };
                    dataCtx.Tasks.InsertOnSubmit(task);
                    dataCtx.SubmitChanges();
                    WriteOutputStatus(200, "OK.");

                    XmlOutput.WriteStartElement("task");
                    try
                    {
                        XmlOutput.WriteAttributeString("id", task.idTask.ToString());
                    }
                    finally
                    {
                        XmlOutput.WriteEndElement();
                    }
                }
                catch (Exception ex)
                {
                    WriteOutputStatus(CommonStatusCode.ServerError, string.Format("Couldn't add task. {0}", ex.Message));
                }
            }
            else
            {
                WriteOutputStatus(CommonStatusCode.ServerError, "Invalid user Id.");
            }
        }
Пример #9
0
        protected override void InternalProcessRequest(HttpContext context)
        {
            Reminder2DataContext ctx = new Reminder2DataContext();

            try
            {
                IQueryable <Task> tasks  = null;
                DateTime          utcNow = DateTime.UtcNow;
                switch (RequestType)
                {
                case TasksRequestType.Recent:
                    //select tasks that are either less than 2 days old or not checked
                    tasks = from Task t in ctx.Tasks
                            where t.User.UserName == context.User.Identity.Name &&
                            !t.Deleted &&
                            (utcNow - t.DateTime < new TimeSpan(2, 0, 0, 0) || !t.Checked)
                            select t;
                    break;

                case TasksRequestType.Unchecked:
                    //select all unchecked tasks
                    tasks = from Task t in ctx.Tasks
                            where t.User.UserName == context.User.Identity.Name &&
                            !t.Deleted &&
                            !t.Checked
                            select t;
                    break;
                }

                if (tasks != null)
                {
                    WriteTasks(tasks);
                }
            }
            catch (Exception ex)
            {
                WriteOutputStatus(CommonStatusCode.ServerError, string.Format("Could not retrieve tasks. {0}", ex.Message));
            }
        }
Пример #10
0
        protected override void InternalProcessRequest(HttpContext context)
        {
            Reminder2DataContext dataCtx = new Reminder2DataContext();
            var query = from Task t in dataCtx.Tasks
                        where t.idTask == TaskID
                        select new
            {
                Task     = t,
                UserName = t.User.UserName
            };

            var result = query.FirstOrDefault();

            if (result != null)
            {
                try
                {
                    if (result.UserName.Equals(context.User.Identity.Name, StringComparison.OrdinalIgnoreCase))
                    {
                        result.Task.Deleted = true;
                        dataCtx.SubmitChanges();
                        WriteOutputStatus(CommonStatusCode.OK, "OK.");
                    }
                    else
                    {
                        WriteOutputStatus(CommonStatusCode.Forbidden, "You are not allowed to delete this task.");
                    }
                }
                catch (Exception ex)
                {
                    WriteOutputStatus(CommonStatusCode.ServerError, string.Format("Couldn't delete task. {0}", ex.Message));
                }
            }
            else
            {
                WriteOutputStatus(CommonStatusCode.NotFound, "Task not found.");
            }
        }
Пример #11
0
        /// <summary>
        /// Gets a MembershipUser from the database given his database ID.
        /// </summary>
        /// <param name="providerUserKey">ID of the user in the DB.</param>
        /// <param name="userIsOnline"></param>
        /// <returns>The fetched MembershipUser.</returns>
        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            if (!(providerUserKey is int))
            {
                return(null);
            }

            Reminder2DataContext ctx = new Reminder2DataContext();
            var query = from User u in ctx.Users
                        where u.idUser == (int)providerUserKey
                        select u;

            User found = query.FirstOrDefault();

            if (found != null)
            {
                return(new Rem2MembershipUser(this.Name, found));
            }
            else
            {
                return(null);
            }
        }