예제 #1
0
        private async void Button_Clicked(object sender, EventArgs e)
        {
            var StartRezerwacji  = Start;
            var KoniecRezerwacji = Start.AddMinutes(Double.Parse(IntervalPicker.SelectedItem.ToString()));
            var SelectedTable    = stoliks.First(x => x.NumerStolika == Int32.Parse(Stolik.SelectedItem.ToString()));
            var UserMail         = Main.User.Mail;


            var Rezerwacja = new RezerwacjaModel()
            {
                StartRezerwacji  = StartRezerwacji,
                KoniecRezerwacji = KoniecRezerwacji,
                Stolik           = SelectedTable,
                User             = Main.User.Mail,
                Status           = "Planned"
            };

            if (await CheckIfReservationCanBeDone(Rezerwacja))
            {
                if (await SendReservation(Rezerwacja))
                {
                    await DisplayAlert("Sukces", "Rezerwacja została dodana", "Ok");

                    rezerwacja = Rezerwacja;
                    await Navigation.PopModalAsync(true);
                }
            }
            else
            {
                await DisplayAlert("Error", "Wprowadzone termin jest zajety dla wybranego stolika", "Ok");
            }
        }
예제 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("RezerwacjaID,KomputerID,UzytkownikID,DataRozpoczecia,DataZakonczenia,DataPrzedluzona")] RezerwacjaModel rezerwacjaModel)
        {
            if (id != rezerwacjaModel.RezerwacjaID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(rezerwacjaModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RezerwacjaModelExists(rezerwacjaModel.RezerwacjaID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(rezerwacjaModel));
        }
 public async Task <ActionResult <RezerwacjaModel> > DodajRezerwacje([FromBody] RezerwacjaModel Rezerwacja)
 {
     if (await DBConnector.DodajRezerwacje(Rezerwacja))
     {
         return(Ok(Rezerwacja));
     }
     return(BadRequest(null));
 }
 public async Task <ActionResult <Boolean> > CheckRezerwacja([FromBody] RezerwacjaModel Rezerwacja)
 {
     if (await DBConnector.SprawdzCzyTerminDostepny(Rezerwacja))
     {
         return(BadRequest());
     }
     return(Ok());
 }
예제 #5
0
        internal async static Task <Boolean> SprawdzCzyTerminDostepny(RezerwacjaModel rezerwacja)
        {
            var MongoDBKlient        = dbClient.GetDatabase(DBName);
            var RezerwacjeCollection = MongoDBKlient.GetCollection <RezerwacjaModel>("Rezerwacje");
            var result   = (await RezerwacjeCollection.FindAsync <RezerwacjaModel>(x => true)).ToList();
            var reserved = result.Where(x => x.Stolik.KodRestauracji == rezerwacja.Stolik.KodRestauracji &&
                                        x.Stolik.KodRestauracji == rezerwacja.Stolik.KodRestauracji &&
                                        x.StartRezerwacji <= rezerwacja.StartRezerwacji &&
                                        x.KoniecRezerwacji >= rezerwacja.StartRezerwacji &&
                                        x.Status != "Expired");

            return(reserved.Any());
        }
        public async Task <ActionResult <RezerwacjaModel> > Put([FromBody] RezerwacjaModel Rezerwacja)
        {
            var tempRezerwacja = (await DBConnector.PobierzRezerwacjeUzytkownika(Rezerwacja.User)).First(x => x.ObjectId == Rezerwacja.ObjectId);

            if (tempRezerwacja != null && tempRezerwacja.Status == "Planned")
            {
                if (await DBConnector.EdytujRezerwacje(Rezerwacja))
                {
                    return(Ok(Rezerwacja));
                }
            }
            return(BadRequest(null));
        }
예제 #7
0
        internal async static Task <bool> EdytujRezerwacje(RezerwacjaModel rezerwacja)
        {
            try
            {
                var MongoDBKlient        = dbClient.GetDatabase(DBName);
                var RezerwacjeCollection = MongoDBKlient.GetCollection <RezerwacjaModel>("Rezerwacje");
                await RezerwacjeCollection.FindOneAndReplaceAsync(x => x.ObjectId == rezerwacja.ObjectId, rezerwacja);

                return(true);
            }
            catch (Exception err)
            {
            }
            return(false);
        }
예제 #8
0
        internal async static Task <bool> DodajRezerwacje(RezerwacjaModel rezerwacja)
        {
            try
            {
                var MongoDBKlient        = dbClient.GetDatabase(DBName);
                var RezerwacjeCollection = MongoDBKlient.GetCollection <RezerwacjaModel>("Rezerwacje");
                await RezerwacjeCollection.InsertOneAsync(rezerwacja);

                return(true);
            }
            catch (Exception err)
            {
            }
            return(false);
        }
예제 #9
0
        public async Task <IActionResult> Create([Bind("RezerwacjaID,KomputerID,UzytkownikID,DataRozpoczecia,DataZakonczenia,DataPrzedluzona")] RezerwacjaModel rezerwacjaModel)
        {
            if (ModelState.IsValid)
            {
                var komputery = await _context.KomputerModel.ToListAsync();

                if (komputery.Any(x => x.KomputerID == rezerwacjaModel.KomputerID))
                {
                    _context.Add(rezerwacjaModel);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ViewBag.Message = "Podane id komputera nie istnieje";
                }
            }
            return(View(rezerwacjaModel));
        }
예제 #10
0
        private async Task <bool> CheckIfReservationCanBeDone(RezerwacjaModel Rezerwacja)
        {
            using (var HttpConnector = new HttpApiConnector().GetClient())
            {
                var content     = JsonConvert.SerializeObject(Rezerwacja);
                var Buffer      = Encoding.UTF8.GetBytes(content);
                var byteContent = new ByteArrayContent(Buffer);
                byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var response = await HttpConnector.PostAsync(Constants.ConnectionApiUriRezerwacja + "Check/", byteContent);

                if (response.IsSuccessStatusCode)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
예제 #11
0
        private async Task <Boolean> SendReservation(RezerwacjaModel Rezerwacja)
        {
            using (var HttpConnector = new HttpApiConnector().GetClient())
            {
                var content     = JsonConvert.SerializeObject(Rezerwacja);
                var Buffer      = Encoding.UTF8.GetBytes(content);
                var byteContent = new ByteArrayContent(Buffer);
                byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                HttpConnector.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Application.Current.Properties["token"].ToString());

                var response = await HttpConnector.PostAsync(Constants.ConnectionApiUriRezerwacja, byteContent);

                if (response.IsSuccessStatusCode)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        private async Task <RestauracjaModel> DownlaodRestaurnatOnReservationCode(RezerwacjaModel rezerwacja)
        {
            RestauracjaModel tempRestaurantModel = null;

            try
            {
                using (var HttpConnector = new HttpApiConnector().GetClient())
                {
                    var result = await HttpConnector.GetAsync(Constants.ConnectionApiUriRestauracja);

                    if (result.IsSuccessStatusCode)
                    {
                        var Content = await result.Content.ReadAsStringAsync();

                        tempRestaurantModel = JsonConvert.DeserializeObject <List <RestauracjaModel> >(Content).ToList().First(x => x.KodRestauracji == rezerwacja.Stolik.KodRestauracji);
                    }
                }
            }
            catch (Exception er)
            {
                await DisplayAlert("Błąd", "Nie mozna pobrac miejsca docelowego", "Ok");
            }
            return(tempRestaurantModel);
        }