Beispiel #1
0
        public async Task <bool> UpdateStaffMember(StaffMember member)
        {
            if (member == null)
            {
                return(false);
            }

            string whereClause = "id = " + member.ID;
            var    members     = await GetStaff(whereClause);

            if (members == null || members.Count < 1)
            {
                return(false);
            }

            // The OIDs are only unqiue. We query from the database to ensure it's correct.
            var updatedMember = members[0];

            updatedMember.Name     = member.Name;
            updatedMember.Location = member.Location;
            updatedMember.X        = member.X;
            updatedMember.Y        = member.Y;

            StringBuilder sb = new StringBuilder();

            sb.Append("[");
            sb.Append(updatedMember.ToJSON());
            sb.Append("]");

            var token = await GetToken();

            if (string.IsNullOrEmpty(token))
            {
                return(false);
            }

            var postParams = new Dictionary <string, string>()
            {
                { "token", token },
                { "f", "pjson" },
                { "updates", sb.ToString() }
            };

            var content  = new FormUrlEncodedContent(postParams);
            var response = await httpClient.PostAsync(_cardiffServer + _staffLayer + "applyEdits", content);

            return(response.StatusCode == System.Net.HttpStatusCode.OK);
        }
Beispiel #2
0
        public async Task <List <StaffMember> > GetStaff(string whereClause = "")
        {
            var staffList = new List <StaffMember>();

            var token = await GetToken();

            if (string.IsNullOrEmpty(token))
            {
                return(staffList);
            }

            if (string.IsNullOrEmpty(whereClause))
            {
                whereClause = "oid > 0";
            }

            var postParams = new Dictionary <string, string>()
            {
                { "token", token },
                { "f", "pjson" },
                { "where", whereClause },
                { "outfields", "*" },
            };

            var content = new FormUrlEncodedContent(postParams);
            var result  = await httpClient.PostAsync(_cardiffServer + _staffLayer + "query", content);

            if (result.StatusCode != System.Net.HttpStatusCode.OK || result.Content == null)
            {
                return(staffList);
            }

            string json = await result.Content.ReadAsStringAsync();

            if (string.IsNullOrEmpty(json))
            {
                return(staffList);
            }

            var staffListJSON = JObject.Parse(json);

            if (staffListJSON == null)
            {
                return(staffList);
            }

            var users = staffListJSON.GetValue("features") as JArray;

            if (users == null || users.Count == 0)
            {
                return(staffList);
            }

            foreach (var user in users)
            {
                var staffMember = StaffMember.fromJSON(user as JObject);
                if (staffMember == null)
                {
                    continue;
                }

                staffList.Add(staffMember);
            }

            return(staffList);
        }