private async Task <Boolean> CreateSubscription(string accessToken, string email = null)
        {
            using (var httpClient = new HttpClient())
            {
                SubscriptionRequestData requsetData = new SubscriptionRequestData();
                requsetData.OdataType       = "#Microsoft.OutlookServices.PushSubscription";
                requsetData.Resource        = "https://outlook.office.com/api/v2.0/me/Events?$filter=SingleValueExtendedProperties/Any (ep: ep/PropertyId eq 'String {00020329-0000-0000-C000-000000000046} Name cecp-7e24ee5e-204e-4eeb-aa0f-788af20fc21c' and contains(ep/Value, '\"meetingsetby\":\"demo-addin\"'))";
                requsetData.NotificationURL = "https://exchangepushnotifications.azurewebsites.net/api/Notify/PushNotificationDemo";
                requsetData.ClientState     = WebConfigurationManager.AppSettings["clientState"];
                requsetData.ChangeType      = "Created,Updated,Deleted";


                httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
                var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(requsetData));

                var httpContent  = new StringContent(stringPayload, Encoding.UTF8, "application/json");
                var httpResponse = await httpClient.PostAsync("https://outlook.office.com/api/v2.0/me/subscriptions", httpContent);

                if (httpResponse.IsSuccessStatusCode)
                {
                    SubscriptionResponseData responseData = await httpResponse.Content.ReadAsAsync <SubscriptionResponseData>();

                    var dbContext = new DbHelper();
                    //save subscription details in DB.
                    dbContext.UpdateSubscriptionDetails(email, responseData.Id, responseData.SubscriptionExpirationDateTime);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
示例#2
0
        public void InsertSubscription(SubscriptionRequestData requestData)
        {
            const string sql = @"INSERT INTO dbo.Subscription
            (
                StudentId,
                ClassId
            )
            VALUES
            (
                @StudentId,
                @ClassId
            )";

            DynamicParameters parameters = new DynamicParameters();

            parameters.AddDynamicParams(
                new {
                StudentId = requestData.StudentId,
                ClassId   = requestData.ClassId
            });

            using (SqlConnection sqlConnection = GetSqlConnection())
            {
                sqlConnection.Execute(sql, parameters);
            }
        }
示例#3
0
        public ActionResult <InsertSubscriptionResponse> Insert([FromBody] SubscriptionRequestData requestData)
        {
            InsertSubscriptionRequest  request  = new InsertSubscriptionRequest(requestData);
            InsertSubscriptionResponse response = this._insertSubscription.Process(request);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(response);
        }
示例#4
0
        public InsertSubscriptionResponse ValidateSubscription(SubscriptionRequestData requestData)
        {
            InsertSubscriptionResponse response = new InsertSubscriptionResponse();

            if (!this._validator.Execute(requestData.StudentId, response, nameof(requestData.StudentId)))
            {
                if (!this._studentRepository.ExistByStudentId(requestData.StudentId))
                {
                    response.AddError("023", "StudentId don't exist");
                }
            }

            if (!this._validator.Execute(requestData.ClassId, response, nameof(requestData.ClassId)))
            {
                if (!this._classRepository.ExistByClassId(requestData.ClassId))
                {
                    response.AddError("022", "ClassId don't exist");
                }
            }

            return(response);
        }
示例#5
0
 public void PerformFor(SubscriptionRequestData requestData)
 {
 }
示例#6
0
 public InsertSubscriptionRequest(SubscriptionRequestData requestData)
 {
     Data = requestData;
 }