示例#1
0
        public void ToggleHouseholdMembership(DownloadPersonModel person, DownloadHouseholdModel household,
                                              Action <Exception, DownloadHouseholdModel> callback)
        {
            var request = new RestRequest("/api/people/" + person.id + "/toggle_membership/", Method.PATCH);

            request.AddParameter("household_id", household.id);
            _client.ExecuteAsync <DownloadHouseholdModel>(request, rslt =>
            {
                if (rslt.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    callback(null, rslt.Data);
                }
                else
                {
                    callback(new Exception("Cannot Toggle Membership\n+"
                                           + rslt.Content?.Trim("[]".ToCharArray())), null);
                }
            });
        }
示例#2
0
        public void ToggleEvacuationMembership(DownloadPersonModel person, Center center,
                                               Action <Exception, Center> callback)
        {
            var request = new RestRequest("/api/people/" + person.id + "/toggle_evacuation_membership/", Method.PATCH);

            request.AddParameter("center_id", center.id);
            _client.ExecuteAsync <Center>(request, rslt =>
            {
                if (rslt.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    callback(null, rslt.Data);
                }
                else
                {
                    callback(new Exception("Cannot Toggle Center Membership\n+"
                                           + rslt.Content?.Trim("[]".ToCharArray()) + "\n" + rslt.ErrorMessage), null);
                }
            });
        }
示例#3
0
        public void AddPerson(DownloadPersonModel person, Action <Exception, DownloadPersonModel> callback, string choosenPhoto = "")
        {
            var request = new RestRequest("/api/people/", Method.POST);

            request.RequestFormat = DataFormat.Json;

            request.AddJsonBody(person);
            _client.ExecuteAsync <DownloadPersonModel>(request, rslt =>
            {
                if (rslt.StatusCode != System.Net.HttpStatusCode.Created || rslt.ErrorException != null)
                {
                    callback(new Exception(rslt.ErrorMessage + "\n" + rslt.StatusDescription
                                           + "\n" + rslt.Content.Trim("[]".ToCharArray())), null);
                    return;
                }

                if (string.IsNullOrEmpty(choosenPhoto) == false)
                {
                    var reqUpload = new RestRequest("/api/people/" + rslt.Data.id + "/upload/", Method.PATCH);
                    reqUpload.AddFile("Photo", choosenPhoto);
                    _client.ExecuteAsync <DownloadPersonModel>(reqUpload, rsltUpload =>
                    {
                        if (rsltUpload.StatusCode == System.Net.HttpStatusCode.OK)
                        {
                            rsltUpload.Data.Photo = NormalizeUri(rsltUpload.Data.Photo);
                            callback(null, rsltUpload.Data);
                            return;
                        }
                        else
                        {
                            callback(null, rslt.Data);
                            return;
                        }
                    });
                }

                callback(null, rslt.Data);
            });
        }