// 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")); }
/// <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); }