public async Task<AsyncResult> CreateUser(User user) { var result = new AsyncResult(); var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = JsonConvert.SerializeObject(user); using (var content = new StringContent(data, Encoding.UTF8, "application/json")) { var uri = new Uri("api/users", UriKind.Relative); using (var resp = await client.PostAsync(uri, content)) { if (resp.StatusCode == HttpStatusCode.Created) { result.Succeed = true; return result; } if (resp.StatusCode == HttpStatusCode.InternalServerError) { result.ErrorMessage = "Произошла ошибка на сервере"; } else if (resp.StatusCode == HttpStatusCode.BadRequest) { var err = await resp.Content.ReadAsStringAsync(); result.ErrorMessage = TranslateError(err); } return result; } } } }
public async Task<AsyncResult<string>> SaveAsync(Product product) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = JsonConvert.SerializeObject(product); using (var content = new StringContent(data, Encoding.UTF8, "application/json")) { if (product.Id == null) { var uri = new Uri("api/products/", UriKind.Relative); var resp = await client.PostAsync(uri, content); if (resp.StatusCode == HttpStatusCode.Created) { var id = await resp.Content.ReadAsStringAsync(); return new AsyncResult<string> { Result = id, Succeed = true }; } } else { var uri = new Uri(string.Concat("api/products/", product.Id), UriKind.Relative); var resp = await client.PutAsync(uri, content); if (resp.StatusCode == HttpStatusCode.OK) { return new AsyncResult<string> { Result = product.Id, Succeed = true }; } } } } return new AsyncResult<string>(); }
public async Task<AsyncResult<Product[]>> GetAsync() { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var str = await client.GetStringAsync(new Uri("api/products", UriKind.Relative)); var res = JsonConvert.DeserializeObject<Product[]>(str); return new AsyncResult<Product[]> { Result = res, Succeed = true }; } }
public async Task<AsyncResult<Product[]>> GetManyAsync(List<string> ids) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = JsonConvert.SerializeObject(ids); using (var content = new StringContent(data, Encoding.UTF8, "application/json")) { var uri = new Uri("api/products/getMany", UriKind.Relative); using (var resp = await client.PostAsync(uri, content)) { var str = await resp.Content.ReadAsStringAsync(); var res = JsonConvert.DeserializeObject<Product[]>(str); return new AsyncResult<Product[]> { Result = res, Succeed = true }; } } } }
public async Task<AsyncResult<string>> Create(Stream stream, string fileName, string contentType) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) using (var multipart = new MultipartFormDataContent()) using (var content = new StreamContent(stream)) { multipart.Add(content, contentType, fileName); var uri = new Uri("api/files", UriKind.Relative); var resp = await client.PostAsync(uri, multipart); if (resp.StatusCode == HttpStatusCode.Created) { var id = await resp.Content.ReadAsStringAsync(); return new AsyncResult<string> { Result = id, Succeed = true }; } } return new AsyncResult<string>(); }
public async Task<AsyncResult> ChangePasswordAsync(string login, string oldPassword, string newPassword) { var result = new AsyncResult(); var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = new Dictionary<string, string> { {"oldPassword", oldPassword}, {"newPassword", newPassword}, }; var uri = string.Format("/api/users/{0}/changePassword", login); using (var content = new FormUrlEncodedContent(data)) using (var resp = await client.PostAsync(uri, content)) { if (resp.StatusCode == HttpStatusCode.OK) { result.Succeed = true; return result; } if (resp.StatusCode == HttpStatusCode.InternalServerError) { result.ErrorMessage = "Произошла ошибка на сервере"; } else if (resp.StatusCode == HttpStatusCode.BadRequest) { var err = await resp.Content.ReadAsStringAsync(); result.ErrorMessage = TranslateError(err); } return result; } } }
public async Task<AsyncResult> UpdatePrice(ProductPriceUpdate[] prices) { var succeed = false; var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = JsonConvert.SerializeObject(prices); using (var content = new StringContent(data, Encoding.UTF8, "application/json")) { var uri = new Uri("api/products/updatePrice", UriKind.Relative); var resp = await client.PutAsync(uri, content); if (resp.StatusCode == HttpStatusCode.OK) { succeed = true; } } } return new AsyncResult { Succeed = succeed }; }
public async Task<AsyncResult> DetachFiles(string productId, string[] fileIds) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var q = string.Join(",", fileIds); var uriString = string.Format("api/products/{0}/files?ids={1}", productId, q); var uri = new Uri(uriString, UriKind.Relative); var resp = await client.DeleteAsync(uri); return new AsyncResult { Succeed = resp.StatusCode == HttpStatusCode.OK }; } }
public async Task<AsyncResult<FileDescription[]>> GetFiles(string productId) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var uriString = string.Format("api/products/{0}/files", productId); var uri = new Uri(uriString, UriKind.Relative); var str = await client.GetStringAsync(uri); var res = JsonConvert.DeserializeObject<FileDescription[]>(str); return new AsyncResult<FileDescription[]> { Result = res, Succeed = true }; } }
public async Task<AsyncResult> AttachFile(string productId, string fileId) { var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var uriString = string.Format("api/products/{0}/files", productId); var uri = new Uri(uriString, UriKind.Relative); var data = new Dictionary<string, string> { {"fileId", fileId} }; using (var content = new FormUrlEncodedContent(data)) { var resp = await client.PostAsync(uri, content); if (resp.StatusCode == HttpStatusCode.Created) { return new AsyncResult { Succeed = true }; } } } return new AsyncResult { Succeed = false }; }
public async Task<AsyncResult> Delete(List<string> ids) { var succeed = false; var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var q = string.Join(",", ids); var uriString = string.Concat("api/products?ids=", q); var uri = new Uri(uriString, UriKind.Relative); var resp = await client.DeleteAsync(uri); if (resp.StatusCode == HttpStatusCode.OK) { succeed = true; } } return new AsyncResult { Succeed = succeed }; }
public async Task<AsyncResult> UpdateUser(User user) { var result = new AsyncResult(); var token = authStore.LoadToken(); using (var client = new BearerHttpClient(token.AccessToken)) { var data = JsonConvert.SerializeObject(user); using (var content = new StringContent(data, Encoding.UTF8, "application/json")) { var uri = new Uri("api/users", UriKind.Relative); using (var resp = await client.PutAsync(uri, content)) { if (resp.StatusCode == HttpStatusCode.OK) { result.Succeed = true; } } } } return result; }