Exemplo n.º 1
0
        public async Task ApproveReservationRequest(ReservationPreviewDTO reservation)
        {
            var        db           = _connectionMultiplexer.GetDatabase();
            var        reservations = db.StreamRead($"reservation:{ reservation.SerialNumber}:request", "0-0");
            RedisValue idEntryUser  = new RedisValue();
            bool       exists       = false;

            foreach (StreamEntry entry in reservations)
            {
                if (entry.Values[0].Name == reservation.UsernameRentee)
                {
                    idEntryUser = entry.Id;
                    var newEntry = JsonSerializer.Deserialize <ReservationPreviewDTO>(entry.Values[0].Value);
                    if (newEntry.RenterList.StartTime == reservation.RenterList.StartTime &&
                        newEntry.RenterList.Period == reservation.RenterList.Period)
                    {
                        exists = true;
                    }
                    break;
                }
            }
            if (exists)
            {
                db.StreamDelete($"reservation:{reservation.SerialNumber}:request", new[] { idEntryUser });
                await _sonyRepository.ReservedMySony(reservation.SerialNumber, reservation.UsernameRentee, reservation.RenterList);
            }
        }
Exemplo n.º 2
0
        //public string SerialNumber { get; set; }
        //public string UsernameRentee { get; set; }
        //public RenterListDTO RenterList { get; set; }
        //public string StartTime { get; set; }
        //public string Period { get; set; }
        //public string Address { get; set; }
        //public string Joystick { get; set; }
        //public string Notes { get; set; }

        public Task CancelReservation(ReservationPreviewDTO previe)
        {
            var result = _client.Cypher.Match(@"(sony:Sony), (rentee:Rentee").Where((Sony sony) => sony.SerialNumber == previe.SerialNumber)
                         .Match(@"(sony)-[r:RESERVED_BY]-(rentee)")
                         .Delete("(r)")
                         .ExecuteWithoutResultsAsync();

            return(result);
        }
Exemplo n.º 3
0
        public async Task <IEnumerable <ReservationPreviewDTO> > GetAllReservationRequestForSony(string serialNumber)
        {
            List <ReservationPreviewDTO> requestsResponse = new List <ReservationPreviewDTO>();
            string    setKey   = $"reservation:{serialNumber}:request";
            IDatabase redisDB  = _connectionMultiplexer.GetDatabase();
            var       requests = redisDB.StreamRead(setKey, "0-0");

            foreach (var entry in requests)
            {
                ReservationPreviewDTO req = JsonSerializer.Deserialize <ReservationPreviewDTO>(entry.Values[0].Value);
                requestsResponse.Add(req);
            }
            return(requestsResponse);
        }
Exemplo n.º 4
0
        public async Task <List <ReservationPreviewDTO> > GetReservedSonys(string UsernameRenterer)
        {
            var result = await _client.Cypher.Match(@"(renterer:Renterer {Username:"******"\"" + UsernameRenterer + "\"" + "}) -[r:OWN]->(sony:Sony) - [rel:RESERVED_BY] ->(rentee:Rentee)")
                         .Return((rel, sony, rentee) => new
            {
                ReservedPattern = rel.As <RenterListDTO>(),
                Sony            = sony.As <Sony>(),
                Rentee          = rentee.As <Rentee>()
            })
                         .ResultsAsync;

            List <ReservationPreviewDTO> list = new List <ReservationPreviewDTO>();

            foreach (var indeks in result)
            {
                ReservationPreviewDTO rdto = new ReservationPreviewDTO();
                rdto.SerialNumber   = indeks.Sony.SerialNumber;
                rdto.RenterList     = indeks.ReservedPattern;
                rdto.UsernameRentee = indeks.Rentee.Username;
                list.Add(rdto);
            }
            return(list);
        }
Exemplo n.º 5
0
 public async Task ApproveReservationRequest([FromBody] ReservationPreviewDTO reservation)
 {
     await _reservationService.ApproveReservationRequest(reservation);
 }
Exemplo n.º 6
0
 public async Task CancelReservation([FromBody] ReservationPreviewDTO reservation)
 {
     await _reservationService.CancelReservationRequest(reservation);
 }
Exemplo n.º 7
0
 public async Task ApproveReservationRequest(ReservationPreviewDTO reservation)
 {
     await _reservationRepository.ApproveReservationRequest(reservation);
 }
Exemplo n.º 8
0
 public async Task CancelReservationRequest(ReservationPreviewDTO reservation)
 {
     await _reservationRepository.CancelReservationRequest(reservation);
 }
Exemplo n.º 9
0
 public Task CancelReservation(ReservationPreviewDTO previe)
 {
     return(this._sonyRepository.CancelReservation(previe));
 }
Exemplo n.º 10
0
        public async Task AddNewReservationRequest(ReservationPreviewDTO reservation)
        {
            var db = _connectionMultiplexer.GetDatabase();

            db.StreamAdd($"reservation:{reservation.SerialNumber}:request", reservation.UsernameRentee, JsonSerializer.Serialize(reservation));
        }
Exemplo n.º 11
0
 public Task CancelReservation([FromBody] ReservationPreviewDTO preview)
 {
     return(_rentererService.CancelReservation(preview));
 }
Exemplo n.º 12
0
 public Task <Sony> ReservedMySony(ReservationPreviewDTO reservationPreviewDTO)
 {
     return(_rentererService.ReservedMySony(reservationPreviewDTO.SerialNumber, reservationPreviewDTO.UsernameRentee, reservationPreviewDTO.RenterList));
 }