public async Task <bool> Post(string beerId, string upc) { var properties = new Dictionary <string, string>(); properties.Add("BeerId", beerId); properties.Add("UPC", upc); telemetryClient.TrackEvent("SaveBarcode", properties); var beer = context.Beers.FirstOrDefault(x => x.Id == beerId); if (beer == null) { return(false); } try { beer.Upc = upc; context.Beers.Add(beer); context.SaveChanges(); return(true); } catch (Exception ex) { telemetryClient.TrackException(ex); return(false); } }
public HttpResponseMessage Post(UserPrivateData privateData) { try { BeerDrinkinContext context = new BeerDrinkinContext(); var old = context.UserPrivateItems.SingleOrDefault(f => f.Id == privateData.Id); if (old != null) { old.DateOfBirth = privateData.DateOfBirth; } else { context.UserPrivateItems.Add(privateData); } context.SaveChanges(); return(this.Request.CreateResponse(HttpStatusCode.OK)); } catch { } return(this.Request.CreateResponse(HttpStatusCode.Conflict, "Something wrong")); }
public override ProviderCredentials CreateCredentials(ClaimsIdentity claimsIdentity) { // grab any information from claimsIdentity which you would like to store // If you need the access token for use with the graph APIs, you can use the following //string providerAccessToken = claimsIdentity.GetClaimValueOrNull(ServiceClaimTypes.ProviderAccessToken); // use the access token with HttpClient to get graph information to store var accessToken = string.Empty; var emailAddress = string.Empty; foreach (var claim in claimsIdentity.Claims) { if (claim.Type == "Zumo:ProviderAccessToken") { accessToken = (string)claim.Value; } if (claim.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress") { emailAddress = (string)claim.Value; } } if (string.IsNullOrEmpty(accessToken)) { return(null); } var client = new FacebookClient(accessToken); dynamic user = client.Get("me"); DateTime dateOfBirth; DateTime.TryParse(user.birthday, out dateOfBirth); //Keeping userItem for the moment but may well kill it. I was going to seperate userItem into public info and accountItem into public var userItem = new UserItem { Id = user.id, }; var accountItem = new AccountItem { Id = userItem.Id, Email = emailAddress, FirstName = user.first_name, LastName = user.last_name, IsMale = user.gender == "male", DateOfBirth = dateOfBirth }; accountItem.AvatarUrl = $"https://graph.facebook.com/{userItem.Id}/picture?type=large"; var context = new BeerDrinkinContext(); if (context.UserItems.FirstOrDefault(x => x.Id == userItem.Id) != null) { return(base.CreateCredentials(claimsIdentity)); } context.AccountItems.Add(accountItem); context.UserItems.Add(userItem); context.SaveChanges(); return(base.CreateCredentials(claimsIdentity)); }