示例#1
0
        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);
        }
示例#3
0
        // 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
            };
        }