Esempio n. 1
0
        public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = nameof(GetOngoingGame))]
                                              HttpRequestMessage req, TraceWriter log)
        {
            using (var analytic = new AnalyticService(new RequestTelemetry
            {
                Name = nameof(GetOngoingGame)
            }))
            {
                try
                {
                    var email = req.GetQueryNameValuePairs().FirstOrDefault(kvp => kvp.Key == "email").Value;

                    if (string.IsNullOrWhiteSpace(email))
                    {
                        return(req.CreateErrorResponse(HttpStatusCode.BadRequest, "email address required"));
                    }

                    using (var client = new CosmosDataService())
                    {
                        var game = client.GetOngoingGame(email);

                        return(req.CreateResponse(HttpStatusCode.OK, game as Object));
                    }
                }
                catch (Exception e)
                {
                    // track exceptions that occur
                    analytic.TrackException(e);

                    return(req.CreateErrorResponse(HttpStatusCode.BadRequest, e));
                }
            }
        }
Esempio n. 2
0
        public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = nameof(GetGameByEntryCode))]
                                              HttpRequestMessage req, TraceWriter log)
        {
            using (var analytic = new AnalyticService(new RequestTelemetry
            {
                Name = nameof(GetGameByEntryCode)
            }))
            {
                try
                {
                    var kvps      = req.GetQueryNameValuePairs();
                    var email     = kvps.FirstOrDefault(kvp => kvp.Key == "email").Value;
                    var entryCode = kvps.FirstOrDefault(kvp => kvp.Key == "entryCode").Value;

                    using (var client = new CosmosDataService())
                    {
                        var existingGame = client.GetOngoingGame(email);

                        if (existingGame != null)
                        {
                            return(req.CreateErrorResponse(HttpStatusCode.Conflict, "User already has an ongoing game"));
                        }

                        var openGame = client.GetGameByEntryCode(entryCode);

                        return(req.CreateResponse(HttpStatusCode.OK, openGame));
                    }
                }
                catch (Exception e)
                {
                    // track exceptions that occur
                    analytic.TrackException(e);
                    return(req.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message, e));
                }
            }
        }