Example #1
0
        public ActionResult Anfrage(Reservierung reservierung)
        {
            if (reservierung == null)
            {
                return(RedirectToAction("Anfrage"));
            }

            if (!ModelState.IsValid)
            {
                return(View(reservierung));
            }
            else
            {
                rep = new RepositoryReservierungDB();

                rep.Open();
                if (rep.Insert(reservierung))
                {
                    return(View("Message", new Message("Anfrage", "Ihre Anfrage wurden erfolgreich abgespeichert")));
                }
                else
                {
                    rep.Close();
                    return(View("Message", new Message("Anfrage", "Ihre Anfrage konnten nicht gespeichert werden")));
                }
            }
        }
        public async Task ReservierungBestaetigenAsync(Reservierung reservierung)
        {
            var angebot = await _angebotService.LoadAngebotAsync(reservierung.AnbieterID + "/" + reservierung.AngebotID, DateTime.MinValue);

            if (_loginService.AnbieterId != reservierung.AnbieterID)
            {
#if DEBUG
                _notificationService.SendScheduledReservierungNotificationAsync("Reservierungs-Erinnerung!", "'" + angebot.Ueberschrift + "' wurde für dich morgen reserviert - denke an die Abholung!", DateTimeOffset.Now.AddSeconds(10));
#endif
                _notificationService.SendScheduledReservierungNotificationAsync("Reservierungs-Erinnerung!", "'" + angebot.Ueberschrift + "' wurde für dich morgen reserviert - denke an die Abholung!", reservierung.Zeitraum.Von.AddDays(-1).Date);
            }

            List <Reservierung> reservierungen = new List <Reservierung>();
            try
            {
                var reservierungenVault = _vault.Retrieve(NUTZ_MICH_RES, _loginService.AnbieterId);
                var savedRes            = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Reservierung> >(reservierungenVault.Password);
                reservierungen.AddRange(savedRes);
                _vault.Remove(reservierungenVault);
            }
            catch { }

            reservierungen.Add(reservierung);

            _vault.Add(new PasswordCredential(NUTZ_MICH_RES, _loginService.AnbieterId, Newtonsoft.Json.JsonConvert.SerializeObject(reservierungen)));
        }
 public static string DeleteReservierung(Reservierung reservierung)
 {
     try
     {
         string json = JsonConvert.SerializeObject(reservierung);
         return(DELETE(json, _WebService.Reservierung));
     }
     catch (Exception e)
     {
         return(e.Message);
     }
 }
        public async Task <string> CheckReservierungAsync(Reservierung reservierung)
        {
            var reservierungen = await GetReservierungenAsync(reservierung.AnbieterID, reservierung.AngebotID);

            foreach (var res in reservierungen)
            {
                if ((res.Von < reservierung.Zeitraum.Von && reservierung.Zeitraum.Von < res.Bis) || //Von überschneidet sich
                    (res.Von < reservierung.Zeitraum.Bis && reservierung.Zeitraum.Bis < res.Bis) || //Bis überschneidet sich
                    (reservierung.Zeitraum.Von < res.Von && res.Bis < reservierung.Zeitraum.Bis))   //Bestehende Reservierung würde "geschluckt"
                {
                    return("In diesem Zeitraum liegt bereits eine Reservierung.");
                }
            }
            return("");
        }
Example #5
0
        private void CheckReservierungData(Reservierung user)
        {
            if (user == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(user.Firstname.Trim()))
            {
                ModelState.AddModelError("Firstname", "Nachname ist ein Pflichtfeld.");
            }

            if (string.IsNullOrEmpty(user.Lastname.Trim()))
            {
                ModelState.AddModelError("Lastname", "Benutzername ist ein Pflichtfeld.");
            }
        }
Example #6
0
        public bool Insert(Reservierung reservierung)
        {
            if (reservierung == null)
            {
                return(false);
            }

            DbCommand cmdInsert = this._connection.CreateCommand();

            cmdInsert.CommandText = "INSERT INTO users VALUES(null, @firstname, @lastname, @arrivalDatem @departureDate)";

            DbParameter paramFN = cmdInsert.CreateParameter();

            paramFN.ParameterName = "firstname";
            paramFN.Value         = reservierung.Firstname;
            paramFN.DbType        = DbType.String;

            DbParameter paramLN = cmdInsert.CreateParameter();

            paramLN.ParameterName = "lastname";
            paramLN.Value         = reservierung.Lastname;
            paramLN.DbType        = DbType.String;

            DbParameter paramArrivalDate = cmdInsert.CreateParameter();

            paramArrivalDate.ParameterName = "arrivalDate";
            paramArrivalDate.Value         = reservierung.ArrivalDate;
            paramArrivalDate.DbType        = DbType.Date;

            DbParameter paramDepartureDate = cmdInsert.CreateParameter();

            paramDepartureDate.ParameterName = "departureDate";
            paramDepartureDate.Value         = reservierung.DepartureDate;
            paramDepartureDate.DbType        = DbType.Date;


            //Parameter mit dem command verbinden
            cmdInsert.Parameters.Add(paramFN);
            cmdInsert.Parameters.Add(paramLN);
            cmdInsert.Parameters.Add(paramArrivalDate);
            cmdInsert.Parameters.Add(paramDepartureDate);

            return(cmdInsert.ExecuteNonQuery() == 1);
        }
Example #7
0
        public ActionResult Anfrage(Reservierung user)
        {
            // Parameter user:hier sind die eingegebenen Daten des Formulars enthalten

            if (user == null)
            {
                return(RedirectToAction("Registration"));
            }
            //2. Formulardaten überprüfen - muss immer gemacht werden
            //      auch wenn z.b das Formular mit HIlfe von JavaScript
            //      überprüft wurde
            CheckReservierungData(user);

            //falls Fehler vorhanden sind
            if (!ModelState.IsValid)
            {
                // wird rufen das FOrmular erneut auf
                //      das Formular wird mit dem vorhergehenden Werten befüllt
                return(View(user));
            }
            else
            {
                // eine Instanz unserer DB-Klasse erzeugen
                rep = new RepositoryReservierungDB();

                // Verbindung zum BD-Server herstellen
                rep.Open();

                // versuchen die Userdaten einzutragen
                if (rep.Insert(user))
                {
                    // Verbindung schließen
                    rep.Close();
                    // Erfolgsmeldung ausgeben
                    return(View("Message", new Message("Reservierung", "Ihre Daten wurde erfolgreich abgespeichert")));
                }
                else
                {
                    rep.Close();
                    // Fehlermeldung ausgeben
                    return(View("Message", new Message("Reservierung", "Ihre Daten konnten nicht abgespeichert werden")));
                }
            }
        }
        private void ReserveOnDB(Spielzeug spielzeug, DateTime datumVon, DateTime datumBis)
        {
            Reservierung reservierung = new Reservierung()
            {
                SpielzeugId = spielzeug.SpielzeugId,
                Spielzeug   = spielzeug,
                DatumVon    = datumVon,
                DatumBis    = datumBis
            };

            db.Reservierungs.Add(reservierung);
            if (spielzeug.Reservierungen == null)
            {
                spielzeug.Reservierungen = new List <Reservierung>();
            }
            spielzeug.Reservierungen.Add(reservierung);
            db.Entry(spielzeug).State = EntityState.Modified;
            db.SaveChanges();
        }
        public async Task <bool> SaveReservierungAsync(Reservierung reservierung)
        {
            await InitWriteConnectionAsync();

            try
            {
                var reservierungBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(reservierung));
                var upload            = await _writeConnection.ObjectService.UploadObjectAsync(_writeConnection.Bucket, "Angebote/" + reservierung.AnbieterID + "/" + reservierung.AngebotID + "/Reservierungen/" + GetTimeStamp(reservierung.Zeitraum), new uplink.NET.Models.UploadOptions()
                {
                    Expires = reservierung.Zeitraum.Bis.DateTime.AddDays(1)
                }, reservierungBytes, false);

                await upload.StartUploadAsync();

                return(upload.Completed);
            }
            catch
            {
                return(false);
            }
        }
Example #10
0
        private async void _chatPollingService_NachrichtErhalten(Contracts.Models.Angebot angebot, Models.ChatNachricht nachricht)
        {
            var profil = await _profilService.GetProfilAsync(nachricht.SenderAnbieterID);

            if (!string.IsNullOrEmpty(nachricht.TechnischerNachrichtenTyp) && nachricht.TechnischerNachrichtenTyp == Reservierung.TECHNISCHER_NACHRICHTENTYP)
            {
                await Factory.GetNotificationService().SendChatNotificationAsync(profil.Nickname + " - " + angebot.Ueberschrift, Reservierung.GetChatMessageText(nachricht.Nachricht), angebot.Id, nachricht.SenderAnbieterID);
            }
            else
            {
                await Factory.GetNotificationService().SendChatNotificationAsync(profil.Nickname + " - " + angebot.Ueberschrift, nachricht.Nachricht, angebot.Id, nachricht.SenderAnbieterID);
            }
        }
        public bool Insert(Reservierung user)
        {
            // 1. Parameter überprüfen
            if (user == null)
            {
                return(false);
            }

            // ein leeres SQL-Comamnd erzeugen
            DbCommand cmdInsert = this._connection.CreateCommand();

            // @firstname, @lastname, ... Paramter => verhindern SQL-Injections
            // müssen immer verwendet werden wenn es sich um Daten des Benutzers handelt
            // @ firstname ... firstname kann beliebig benannt werden
            cmdInsert.CommandText = "Insert Into reservierung Values(null, @firstname, @lastname, @bearbeitet, @ankunftsdatum, @abreisedatum, @personen)";

            // Parameter erzeugt
            DbParameter paramFN = cmdInsert.CreateParameter();

            paramFN.ParameterName = "firstname";
            paramFN.Value         = user.Firstname;
            paramFN.DbType        = DbType.String;

            DbParameter paramLN = cmdInsert.CreateParameter();

            paramLN.ParameterName = "lastname";
            paramLN.Value         = user.Lastname;
            paramLN.DbType        = DbType.String;

            DbParameter parambe = cmdInsert.CreateParameter();

            parambe.ParameterName = "bearbeitet";
            parambe.Value         = user.Bearbeitet;
            parambe.DbType        = DbType.Boolean;

            DbParameter paramAnkunft = cmdInsert.CreateParameter();

            paramAnkunft.ParameterName = "ankunftsdatum";
            paramAnkunft.Value         = user.Ankunftsdatum;
            paramAnkunft.DbType        = DbType.Date;

            DbParameter paramAbreise = cmdInsert.CreateParameter();

            paramAbreise.ParameterName = "abreisedatum";
            paramAbreise.Value         = user.Abreisedatum;
            paramAbreise.DbType        = DbType.Date;

            DbParameter paramPerson = cmdInsert.CreateParameter();

            paramPerson.ParameterName = "personen";
            paramPerson.Value         = user.Personen;
            paramPerson.DbType        = DbType.Int32;

            // Parameteer mit dem Comamnd verbinden
            cmdInsert.Parameters.Add(paramFN);
            cmdInsert.Parameters.Add(paramLN);
            cmdInsert.Parameters.Add(parambe);
            cmdInsert.Parameters.Add(paramAnkunft);
            cmdInsert.Parameters.Add(paramAbreise);
            cmdInsert.Parameters.Add(paramPerson);


            // ExecuteNonQuery() ... wird bein INSERT, UPDATE, und DELETE verwendet diese Methode liefert die ANzahl der betroffenen Datensätze zurück
            return(cmdInsert.ExecuteNonQuery() == 1);
        }
        public bool UpdateUserData(int id, Reservierung newUserData)
        {
            DbCommand cmdUpdate = this._connection.CreateCommand();

            cmdUpdate.CommandText = "UPDATE reservierung SET firstname=@firstname, lastname=@lastname, bearbeitet=@bearbeitet + " +
                                    "ankunftsdatum=@ankunftsdatum, abreisedatum=@abreisedatum, personen=@personen + " +
                                    "WHERE id=@resId";

            DbParameter paramId = cmdUpdate.CreateParameter();

            paramId.ParameterName = "resId";
            paramId.Value         = newUserData.ID;
            paramId.DbType        = DbType.Int32;

            DbParameter paramFirstname = cmdUpdate.CreateParameter();

            paramFirstname.ParameterName = "firstname";
            paramFirstname.Value         = newUserData.Firstname;
            paramFirstname.DbType        = DbType.String;

            DbParameter paramLastname = cmdUpdate.CreateParameter();

            paramLastname.ParameterName = "lastname";
            paramLastname.Value         = newUserData.Lastname;
            paramLastname.DbType        = DbType.String;

            DbParameter parambe = cmdUpdate.CreateParameter();

            parambe.ParameterName = "bearbeitet";
            parambe.Value         = newUserData.Bearbeitet;
            parambe.DbType        = DbType.Boolean;

            DbParameter paramAnkunft = cmdUpdate.CreateParameter();

            paramAnkunft.ParameterName = "ankunftsdatum";
            paramAnkunft.Value         = newUserData.Ankunftsdatum;
            paramAnkunft.DbType        = DbType.Date;

            DbParameter paramAbreise = cmdUpdate.CreateParameter();

            paramAbreise.ParameterName = "abreisedatum";
            paramAbreise.Value         = newUserData.Abreisedatum;
            paramAbreise.DbType        = DbType.Date;

            DbParameter paramPerson = cmdUpdate.CreateParameter();

            paramPerson.ParameterName = "personen";
            paramPerson.Value         = newUserData.Personen;
            paramPerson.DbType        = DbType.Int32;


            cmdUpdate.Parameters.Add(paramId);
            cmdUpdate.Parameters.Add(paramFirstname);
            cmdUpdate.Parameters.Add(paramLastname);
            cmdUpdate.Parameters.Add(parambe);
            cmdUpdate.Parameters.Add(paramAnkunft);
            cmdUpdate.Parameters.Add(paramAbreise);
            cmdUpdate.Parameters.Add(paramPerson);


            return(cmdUpdate.ExecuteNonQuery() == 1);
        }
 public ReservierungViewModel()
 {
     Reservierung = new Reservierung();
 }
        public async Task <bool> Run(JobInfo jobInfo, CancellationToken cancelToken)
        {
            if (!_loginService.IsLoggedIn())
            {
                return(true);
            }

            var erhalteneNachrichten = new List <ChatNachricht>();

            await foreach (var angebot in _angebotService.GetMeineAsync())
            {
                var nachrichten = await _chatService.GetNachrichtenAsync(angebot, true);

                foreach (var nachricht in nachrichten)
                {
                    erhalteneNachrichten.Add(nachricht);
                }
            }

            var buffered = _chatBufferService.LoadBufferedChats();

            foreach (var chat in buffered)
            {
                var nachrichten = await _chatService.GetNachrichtenAsync(await _angebotService.LoadAngebotAsync(chat.AnbieterID + "/" + chat.AngebotID, DateTime.MinValue), true);

                foreach (var nachricht in nachrichten)
                {
                    erhalteneNachrichten.Add(nachricht);
                }
            }
            foreach (var nachricht in erhalteneNachrichten)
            {
                if (!string.IsNullOrEmpty(nachricht.TechnischerNachrichtenTyp) && nachricht.TechnischerNachrichtenTyp == Reservierung.TECHNISCHER_NACHRICHTENTYP)
                {
                    _notification.SendChatNotificationAsync(nachricht.SenderAnbieterID, Reservierung.GetChatMessageText(nachricht.Nachricht), nachricht.AngebotID, nachricht.SenderAnbieterID);
                }
                else
                {
                    _notification.SendChatNotificationAsync(nachricht.SenderAnbieterID, nachricht.Nachricht, nachricht.AngebotID, nachricht.SenderAnbieterID);
                }
            }
            return(true);
        }