// POST api/<controller>
        //
        // Add user to the database
        //
        public HttpResponseMessage Post([FromBody] JsonUser value)
        {
            if (value == null)
            {
                Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid user information");
            }

            Models.Repository     repository = new Models.Repository();
            Facebook.FacebookUser fbUser     = new Facebook.FacebookUser
            {
                id         = value.UserId,
                email      = value.Email,
                first_name = value.FirstName,
                last_name  = value.LastName,
                name       = value.Name
            };
            var mfUser = repository.CreateUser(fbUser);

            repository.SaveChanges();

            List <GroupMember> membership = repository.UserMembership(mfUser);

            if ((membership == null) || (membership.Count == 0))
            {
                Group defaultGroup = repository.FindGroupByCode("JYMF");
                repository.DefaultGroup(mfUser, defaultGroup, GroupRoleEnum.member);
                repository.SaveChanges();
            }


            return(Request.CreateResponse(HttpStatusCode.Created, "User added to application"));
        }
Exemple #2
0
        /// <summary>
        /// Make sure user exists in the database.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        ///
        public MFUser CreateUser(Facebook.FacebookUser fbUser)
        {
            MFUser user = GetUserById(fbUser.id);

            if (user == null)
            {
                user = new MFUser()
                {
                    UserId     = fbUser.id,
                    Name       = fbUser.name,
                    FirstName  = fbUser.first_name,
                    LastName   = fbUser.last_name,
                    Email      = fbUser.email,
                    LastUpdate = DateTime.Now
                };
                context.MFUsers.Add(user);
            }
            else if (user.LastUpdate.AddDays(STALE_USER) < DateTime.Now)
            {
                user.Name       = (!string.IsNullOrEmpty(fbUser.name) ? fbUser.name : user.Name);
                user.FirstName  = (!string.IsNullOrEmpty(fbUser.first_name) ? fbUser.first_name : user.FirstName);
                user.LastName   = (!string.IsNullOrEmpty(fbUser.last_name) ? fbUser.last_name : user.LastName);
                user.Email      = (!string.IsNullOrEmpty(fbUser.email) ? fbUser.email : user.Email);
                user.LastUpdate = DateTime.Now;
            }

            return(user);
        }