public async Task <Employee> Get() { var user = User as ClaimsPrincipal; var isAuthenticated = user.Identity.IsAuthenticated; if (!isAuthenticated) { throw new HttpResponseException(HttpStatusCode.NotFound); } var credentials = await user.GetAppServiceIdentityAsync <AzureActiveDirectoryCredentials>(Request); var userId = string.Empty; var firstName = string.Empty; var lastName = string.Empty; var email = string.Empty; var photoUrl = string.Empty; firstName = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.GivenName)?.Value ?? string.Empty; lastName = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.Surname)?.Value ?? string.Empty; email = credentials.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value ?? string.Empty; userId = email; photoUrl = "https://secure.gravatar.com/avatar/62921d835f6d165597ff0dcd40fd2664?s=260&d=mm&r=g"; var context = new Models.MobileServiceContext(); var currentUser = context.Employees.FirstOrDefault(u => u.Id == userId); if (currentUser == null) { currentUser = new Employee { Id = userId, FirstName = firstName, LastName = lastName, Email = email, Title = "Software Engineer", PhotoUrl = photoUrl }; context.Employees.Add(currentUser); } else { currentUser.FirstName = firstName; currentUser.LastName = lastName; currentUser.Email = email; } await context.SaveChangesAsync(); return(currentUser); }
/// <summary> /// Seeds the specified context. /// </summary> /// <param name="context">The context.</param> protected override void Seed(Models.MobileServiceContext context) { context.TodoItems.AddOrUpdate( p => p.Id, new TodoItem { Id = Guid.NewGuid().ToString(), Text = "Clean the car." }, new TodoItem { Id = Guid.NewGuid().ToString(), Text = "Read a book" } ); base.Seed(context); }
// GET api/My public Settings Get() { var context = new Models.MobileServiceContext(); var user = User as ServiceUser; var queryResults = from item in context.Assistances where item.User == user.Id select item; var pub = queryResults.FirstOrDefault(x => x.Date == DateTime.Today); return new Settings { PubId = pub != null ? pub.PubID : string.Empty, Times = pub != null ? queryResults.Count(x => x.PubID == pub.PubID) : 0 }; }