示例#1
0
        public async Task <List <Times> > CreateTimes(ArticleEntity article, BookingTableEntity bookingTable)
        {
            var listOfTimes = new List <Times>();

            DateTime startTime = bookingTable.StartTime.AddMinutes(-article.Length);
            DateTime endTime   = startTime.AddMinutes(article.Length);

            DateTime openingTime = SetOpeningTime(bookingTable.Date);
            DateTime closingTime = SetClosingTime(bookingTable.Date);

            var bookingSystem = await new BookingSystemRepo().GetBookingSystemAsync(article.BookingSystemId);

            var listOfBookingTables = await new BookingRepo().GetBookingTablesFromOneDayAndOneBookingSystem(bookingSystem.BookningSystemId, bookingTable.Date);

            for (int i = 0; i < 3; i++)
            {
                if (startTime != bookingTable.StartTime && startTime >= openingTime && endTime <= closingTime)
                {
                    var time = new Times();

                    time.StartTime = startTime;
                    time.EndTime   = endTime;

                    var checkIfTimeIsBookedModel = new CheckIfTimeIsBokedModel();
                    checkIfTimeIsBookedModel.Times = time;
                    checkIfTimeIsBookedModel.ListOfBookingTables = listOfBookingTables;

                    time.TimeBooked = await new BookingRepo().CheckIfTimeIsBookedAsync(checkIfTimeIsBookedModel);

                    if (!time.TimeBooked)
                    {
                        listOfTimes.Add(time);
                    }
                }

                if (i == 1)
                {
                    var bookedArticle = await new ArticleRepo().GetArticleAsync(bookingTable.ArticleId);
                    startTime = startTime.AddMinutes(bookedArticle.Length);
                    endTime   = endTime.AddMinutes(bookedArticle.Length);
                }

                else
                {
                    startTime = startTime.AddMinutes(article.Length);
                    endTime   = endTime.AddMinutes(article.Length);
                }
            }

            return(listOfTimes);
        }
示例#2
0
        public async Task <bool> CheckIfTimeIsBookedAsync(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel)
        {
            var timeBooked = false;

            foreach (var item in checkIfTimeIsBokedModel.ListOfBookingTables)
            {
                if (item.StartTime < checkIfTimeIsBokedModel.Times.EndTime && item.EndTime > checkIfTimeIsBokedModel.Times.StartTime)
                {
                    timeBooked = true;
                }
            }

            return(timeBooked);
        }
示例#3
0
        public async Task <bool> CheckIfTimeIsBooked(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel)
        {
            var url = "http://localhost:60295/api/checkiftimeisbooked/";

            var content  = new StringContent(JsonConvert.SerializeObject(checkIfTimeIsBokedModel), Encoding.UTF8, "application/json");
            var response = await client.PostAsync(url, content);

            string result = await response.Content.ReadAsStringAsync();

            var booked = JsonConvert.DeserializeObject <bool>(result);

            if (response.IsSuccessStatusCode)
            {
                return(booked);
            }

            return(booked);
        }
示例#4
0
        public async Task <List <Times> > CreateTimes(DateTime date, int articleId)
        {
            var listOfTimes = new List <Times>();

            var article = await new ArticleController().GetArticle(articleId);

            DateTime startTime = SetOpeningTime(date);
            DateTime endTime   = startTime.AddMinutes(article.Length);

            var timesPerDay = SetTimesPerDay(article.Length);

            var bookingSystem = await new BookingSystemRepo().GetBookingSystemFromArticleAsync(articleId);

            var listOfBookingTables = await new BookingRepo().GetBookingTablesFromOneDayAndOneBookingSystem(bookingSystem.BookningSystemId, date);

            for (int i = 0; i < timesPerDay; i++)
            {
                var time = new Times();

                time.StartTime = startTime;
                time.EndTime   = endTime;

                var checkIfTimeIsBookedModel = new CheckIfTimeIsBokedModel();
                checkIfTimeIsBookedModel.Times = time;
                checkIfTimeIsBookedModel.ListOfBookingTables = listOfBookingTables;

                time.TimeBooked = await CheckIfTimeIsBooked(checkIfTimeIsBookedModel);

                listOfTimes.Add(time);

                startTime = startTime.AddMinutes(article.Length);
                endTime   = endTime.AddMinutes(article.Length);
            }

            return(listOfTimes);
        }
示例#5
0
        public async Task <IHttpActionResult> CheckIfTimeIsBooked(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel)
        {
            var timeBooked = new BookingRepo().CheckIfTimeIsBooked(checkIfTimeIsBokedModel);

            return(Ok(timeBooked));
        }