public async static Task <bool> UpdateListItem(string groupid, string siteId, string listId, string itemId, IDictionary <string, object> data)
        {
            _graphClient = GraphServiceClientProvider.GetAuthenticatedClient();

            var fieldValueSet = new FieldValueSet
            {
                AdditionalData = data,
            };

            try
            {
                await _graphClient.Groups[groupid]
                .Sites[siteId]
                .Lists[listId]
                .Items[itemId]
                .Fields
                .Request()
                .UpdateAsync(fieldValueSet);

                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }
        }
        public static async Task UpdateFlightInSharePoint(Flight updatedFlight)
        {
            var crewLookupIds = new List <string>();

            // Updating Person fields in SharePoint require a lookup ID,
            // which is unique to each site.
            foreach (var email in updatedFlight.FlightCrew)
            {
                var lookup = await GetUserLookupId(email);

                if (!string.IsNullOrEmpty(lookup))
                {
                    crewLookupIds.Add(lookup);
                }
            }

            // Format the field as a lookup field
            var flightAttendantField = new FieldValueSet
            {
                AdditionalData = new Dictionary <string, object>
                {
                    { "*****@*****.**", "Collection(Edm.String)" },
                    { "FlightAttendantsLookupId", crewLookupIds }
                }
            };

            var spIds = updatedFlight.Id.Split('/');

            await appClient.Drives[spIds[0]].Items[spIds[1]].ListItem.Fields.Request().UpdateAsync(flightAttendantField);
        }
Exemplo n.º 3
0
        public async Task <List <string> > GetPlayers()
        {
            try
            {
                List <string> data    = new List <string>();
                List <Option> options = new List <Option>();

                options.Add(new QueryOption("search", "devsite"));

                Site site = (await _graphServiceClient.Sites.Request(options).GetAsync()).First();



                List playersList = (await(_graphServiceClient.Sites[site.Id].Lists.Request().GetAsync())).Where(x => x.Name == "Players").First();

                IEnumerable <Microsoft.Graph.ListItem> players = await _graphServiceClient.Sites[site.Id].Lists[playersList.Id].Items.Request().GetAsync();

                foreach (Microsoft.Graph.ListItem listItem in players)
                {
                    FieldValueSet fieldValueSet = (await _graphServiceClient.Sites[site.Id].Lists[playersList.Id].Items[listItem.Id].Fields.Request().GetAsync());
                    IDictionary <string, object> keyValuePairs = fieldValueSet.AdditionalData;

                    data.Add(keyValuePairs["Title"].ToString());
                }
                return(data);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        public static async Task UpdateBooking(Booking b)
        {
            var client = GetAuthenticatedClient();

            var fieldValueSet = new FieldValueSet();

            fieldValueSet.AdditionalData = new Dictionary <string, object>();

            fieldValueSet.AdditionalData.Add("Title", b.Title);
            fieldValueSet.AdditionalData.Add("Description", b.Description);

            await client.Sites["root"].Lists["078f5835-c141-4ca9-a429-a1bebb14059a"].Items[b.Id].Fields.Request().UpdateAsync(fieldValueSet);
        }
        /// <summary>
        /// This method will update requests status in SharePoint list.
        /// </summary>
        /// <param name="graphClient"></param>
        /// <param name="log"></param>
        /// <param name="itemId"></param>
        public static async void UpdateStatus(GraphServiceClient graphClient, TraceWriter log, string itemId, string siteId, string listId)
        {
            var fieldValueSet = new FieldValueSet();
            var field         = new Dictionary <string, object>()
            {
                { "_Status", "Site Created" },
            };

            fieldValueSet.AdditionalData = field;
            var result = await graphClient.Sites[siteId].Lists[listId].Items[itemId].Fields
                         .Request()
                         .UpdateAsync(fieldValueSet);

            log.Info("Update status successfully.");
        }
Exemplo n.º 6
0
        /// <summary>
        /// Update the navigation property fields in drives
        /// <param name="body"></param>
        /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
        /// </summary>
        public RequestInformation CreatePatchRequestInformation(FieldValueSet body, Action <FieldsRequestBuilderPatchRequestConfiguration> requestConfiguration = default)
        {
            _ = body ?? throw new ArgumentNullException(nameof(body));
            var requestInfo = new RequestInformation {
                HttpMethod     = Method.PATCH,
                UrlTemplate    = UrlTemplate,
                PathParameters = PathParameters,
            };

            requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body);
            if (requestConfiguration != null)
            {
                var requestConfig = new FieldsRequestBuilderPatchRequestConfiguration();
                requestConfiguration.Invoke(requestConfig);
                requestInfo.AddRequestOptions(requestConfig.Options);
                requestInfo.AddHeaders(requestConfig.Headers);
            }
            return(requestInfo);
        }
Exemplo n.º 7
0
        public static async Task PostBooking(Booking b)
        {
            var client = GetAuthenticatedClient();

            RestClient restClient = new RestClient("https://graph.microsoft.com/v1.0/");
            var        token      = await GetAccessTokenAsync();

            restClient.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(token, "Bearer");
            var request  = new RestRequest("sites/root/lists/1E10CAC5-5E13-4A57-B913-2AEB9EA109C6/items?expand=fields", DataFormat.Json);
            var response = restClient.Execute(request);

            var json = JObject.Parse(response.Content)["value"]
                       .Select(_ => _["fields"])
                       .FirstOrDefault(_ => _["Title"].Value <string>() == b.Person);
            var lookup = json["id"].Value <string>();

            var fieldValueSet = new FieldValueSet();

            fieldValueSet.AdditionalData = new Dictionary <string, object>();
            fieldValueSet.AdditionalData.Add("Title", b.Title);
            fieldValueSet.AdditionalData.Add("Description", b.Description);
            fieldValueSet.AdditionalData.Add("PeopleLookupId", lookup);

            var listItem = new ListItem
            {
                Fields = fieldValueSet
            };

            if (string.IsNullOrEmpty(b.Id))
            {
                await client.Sites["root"].Lists["078f5835-c141-4ca9-a429-a1bebb14059a"].Items
                .Request()
                .AddAsync(listItem);
            }
            else
            {
                await client.Sites["root"].Lists["078f5835-c141-4ca9-a429-a1bebb14059a"].Items[b.Id]
                .Request()
                .UpdateAsync(listItem);
            }
        }
Exemplo n.º 8
0
        public static async Task CreateActivities(Activities a)
        {
            var graphClient = GetAuthenticatedClient();

            var fieldValueSet = new FieldValueSet();

            fieldValueSet.AdditionalData = new Dictionary <string, object>();

            fieldValueSet.AdditionalData.Add("Title", a.Title);
            fieldValueSet.AdditionalData.Add("Beskrivning", a.Beskrivning);
            fieldValueSet.AdditionalData.Add("Startdatum", a.Startdatum.ToString());
            fieldValueSet.AdditionalData.Add("Slutdatum", a.Slutdatum.ToString());
            fieldValueSet.AdditionalData.Add("Plats1", a.Plats);

            var listItem = new Microsoft.Graph.ListItem
            {
                Fields = fieldValueSet
            };

            await graphClient.Sites[_siteId].Lists[_listId].Items
            .Request()
            .AddAsync(listItem);
        }