示例#1
0
        public StudentDTO GetStudent(string email)
        {
            // Create a filter that finds the student
            FilterDefinition <BsonDocument> query =
                Builders <BsonDocument> .Filter.Eq("email", email);

            var studentsFound = students.Find(query);

            if (studentsFound.CountDocuments() <= 0)
            {
                throw new System.Exception("Could not find student");
            }
            var        student = studentsFound.First();
            StudentDTO data    = new StudentDTO();

            data.name  = student["name"].ToString();
            data.email = student["email"].ToString();
            ClassDTO[] classes = new ClassDTO[student["classes"].AsBsonArray.Count];

            int idx = 0;

            foreach (var i in student["classes"].AsBsonArray)
            {
                var c    = new ClassDTO();
                var seat = new SeatDTO();
                seat.x       = i["seat"]["x"].ToInt32();
                seat.y       = i["seat"]["y"].ToInt32();
                c.className  = i["name"].ToString();
                c.seat       = seat;
                classes[idx] = c;
                idx++;
            }
            data.classes = classes;
            return(data);
        }
 public IResult Update(SeatDTO dto)
 {
     Repo.Update(Mapper.DeMap(dto));
     return(new Result()
     {
         Message = ResponseMessageType.None,
         ResponseStatusType = ResponseStatusType.Successed
     });
 }
示例#3
0
 private BLLStandard.DTO.SeatDTO FromSeatDTOToBLLStandardSeatDTO(SeatDTO seatDTO)
 {
     return(new BLLStandard.DTO.SeatDTO
     {
         Id = seatDTO.Id,
         AreaId = seatDTO.AreaId,
         Row = seatDTO.Row,
         Number = seatDTO.Number
     });
 }
示例#4
0
        public void Then_AssignSeatWithValidation_Throw_Exception_If_FlighNumber_Is_Empty()
        {
            //ARRANGE
            FlightDTO flightWhereToAssignSeats          = new FlightDTO(string.Empty, DateTime.Now.AddHours(3));
            SeatDTO   serviceLibrarySeatDTOToBeAssigned = new SeatDTO("A", "2");

            //ACT
            Sut.AssignSeatWithValidation(flightWhereToAssignSeats, serviceLibrarySeatDTOToBeAssigned);

            //ASSERT
        }
示例#5
0
        public void Update(SeatDTO obj)
        {
            if (!IsRowAndNumberUniqueByAreaId(obj.AreaId, obj.Row, obj.Number))
            {
                throw new Exception("Not a unique seat!");
            }

            repository.Update(new Seat {
                Id = obj.Id, AreaId = obj.AreaId, Row = obj.Row, Number = obj.Number
            });
        }
示例#6
0
        public void Then_AssignSeatWithValidation_Throw_Exception_If_SeatsDTO_is_Default()
        {
            //ARRANGE
            FlightDTO flightWhereToAssignSeats          = new FlightDTO("FN1", DateTime.Now.AddHours(3));
            SeatDTO   serviceLibrarySeatDTOToBeAssigned = default(SeatDTO);

            //ACT
            Sut.AssignSeatWithValidation(flightWhereToAssignSeats, serviceLibrarySeatDTOToBeAssigned);


            //ASSERT
        }
示例#7
0
        public void Then_AssignSeatWithValidation_Returns_True_If_SeatDTO_Is_Valid()
        {
            //ARRANGE
            FlightDTO flightWhereToAssignSeats          = new FlightDTO("FN1", DateTime.Now.AddHours(3));
            SeatDTO   serviceLibrarySeatDTOToBeAssigned = new SeatDTO("A", "2");

            //ACT
            bool actual = Sut.AssignSeatWithValidation(flightWhereToAssignSeats, serviceLibrarySeatDTOToBeAssigned);


            //ASSERT
            Assert.IsTrue(actual);
        }
 private void TheaterToDto(Theater theater, TheaterDTO dto)
 {
     dto.Id          = theater.Id;
     dto.TheaterName = theater.TheaterName;
     dto.IsActive    = theater.IsActive;
     foreach (var item in theater.Seats)
     {
         SeatDTO dtoSeat = new SeatDTO();
         dtoSeat.Id         = item.Id;
         dtoSeat.SeatNo     = item.SeatNo;
         dtoSeat.SeatTypeNo = item.SeatTypeNo;
         dto.Seats.Add(dtoSeat);
     }
 }
示例#9
0
 public async Task <bool> AddSeat(SeatDTO seatDTO)
 {
     try
     {
         var seat = mapper.Map <Seat>(seatDTO);
         db.Seats.Add(seat);
         await db.SaveAsync();
     }
     catch (Exception exc)
     {
         return(false);
     }
     return(true);
 }
 private void ValidateDTOsProperties(FlightDTO flight, SeatDTO seatDTO)
 {
     if (flight.Identifier != null && flight.Identifier.Length == 0)
     {
         throw new ArgumentException("Empty flightNumber");
     }
     if (flight.DepartureTime == null)
     {
         throw new ArgumentNullException("Null departureDate");
     }
     if (seatDTO == default(SeatDTO))
     {
         throw new ArgumentNullException("Null seatDTO");
     }
 }
示例#11
0
        public IEnumerable <Passenger> ChangeSeats(SeatDTO seatDTO) // Use seatNumber or passenger name?
        {
            Passenger passenger1 = _passengerRepository.GetPassengerBySeatNumber(seatDTO.SeatNumber1);
            Passenger passenger2 = _passengerRepository.GetPassengerBySeatNumber(seatDTO.SeatNumber2);

            passenger1.SeatNumber = seatDTO.SeatNumber2;
            passenger2.SeatNumber = seatDTO.SeatNumber1;
            _passengerRepository.SaveChanges();
            List <Passenger> passengers = new List <Passenger>()
            {
                passenger1, passenger2
            };

            return(passengers);
        }
示例#12
0
        public void Create_Correct_Seat()
        {
            //Arrange
            var seatDTO = new SeatDTO {
                AreaId = 1, Row = 1, Number = 1
            };

            //Act
            service.Create(seatDTO);
            var res = service.GetById(0);

            //Assert
            Assert.AreEqual(seatDTO.AreaId, res.AreaId);
            Assert.AreEqual(seatDTO.Row, res.Row);
            Assert.AreEqual(seatDTO.Number, res.Number);
        }
示例#13
0
        public void Try_To_Update_With_Incorrect_Seat()
        {
            //Arrange
            var seatDTO = new SeatDTO {
                AreaId = 1, Row = 1, Number = 1
            };

            //Act
            service.Create(seatDTO);
            var incorrectSeatDTOForUpdate = new SeatDTO {
                AreaId = 1, Row = 1, Number = 1
            };

            //Assert
            Assert.Throws <Exception>(() => service.Update(incorrectSeatDTOForUpdate));
        }
        public bool UnassignSeatWithValidation(FlightDTO flight, SeatDTO seatDTO)
        {
            var result = false;

            ValidateDTOsProperties(flight, seatDTO);

            var aircraft = new Aircraft(flight.Identifier, flight.DepartureTime);

            if (_seatAssignment.ValidateTimeLimitBeforeFlightForAssignment(aircraft))
            {
                var seat = _localMapper.Map <SeatDTO, Seat>(seatDTO);
                result = _seatAssignment.Unassign(aircraft, seat);
            }

            return(result);
        }
示例#15
0
        public async Task <List <Passenger> > ChangeSeats(int seatNumber1, int seatNumber2)
        {
            SeatDTO seatDTO     = new SeatDTO(seatNumber1, seatNumber2);
            var     seatDTOJson = JsonConvert.SerializeObject(seatDTO);
            var     response    = await client.PutAsync(new Uri("http://localhost:5000/api/steward/seat/change"), new HttpStringContent(seatDTOJson, Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json"));

            if (response.IsSuccessStatusCode)
            {
                var result     = response.Content.ReadAsStringAsync().GetResults();
                var passengers = JsonConvert.DeserializeObject <List <Passenger> >(result);
                return(passengers);
            }
            else
            {
                throw new Exception();
            }
        }
示例#16
0
        public void Update_With_Correct_Seat()
        {
            //Arrange
            var seatDTO = new SeatDTO {
                AreaId = 1, Row = 1, Number = 1
            };

            //Act
            service.Create(seatDTO);
            var seatDTOForUpdate = new SeatDTO {
                Id = 0, AreaId = 1, Row = 1, Number = 2
            };

            service.Update(seatDTOForUpdate);

            //Assert
            Assert.AreEqual(service.GetById(0).AreaId, 1);
            Assert.AreEqual(service.GetById(0).Row, 1);
            Assert.AreEqual(service.GetById(0).Number, 2);
        }
示例#17
0
        public string ReserveASeat(string flighIdentifier, string departureTimeString, string row, string colum)
        {
            string         returnedMessage = string.Empty;
            List <SeatDTO> seats           = new List <SeatDTO>();

            DateTime departureTime = ConvertDepartureTimeToDateTime(departureTimeString);

            ValidateParametersForReserveSeat(flighIdentifier, departureTime, Convert.ToInt16(row, CultureInfo.InvariantCulture), colum);

            ReservationSeatRequestDTO reservationSeatRequestDTO = new ReservationSeatRequestDTO(flighIdentifier, departureTime, Convert.ToInt16(row, CultureInfo.InvariantCulture), colum);

            FlightDTO flight = _localMapper.Map <ReservationSeatRequestDTO, FlightDTO>(reservationSeatRequestDTO);
            SeatDTO   seat   = _localMapper.Map <ReservationSeatRequestDTO, SeatDTO>(reservationSeatRequestDTO);

            seats.Add(seat);

            returnedMessage = CallApplicationMethods(SeatReservationForAircraftsOperationsEnum.ReserveASeat, flight, seats);

            return(returnedMessage);
        }
        public void BookShow(CinemaShowDTO cinemaShow, SeatDTO seat)
        {
            if (cinemaShow == null)
            {
                throw new ArgumentNullException(nameof(cinemaShow));
            }

            if (seat == null)
            {
                throw new ArgumentNullException(nameof(seat));
            }

            var booking = new BookingDTO
            {
                CinemaShow = cinemaShow,
                Seat       = seat,
                IsBooked   = true
            };

            _context.Bookings.Add(booking);
            _context.SaveChanges();
        }
        public Seat DeMap(SeatDTO dto)
        {
            Seat entity = repo.GetByID(dto.Id);

            if (entity == null)
            {
                return new Seat()
                       {
                           VanId      = dto.VanId,
                           Number     = dto.Number,
                           Type       = dto.Type,
                           IsOccupied = dto.IsOccupied,
                           Id         = dto.Id
                       }
            }
            ;
            entity.VanId      = dto.VanId;
            entity.Number     = dto.Number;
            entity.Type       = dto.Type;
            entity.IsOccupied = dto.IsOccupied;
            entity.Id         = dto.Id;
            return(entity);
        }
示例#20
0
 public void Update(SeatDTO obj)
 {
     seatServicece.Update(FromSeatDTOToBLLStandardSeatDTO(obj));
 }
示例#21
0
 public Seat(SeatDTO seatdto)
 {
     this.SeatId    = seatdto.SeatId;
     this.Passenger = null;
 }
        public bool ChangeSeatWithValidation(FlightDTO flight, SeatDTO oldSeatDTO, SeatDTO newSeatDTO)
        {
            var result = this.UnassignSeatWithValidation(flight, oldSeatDTO) && this.AssignSeatWithValidation(flight, newSeatDTO);

            return(result);
        }
        public ActionResult RedirectProjectionData(FormCollection data)
        {
            try
            {
                var kidsRetirees   = int.Parse(data["kidsRetirees"]);
                var students       = int.Parse(data["students"]);
                var adults         = int.Parse(data["adults"]);
                var projectionID   = int.Parse(data["projectionID"]);
                var totalPrice     = decimal.Parse(data["totalPrice"]);
                var projectionTime = data["projectionTime"].Split(' ');
                Session["ticketDate"] = projectionTime[0];
                Session["ticketHour"] = projectionTime[1] + projectionTime[2];

                var seatDtos = new List <SeatDTO>();
                using (var context = new CinemaTicketsDbContext())
                {
                    var projection = context.Projections.FirstOrDefault(p => p.ProjectionID == projectionID);
                    var hallNumber = context.Halls.FirstOrDefault(h => h.HallID == projection.HallID).HallNumber;
                    Session["hallNumber"] = hallNumber;
                    var tickets = projection.Tickets.ToList();

                    foreach (var ticket in tickets)
                    {
                        var seatDto = new SeatDTO
                        {
                            Column = ticket.Seat.Column,
                            Row    = ticket.Seat.Row,
                            HallID = ticket.Seat.HallID,
                            SeatID = ticket.Seat.SeatID
                        };

                        if (ticket.IsSold)
                        {
                            seatDto.IsTaken = true;
                        }
                        else
                        {
                            seatDto.IsTaken = false;
                        }
                        seatDtos.Add(seatDto);
                    }
                }

                var model = new SeatViewModel()
                {
                    Adults       = adults,
                    KidsRetirees = kidsRetirees,
                    SeatDtos     = seatDtos,
                    Students     = students,
                    TotalPrice   = totalPrice,
                    ProjectionID = projectionID
                };
                CacheViewModel.CacheModel(model);
            }

            catch (Exception e)
            {
                return(new HttpStatusCodeResult(400, "Something went wrong! :("));
            }

            return(new HttpStatusCodeResult(200, "OK"));
        }
        public ClassDTO GetClass(string className)
        {
            // Create a filter that will find the class with the given email
            FilterDefinition <BsonDocument> query
                = Builders <BsonDocument> .Filter.Eq("name", className);

            // If no classes were found throw exception
            var foundClasses = classes.Find(query);

            if (foundClasses.CountDocuments() <= 0)
            {
                throw new System.Exception("Could not find class");
            }

            var foundClass = foundClasses.First();

            // Create a ClassDTO to hand back to caller
            ClassDTO MrClassy = new ClassDTO();

            MrClassy.className        = className;
            MrClassy.height           = foundClass["height"].ToInt32();
            MrClassy.width            = foundClass["width"].ToInt32();
            MrClassy.notificationFreq = foundClass["notificationFreq"].ToInt32();

            var roster = foundClass["roster"].AsBsonArray;

            if (roster.Count != 0)
            {
                MrClassy.roster = new StudentRosterDTO[roster.Count];
                for (int i = 0; i < roster.Count; ++i)
                {
                    StudentRosterDTO rStudent = new StudentRosterDTO();
                    rStudent.studentName = (string)roster[i]["name"];
                    var daysMissed = roster[i]["daysMissed"].AsBsonArray;
                    rStudent.daysMissed = new string[daysMissed.Count];
                    for (int j = 0; j < daysMissed.Count; j++)
                    {
                        rStudent.daysMissed[j] = (string)daysMissed[j];
                    }

                    MrClassy.roster[i] = rStudent;
                }
            }

            try { MrClassy.mandatory = foundClass["mandatory"].ToBoolean(); } catch (Exception e) {}

            // Get disabled seats
            var dseats = foundClass["dSeats"].AsBsonArray;

            MrClassy.DisabledSeats = new SeatDTO[dseats.Count];
            for (int i = 0; i < dseats.Count; ++i)
            {
                var     s    = dseats[i];
                SeatDTO seat = new SeatDTO();
                seat.x = s["x"].ToInt32();
                seat.y = s["y"].ToInt32();
                MrClassy.DisabledSeats[i] = seat;
            }

            // Get reserved seats
            var rseats = foundClass["rSeats"].AsBsonArray;

            MrClassy.ReservedSeats = new SeatDTO[rseats.Count];
            for (int i = 0; i < rseats.Count; ++i)
            {
                var     s    = rseats[i];
                SeatDTO seat = new SeatDTO();
                seat.x     = s["x"].ToInt32();
                seat.y     = s["y"].ToInt32();
                seat.email = s["email"].ToString();
                seat.name  = s["name"].ToString();
                MrClassy.ReservedSeats[i] = seat;
            }

            // Get accessible seats
            var aseats = foundClass["aSeats"].AsBsonArray;

            MrClassy.AccessibleSeats = new SeatDTO[aseats.Count];
            for (int i = 0; i < aseats.Count; ++i)
            {
                var     s    = aseats[i];
                SeatDTO seat = new SeatDTO();
                seat.x = s["x"].ToInt32();
                seat.y = s["y"].ToInt32();
                MrClassy.AccessibleSeats[i] = seat;
            }

            // Get open seats
            var oseats = foundClass["oSeats"].AsBsonArray;

            MrClassy.OpenSeats = new SeatDTO[oseats.Count];
            for (int i = 0; i < oseats.Count; ++i)
            {
                var     s    = oseats[i];
                SeatDTO seat = new SeatDTO();
                seat.x = s["x"].ToInt32();
                seat.y = s["y"].ToInt32();
                MrClassy.OpenSeats[i] = seat;
            }
            return(MrClassy);
        }
示例#25
0
        //Henter en række fra et tablenavn hvor id findes
        public object Get(string TableName, int Id)
        {
            object ObjReturn = new object();

            switch (TableName)
            {
            case "Movie":
                MovieDTO Movie = new MovieDTO();
                ObjReturn = Movie;
                break;

            case "Reservation":
                ReservationDTO Reservation = new ReservationDTO();
                ObjReturn = Reservation;
                break;

            case "Resource":
                ResourceDTO Resource = new ResourceDTO();
                ObjReturn = Resource;
                break;

            case "Screening":
                ScreeningDTO Screening = new ScreeningDTO();
                ObjReturn = Screening;
                break;

            case "Seat":
                SeatDTO Seat = new SeatDTO();
                ObjReturn = Seat;
                break;

            case "Theater":
                TheaterDTO Theater = new TheaterDTO();
                ObjReturn = Theater;
                break;

            case "MovieScreening":
                MovieScreeningDTO MovieScreening = new MovieScreeningDTO();
                ObjReturn = MovieScreening;
                break;

            default:
                ObjReturn = null;
                break;
            }
            if (ObjReturn != null)
            {
                try
                {
                    using (SqlConnection con = new SqlConnection(ConfigConnectionString))
                    {
                        con.Open();
                        using (SqlCommand com = new SqlCommand("SELECT * FROM " + TableName + " where id = " + Id.ToString(), con))
                        {
                            using (SqlDataReader reader = com.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    //Løber igennem properties og sætter property til værdien den finder i rækkens felt med samme kolonnenavn som propertyname
                                    foreach (PropertyInfo pi in ObjReturn.GetType().GetProperties())
                                    {
                                        pi.SetValue(ObjReturn, reader.GetValue(reader.GetOrdinal(pi.Name)));
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception Ex)
                {
                    return(Ex);
                }
            }
            return(ObjReturn);
        }
示例#26
0
        //Henter alt fra et tablenavn
        public List <object> GetAll(string TableName, string ColumnToCheckName = null, string ValueToMatch = null, Type Type = null)
        {
            List <object> LisReturn    = new List <object>();
            string        FilterString = string.Empty;

            if (ColumnToCheckName != null && ValueToMatch != null && Type != null)
            {
                if (Type == typeof(decimal))
                {
                    FilterString = (" WHERE " + ColumnToCheckName + " = " + ValueToMatch.Replace(",", "."));
                }
                else if (Type == typeof(string))
                {
                    FilterString = (" WHERE " + ColumnToCheckName + " = '" + ValueToMatch + "'");
                }
                else if (Type == typeof(bool))
                {
                    FilterString = (" WHERE " + ColumnToCheckName + " = " + (Convert.ToBoolean(ValueToMatch) ? 1 : 0));
                }
                else if (Type == typeof(DateTime))
                {
                    FilterString = (" WHERE " + ColumnToCheckName + " = '" + Convert.ToDateTime(ValueToMatch).ToString("yyyy-MM-dd HH:mm:ss.fffffff") + "'");
                }
                else if (Type == typeof(int))
                {
                    FilterString = (" WHERE " + ColumnToCheckName + " = " + ValueToMatch);
                }
            }
            try
            {
                using (SqlConnection Con = new SqlConnection(ConfigConnectionString))
                {
                    Con.Open();
                    string CommandString = "SELECT * FROM " + TableName + FilterString;
                    using (SqlCommand Com = new SqlCommand(CommandString, Con))
                    {
                        using (SqlDataReader reader = Com.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                bool   Skip      = false;
                                object ObjReturn = new object();
                                switch (TableName)
                                {
                                case "Movie":
                                    MovieDTO Movie = new MovieDTO();
                                    ObjReturn = Movie;
                                    break;

                                case "Reservation":
                                    ReservationDTO Reservation = new ReservationDTO();
                                    ObjReturn = Reservation;
                                    break;

                                case "Resource":
                                    ResourceDTO Resource = new ResourceDTO();
                                    ObjReturn = Resource;
                                    break;

                                case "Screening":
                                    ScreeningDTO Screening = new ScreeningDTO();
                                    ObjReturn = Screening;
                                    break;

                                case "Seat":
                                    SeatDTO Seat = new SeatDTO();
                                    ObjReturn = Seat;
                                    break;

                                case "Theater":
                                    TheaterDTO Theater = new TheaterDTO();
                                    ObjReturn = Theater;
                                    break;

                                case "MovieScreening":
                                    MovieScreeningDTO MovieScreening = new MovieScreeningDTO();
                                    ObjReturn = MovieScreening;
                                    break;

                                case "ResourceScreening":
                                    ResourceScreeningDTO ResourceScreening = new ResourceScreeningDTO();
                                    ObjReturn = ResourceScreening;
                                    break;

                                default:
                                    ObjReturn = null;
                                    Skip      = true;
                                    break;
                                }
                                if (!Skip)
                                {
                                    //Løber igennem properties og sætter property til værdien den finder i rækkens felt med samme kolonnenavn som propertyname
                                    foreach (PropertyInfo pi in ObjReturn.GetType().GetProperties())
                                    {
                                        pi.SetValue(ObjReturn, reader.GetValue(reader.GetOrdinal(pi.Name)));
                                    }
                                    LisReturn.Add(ObjReturn);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                LisReturn.Add(Ex);
            }
            return(LisReturn);
        }