public async Task CreateSheets(ICollection <string> names)
        {
            var urlBuilder = URLBuilder.BatchUpdate(ID);
            var value      = AddSheetRequestBodyAdapter.GetAddSheetRequestBody(names);

            var responseHandler = new Action <string>(str =>
            {
                var jObject      = JObject.Parse(str);
                var replies      = jObject["replies"];
                var repliesArray = replies.Select(t => t);

                foreach (var addSheet in repliesArray)
                {
                    var properties = addSheet["addSheet"]["properties"];

                    var id    = properties["sheetId"];
                    var title = properties["title"];

                    var googleSheet = new Sheet(id.Value <int>(), title.Value <string>());
                    Sheets.Add(googleSheet);
                }

                Debug.Log(nameof(CreateSheets) + string.Join("\n", names.ToArray()));
            });

            await RequestExecutor.SendRequestAsync(urlBuilder, value, responseHandler);
        }
Example #2
0
        public async Task <List <PassInfo> > CallAPI(string accessCode)
        {
            // how to call rest API
            //https://stackoverflow.com/questions/22627296/how-to-call-rest-api-from-a-console-application/22627481
            //https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client
            // best method
            //https://blog.jayway.com/2012/03/13/httpclient-makes-get-and-post-very-simple/
            try
            {
                // calls url builder utility which builds the URL to send via http client

                var        url      = URLBuilder.BuildURL(accessCode);
                HttpClient client   = new HttpClient();
                var        response = await client.GetAsync(url);

                response.EnsureSuccessStatusCode();
                string content = await response.Content.ReadAsStringAsync();

                //Console.WriteLine(content);
                // this works!!!
                List <PassInfo> pass = JsonConvert.DeserializeObject <List <PassInfo> >(content);

                // how to order model object in-place (which is more efficient since you don't have to
                // create a whole new object): https://stackoverflow.com/questions/3309188/how-to-sort-a-listt-by-a-property-in-the-object

                pass.Sort((x, y) => x.MountainPassId.CompareTo(y.MountainPassId));
                return(pass);
            }

            // catch block
            catch (HttpRequestException ex)
            {
                throw new HttpRequestException(ex.ToString());
            }
        }
        public async Task Submit()
        {
            LoginChoice    = Visibility.Visible;
            RegisterChoice = Visibility.Collapsed;
            using (var client = new HttpClient())
            {
                AuthenticationDto content = createAuthencticationDto();
                var json = Newtonsoft.Json.JsonConvert.SerializeObject(content);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                URLBuilder url     = new URLBuilder("/api/User/");
                var        request = new HttpRequestMessage()
                {
                    RequestUri = new Uri(url.URL),
                    Method     = HttpMethod.Post,
                    Content    = new StringContent(json,
                                                   Encoding.UTF8,
                                                   "application/json")
                };
                var response = await client.SendAsync(request);

                if (!response.IsSuccessStatusCode)
                {
                    ErrorString = (string)Application.Current.FindResource("RegistrationError");
                    return;
                }
                var contents = await response.Content.ReadAsStringAsync();

                AuthenticationDto result = JsonConvert.DeserializeObject <AuthenticationDto>(contents);
                User.UserId = result.UserId;
            }
        }
Example #4
0
        public async Task LoadSpreadsheets()
        {
            Spreadsheets.Clear();

            var urlBuilder = URLBuilder.GetSpreadsheets().AddOrderBy("createdTime").
                             AddRequest("mimeType = 'application/vnd.google-apps.spreadsheet' and 'me' in owners and trashed = false");

            Utils.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", GoogleDataStorage.Instance.AccessToken);
            using (var response = await Utils.HttpClient.GetAsync(urlBuilder.GetURL()))
            {
                var content = await response.Content.ReadAsStringAsync();

                var jContainer = JsonConvert.DeserializeObject(content) as JContainer;

                foreach (var jToken in jContainer)
                {
                    var jProperty = jToken as JProperty;

                    if (jProperty.Name == "files")
                    {
                        foreach (var file in jProperty.Values())
                        {
                            var fileInfo = file as JObject;

                            Spreadsheets.Add(new Spreadsheet(fileInfo["id"].ToString(), fileInfo["name"].ToString()));
                        }
                    }
                }
            }
        }
        private async Task ReadGoogleSheets()
        {
            var urlBuilder = URLBuilder.GetSheetsValues(ID).
                             AddApiKey(GoogleDataStorage.Instance.ApiKey).
                             AddRanges(Sheets.Select(item => item.Name)).
                             AddValueRenderOption("FORMULA");

            using (var response = await Utils.HttpClient.GetAsync(urlBuilder.GetURL()))
            {
                var content = await response.Content.ReadAsStringAsync();

                var jObject = JObject.Parse(content);

                var valueRanges = jObject["valueRanges"].Select(t => t);

                for (int i = 0; i < valueRanges.Count(); i++)
                {
                    var range = valueRanges.ElementAt(i);

                    if (range["values"] == null)
                    {
                        continue;
                    }

                    var valuesToken = range["values"].Select(t => t);

                    Sheets.ElementAt(i).Parse(valuesToken);
                }
            }
        }
        public async Task SubmitCommand()
        {
            using (var client = new HttpClient())
            {
                AuthenticationDto content = createAuthencticationDto();

                var json = Newtonsoft.Json.JsonConvert.SerializeObject(content);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                URLBuilder url     = new URLBuilder("/api/User/");
                var        request = new HttpRequestMessage()
                {
                    RequestUri = new Uri(url.URL),
                    Method     = HttpMethod.Put,
                    Content    = new StringContent(json,
                                                   Encoding.UTF8,
                                                   "application/json")
                };
                request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", User.UserId.ToString(), _realSecure.ToString()))));
                var response = await client.SendAsync(request);

                if (!response.IsSuccessStatusCode)
                {
                    ErrorString = (string)System.Windows.Application.Current.FindResource("RegistrationError");
                    return;
                }
                else
                {
                    ErrorString = (string)System.Windows.Application.Current.FindResource("SuccessfullAccountUpdate");
                }
                var contents = await response.Content.ReadAsStringAsync();

                AuthenticationDto result = JsonConvert.DeserializeObject <AuthenticationDto>(contents);
            }
        }
    public async Task RefreshAccessToken()
    {
        if (_lastCheck != null && (DateTime.Now - _lastCheck.Value).Seconds < REMAINING_TIME_TO_REFRESH_ACCESS_TOKEN)
        {
            Debug.Log("Access token is valid");

            return;
        }

        var urlBuilder = URLBuilder.UpdateAccessToken().
                         AddClientId(_clientId).
                         AddClientSecret(_clientSecret).
                         AddRefreshToken(_refreshToken).
                         AddGrantType("refresh_token");

        using (var response = await Utils.HttpClient.PostAsync(urlBuilder.GetURL(), null))
        {
            var content = await response.Content.ReadAsStringAsync();

            var jObjectResponse = JObject.Parse(content);

            _accessToken = (string)jObjectResponse["access_token"];

            _lastCheck = DateTime.Now;

            Debug.Log("Update access token: " + _lastCheck);
        }
    }
        public async Task Load()
        {
            using (var client = new HttpClient())
            {
                URLBuilder url = new URLBuilder(_filter, controler);
                url.URL += "&ShowMyOffers=true";
                var request = new HttpRequestMessage()
                {
                    RequestUri = new Uri(url.URL),
                    Method     = HttpMethod.Get
                };
                request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", _authenticationUser.UserId.ToString(), _authenticationUser.Password))));
                var response = await client.SendAsync(request);

                var contents = await response.Content.ReadAsStringAsync();

                List <ProductDto> result = JsonConvert.DeserializeObject <List <ProductDto> >(contents);
                Products.Clear();

                foreach (ProductDto p in result)
                {
                    ProductWrapper product = p.createProduct();
                    Products.Add(product);
                }
            }
        }
        public async Task Update()
        {
            if (SelectedProduct != null)
            {
                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    ProductDto content = createProductDto(_selectedProduct);

                    var        json    = Newtonsoft.Json.JsonConvert.SerializeObject(content);
                    URLBuilder url     = new URLBuilder(controler);
                    var        request = new HttpRequestMessage()
                    {
                        RequestUri = new Uri(url.URL),
                        Method     = HttpMethod.Put,
                        Content    = new StringContent(json,
                                                       Encoding.UTF8,
                                                       "application/json")
                    };
                    request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", _authenticationUser.UserId.ToString(), _authenticationUser.Password))));
                    var response = await client.SendAsync(request);

                    if (!response.IsSuccessStatusCode)
                    {
                        ErrorString = (string)Application.Current.FindResource("UpdateProductError");
                        return;
                    }
                    if (SelectedProduct.Stock == 0)
                    {
                        Products.Remove(SelectedProduct);
                    }
                }
                ErrorString = null;
            }
        }
        public async Task LoadGoogleSheets()
        {
            Sheets.Clear();

            var urlBuilder = URLBuilder.GetSheets(ID)
                             .AddApiKey(GoogleDataStorage.Instance.ApiKey)
                             .AddFields("sheets(properties(sheetId,title))");

            using (var response = await Utils.HttpClient.GetAsync(urlBuilder.GetURL()))
            {
                var content = await response.Content.ReadAsStringAsync();

                var jContainer = JsonConvert.DeserializeObject(content) as JContainer;

                var sheetInfo = from sheet in jContainer["sheets"].Children()["properties"]
                                select new { title = sheet["title"], id = sheet["sheetId"] };

                foreach (var sheet in sheetInfo)
                {
                    Sheets.Add(new Sheet(Convert.ToInt32(sheet.id.ToString()), sheet.title.ToString()));
                }
            }

            await ReadGoogleSheets();
        }
        public async Task <Expenses> DeleteExpense(Expenses expense)
        {
            var url = URLBuilder.GetURL(Controllers.FINANCE, EndPoint.FINANCE_EXPENSES_DELETE);

            return(await requestProvider.DeleteAsync(url, expense, new Dictionary <string, string> {
                ["id"] = expense.Id.ToString()
            }));
        }
        public async Task <Employees> DeleteEmployee(Employees employees)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_EMPLOYEE_DELETE);

            return(await requestProvider.DeleteAsync(url, employees, new Dictionary <string, string> {
                ["id"] = employees.Id.ToString()
            }));
        }
        public async Task <ReagentBillEntries> DeleteReagentEntry(ReagentBillEntries reagentEntry)
        {
            var url = URLBuilder.GetURL(Controllers.REAGENT, EndPoint.REAGENT_ENTRY_DELETE);

            return(await requestProvider.DeleteAsync(url, reagentEntry, new Dictionary <string, string> {
                ["id"] = reagentEntry.Id.ToString()
            }));
        }
        public async Task <PatientBillPayment> DeletePatientBillPayment(PatientBillPayment patientBillPayment)
        {
            var url = URLBuilder.GetURL(Controllers.FINANCE, EndPoint.FINANCE_PATIENT_BILL_PAYMENT_DELETE);

            return(await requestProvider.DeleteAsync(url, patientBillPayment, new Dictionary <string, string> {
                ["id"] = patientBillPayment.Id.ToString()
            }));
        }
        public async Task <SignaturePrototypes> DeleteSignature(SignaturePrototypes signature)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_SIGNATURE_DELETE);

            return(await requestProvider.DeleteAsync(url, signature, new Dictionary <string, string> {
                ["id"] = signature.Id.ToString()
            }));
        }
        public async Task <HdlRegistration> DeleteRateList(HdlRegistration hdlRegistration)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_RATE_LIST_DELETE);

            return(await requestProvider.DeleteAsync(url, hdlRegistration, new Dictionary <string, string> {
                ["id"] = hdlRegistration.Id.ToString()
            }));
        }
        public async Task <Inventories> DeleteInventory(Inventories inventory)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_INVENTORY_DELETE);

            return(await requestProvider.DeleteAsync(url, inventory, new Dictionary <string, string> {
                ["id"] = inventory.Id.ToString()
            }));
        }
        public async Task <FieldOptions> DeleteFieldOption(FieldOptions fieldOption)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_FIELD_OPTIONS_DELETE);

            return(await requestProvider.DeleteAsync(url, fieldOption, new Dictionary <string, string> {
                ["id"] = fieldOption.Id.ToString()
            }));
        }
        public async Task <TestReagentRelation> DeleteTestReagentRelation(TestReagentRelation testReagentRelation)
        {
            var url = URLBuilder.GetURL(Controllers.REAGENT, EndPoint.TEST_REAGENT_RELATIONS_DELETE);

            return(await requestProvider.DeleteAsync(url, testReagentRelation, new Dictionary <string, string> {
                ["id"] = testReagentRelation.Id.ToString()
            }));
        }
        public async Task <HdlBill> DeleteHdlBill(HdlBill bill)
        {
            var url = URLBuilder.GetURL(Controllers.FINANCE, EndPoint.FINANCE_HDL_BILL_DELETE);

            return(await requestProvider.DeleteAsync(url, bill, new Dictionary <string, string> {
                ["id"] = bill.Id.ToString()
            }));
        }
        public async Task <Abbrevations> DeleteAbbrevation(Abbrevations abbrevation)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_ABBREVATION_DELETE);

            return(await requestProvider.DeleteAsync(url, abbrevation, new Dictionary <string, string> {
                ["id"] = abbrevation.Id.ToString()
            }));
        }
        public async Task <OtherIncome> DeleteOtherIncome(OtherIncome otherIncome)
        {
            var url = URLBuilder.GetURL(Controllers.FINANCE, EndPoint.FINANCE_OTHER_INCOME_DELETE);

            return(await requestProvider.DeleteAsync(url, otherIncome, new Dictionary <string, string> {
                ["id"] = otherIncome.Id.ToString()
            }));
        }
Example #23
0
        public async Task <UsersDto> DeleteUser(UsersDto userDto)
        {
            var url = URLBuilder.GetURL(Controllers.USER, EndPoint.USER_DELETE);

            return(await requestProvider.DeleteAsync(url, userDto, new Dictionary <string, string> {
                ["id"] = userDto.Id.ToString()
            }));
        }
        public async Task <Salary> DeleteSalary(Salary salary)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_SALARY_DELETE);

            return(await requestProvider.DeleteAsync(url, salary, new Dictionary <string, string> {
                ["id"] = salary.Id.ToString()
            }));
        }
        public async Task <Dealers> DeleteDealer(Dealers dealer)
        {
            var url = URLBuilder.GetURL(Controllers.REAGENT, EndPoint.DEALER_DELETE);

            return(await requestProvider.DeleteAsync(url, dealer, new Dictionary <string, string> {
                ["id"] = dealer.Id.ToString()
            }));
        }
Example #26
0
        public async Task <PatientDto> DeletePatient(PatientDto patient)
        {
            var url = URLBuilder.GetURL(Controllers.PATIENT, EndPoint.PATIENT_DELETE);

            return(await requestProvider.DeleteAsync(url, patient, new Dictionary <string, string> {
                ["id"] = patient.Patient.Id.ToString()
            }));
        }
        public async Task <HdlRegistration> DeleteDhlRegistration(HdlRegistration registration)
        {
            var url = URLBuilder.GetURL(Controllers.MAINTENANCE, EndPoint.MAINTENANCE_DHL_REGISTRATION_DELETE);

            return(await requestProvider.DeleteAsync(url, registration, new Dictionary <string, string> {
                ["id"] = registration.Id.ToString()
            }));
        }
        public async Task <Formulas> DeleteForumula(Formulas formula)
        {
            var url = URLBuilder.GetURL(Controllers.TEST, EndPoint.TEST_FORMULA_DELETE);

            return(await requestProvider.DeleteAsync(url, formula, new Dictionary <string, string> {
                ["id"] = formula.Id.ToString()
            }));
        }
        public async Task <TestTitleDto> DeleteTestTitle(TestTitleDto responseModel)
        {
            var url = URLBuilder.GetURL(Controllers.TEST, EndPoint.TEST_TITLE_DELETE);

            return(await requestProvider.DeleteAsync(url, responseModel, new Dictionary <string, string> {
                ["id"] = responseModel.Id.ToString()
            }));
        }
        public async Task <ActionResult <UserDto> > Register(RegisterDto registerDto)
        {
            if (await UserExists(registerDto.Username))
            {
                return(BadRequest("Username already taken!"));
            }

            var user = _mapper.Map <AppUser>(registerDto);

            user.UserName = registerDto.Username.ToLower();
            user.Email    = registerDto.Email;

            var result = await _userManager.CreateAsync(user, registerDto.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            var roleResult = await _userManager.AddToRoleAsync(user, "Operator");

            if (!roleResult.Succeeded)
            {
                return(BadRequest(roleResult.Errors));
            }

            var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            string urlPath = "";
            var    env     = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            if (env.ToLower() == "development")
            {
                urlPath = _config["returnPaths:ConfirmEmail"];
            }
            else
            {
                urlPath = Environment.GetEnvironmentVariable("ReturnPaths:ConfirmEmail");
            }

            var confirmationLink = URLBuilder.BuildUrl(urlPath, token, user.Id.ToString());
            var message          = new Message(new string[] { user.Email }, "Confirmation Email Link",
                                               URLBuilder.BuildContext(URLBuilder.MessageType.ConfirmEmail, confirmationLink, user.UserName), null);
            await _emailSender.SendEmailAsync(message);

            return(new UserDto
            {
                Username = user.UserName,
                Token = await _tokenService.CreateToken(user),
                LastName = user.LastName,
                FirstName = user.FirstName,
                Created = user.Created
            });
        }